diff options
author | Erik Johnston <erikj@jki.re> | 2019-01-25 15:59:36 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-25 15:59:36 +0000 |
commit | b6dce9b9fde07d450e22da479108b2859d3bd49d (patch) | |
tree | 13f3757fc0ad20bbf297830918b616da41ca3f1f /synapse/events/__init__.py | |
parent | Merge pull request #4471 from matrix-org/erikj/sqlite_native_upsert (diff) | |
parent | Newsfile (diff) | |
download | synapse-b6dce9b9fde07d450e22da479108b2859d3bd49d.tar.xz |
Merge pull request #4470 from matrix-org/erikj/require_format_version
Require event format version to parse or create events
Diffstat (limited to 'synapse/events/__init__.py')
-rw-r--r-- | synapse/events/__init__.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py index 38470ad176..3fe52aaa45 100644 --- a/synapse/events/__init__.py +++ b/synapse/events/__init__.py @@ -18,7 +18,11 @@ from distutils.util import strtobool import six -from synapse.api.constants import KNOWN_ROOM_VERSIONS, EventFormatVersions +from synapse.api.constants import ( + KNOWN_EVENT_FORMAT_VERSIONS, + KNOWN_ROOM_VERSIONS, + EventFormatVersions, +) from synapse.util.caches import intern_dict from synapse.util.frozenutils import freeze @@ -256,3 +260,21 @@ def room_version_to_event_format(room_version): raise RuntimeError("Unrecognized room version %s" % (room_version,)) return EventFormatVersions.V1 + + +def event_type_from_format_version(format_version): + """Returns the python type to use to construct an Event object for the + given event format version. + + Args: + format_version (int): The event format version + + Returns: + type: A type that can be initialized as per the initializer of + `FrozenEvent` + """ + if format_version not in KNOWN_EVENT_FORMAT_VERSIONS: + raise Exception( + "No event format %r" % (format_version,) + ) + return FrozenEvent |