mautrix.types
- class mautrix.types.JSON
Bases:
Union
[str
,int
,float
,bool
,None
,Dict
[str
,JSON
],List
[JSON
]]A union type that covers all JSON-serializable data.
- class mautrix.types.FilterID
Bases:
str
A filter ID returned by
POST /filter
(mautrix.client.ClientAPI.create_filter()
)
- class mautrix.types.ContentURI
Bases:
str
A Matrix content URI, used by the content repository.
- class mautrix.types.SyncToken
Bases:
str
A
next_batch
token from a/sync
response (mautrix.client.ClientAPI.sync()
)
- class mautrix.types.DeviceID
Bases:
str
A Matrix device ID. Arbitrary, potentially client-specified string.
- class mautrix.types.DiscoveryInformation
.well-known discovery information, as specified in the GET /.well-known/matrix/client endpoint
- homeserver: Optional[mautrix.types.DiscoveryServer]
- identity_server: Optional[mautrix.types.DiscoveryServer]
- integrations: Optional[mautrix.types.DiscoveryServer]
- class mautrix.types.DiscoveryIntegrations
- managers: List[mautrix.types.DiscoveryIntegrationServer]
- class mautrix.types.LoginFlow
A login flow, as specified in the GET /login endpoint
- type: mautrix.types.LoginType
- class mautrix.types.LoginFlowList
- get_first_of_type(*types)
- Parameters
types (mautrix.types.LoginType) –
- Return type
Optional[mautrix.types.LoginFlow]
- supports_type(*types)
- Parameters
types (mautrix.types.LoginType) –
- Return type
- flows: List[mautrix.types.LoginFlow]
- class mautrix.types.LoginResponse
The response for a login request, as specified in the POST /login endpoint
- user_id: mautrix.types.UserID
- device_id: mautrix.types.DeviceID
- well_known: mautrix.types.DiscoveryInformation
- class mautrix.types.LoginType
A login type, as specified in the POST /login endpoint
- class mautrix.types.MatrixUserIdentifier
A client can identify a user using their Matrix ID. This can either be the fully qualified Matrix user ID, or just the localpart of the user ID.
- class mautrix.types.PhoneIdentifier
A client can identify a user using a phone number associated with the user’s account, where the phone number was previously associated using the /account/3pid API. The phone number can be passed in as entered by the user; the homeserver will be responsible for canonicalising it. If the client wishes to canonicalise the phone number, then it can use the
m.id.thirdparty
identifier type with amedium
ofmsisdn
instead.
- class mautrix.types.ThirdPartyIdentifier
A client can identify a user using a 3PID associated with the user’s account on the homeserver, where the 3PID was previously associated using the /account/3pid API. See the 3PID Types Appendix for a list of Third-party ID media.
- class mautrix.types.UserIdentifierType
A user identifier type, as specified in the Identifier types section of the login spec.
- MATRIX_USER: UserIdentifierType = <UserIdentifierType.MATRIX_USER: 'm.id.user'>
- THIRD_PARTY: UserIdentifierType = <UserIdentifierType.THIRD_PARTY: 'm.id.thirdparty'>
- PHONE: UserIdentifierType = <UserIdentifierType.PHONE: 'm.id.phone'>
- class mautrix.types.WhoamiResponse
The response for a whoami request, as specified in the GET /account/whoami endpoint
- user_id: mautrix.types.UserID
- device_id: Optional[mautrix.types.DeviceID]
- class mautrix.types.ClaimKeysResponse
- one_time_keys: Dict[mautrix.types.UserID, Dict[mautrix.types.DeviceID, Dict[mautrix.types.KeyID, Any]]]
- class mautrix.types.CrossSigner
A tuple containing a user ID and a signing key they own.
The key can either be a device-owned signing key, or one of the user’s cross-signing keys.
- static __new__(_cls, user_id, key)
Create new instance of CrossSigner(user_id, key)
- Parameters
user_id (mautrix.types.UserID) –
key (mautrix.types.SigningKey) –
- key: mautrix.types.SigningKey
Alias for field number 1
- user_id: mautrix.types.UserID
Alias for field number 0
- class mautrix.types.CrossSigningKeys
- property first_ed25519_key: Optional[mautrix.types.SigningKey]
- property first_key: Optional[mautrix.types.SigningKey]
- first_key_with_algorithm(alg)
- Parameters
- Return type
Optional[mautrix.types.SigningKey]
- user_id: mautrix.types.UserID
- usage: List[mautrix.types.CrossSigningUsage]
- keys: Dict[mautrix.types.KeyID, mautrix.types.SigningKey]
- signatures: Dict[mautrix.types.UserID, Dict[mautrix.types.KeyID, mautrix.types.Signature]]
- class mautrix.types.DecryptedOlmEvent
-
- recipient: mautrix.types.UserID
- recipient_keys: mautrix.types.OlmEventKeys
- sender_device: Optional[mautrix.types.DeviceID]
- sender_key: mautrix.types.IdentityKey
- class mautrix.types.DeviceIdentity
- user_id: mautrix.types.UserID
- device_id: mautrix.types.DeviceID
- identity_key: mautrix.types.IdentityKey
- signing_key: mautrix.types.SigningKey
- trust: mautrix.types.TrustState
- class mautrix.types.DeviceKeys
- property curve25519: Optional[mautrix.types.IdentityKey]
- property ed25519: Optional[mautrix.types.SigningKey]
- user_id: mautrix.types.UserID
- device_id: mautrix.types.DeviceID
- algorithms: List[mautrix.types.EncryptionAlgorithm]
- keys: Dict[mautrix.types.KeyID, str]
- signatures: Dict[mautrix.types.UserID, Dict[mautrix.types.KeyID, mautrix.types.Signature]]
- unsigned: mautrix.types.UnsignedDeviceInfo
- class mautrix.types.OlmEventKeys
- ed25519: mautrix.types.SigningKey
- class mautrix.types.QueryKeysResponse
- device_keys: Dict[mautrix.types.UserID, Dict[mautrix.types.DeviceID, mautrix.types.DeviceKeys]]
- master_keys: Dict[mautrix.types.UserID, mautrix.types.CrossSigningKeys]
- self_signing_keys: Dict[mautrix.types.UserID, mautrix.types.CrossSigningKeys]
- user_signing_keys: Dict[mautrix.types.UserID, mautrix.types.CrossSigningKeys]
- class mautrix.types.TOFUSigningKey
A tuple representing a single cross-signing key. The first value is the current key, and the second value is the first seen key. If the values don’t match, it means the key is not valid for trust-on-first-use.
- static __new__(_cls, key, first)
Create new instance of TOFUSigningKey(key, first)
- Parameters
key (mautrix.types.SigningKey) –
first (mautrix.types.SigningKey) –
- first: mautrix.types.SigningKey
Alias for field number 1
- key: mautrix.types.SigningKey
Alias for field number 0
- class mautrix.types.TrustState
An enumeration.
- BLACKLISTED = -100
- UNVERIFIED = 0
- UNKNOWN_DEVICE = 10
- FORWARDED = 20
- CROSS_SIGNED_UNTRUSTED = 50
- CROSS_SIGNED_TOFU = 100
- CROSS_SIGNED_TRUSTED = 200
- VERIFIED = 300
- class mautrix.types.AccountDataEvent
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
- Return type
- static deserialize_content(data)
- Parameters
data (mautrix.types.JSON) –
- Return type
Union[mautrix.types.RoomTagAccountDataEventContent, Dict[mautrix.types.UserID, List[mautrix.types.RoomID]], mautrix.types.Obj]
- content: Union[mautrix.types.RoomTagAccountDataEventContent, Dict[mautrix.types.UserID, List[mautrix.types.RoomID]], mautrix.types.Obj]
- class mautrix.types.ASToDeviceEvent
- to_user_id: mautrix.types.UserID
- to_device_id: mautrix.types.DeviceID
- class mautrix.types.BaseEvent
Base event class. The only things an event must have are content and event type.
- content: mautrix.types.Obj
- type: mautrix.types.EventType
- class mautrix.types.BaseMessageEventContent
Base event content for all m.room.message-type events.
- msgtype: mautrix.types.MessageType
- class mautrix.types.BaseMessageEventContentFuncs
Base class for the contents of all message-type events (currently m.room.message and m.sticker). Contains relation helpers.
- get_edit()
- Return type
Optional[mautrix.types.EventID]
- get_reply_to()
- Return type
Optional[mautrix.types.EventID]
- get_thread_parent()
- Return type
Optional[mautrix.types.EventID]
- property relates_to: mautrix.types.RelatesTo
- serialize()
- Return type
- set_edit(edits)
- Parameters
edits (Union[mautrix.types.EventID, mautrix.types.MessageEvent]) –
- Return type
- set_reply(reply_to, **kwargs)
- Parameters
reply_to (Union[mautrix.types.EventID, mautrix.types.MessageEvent]) –
- Return type
- set_thread_parent(thread_parent, last_event_in_thread=None, disable_reply_fallback=False, **kwargs)
- Parameters
thread_parent (Union[mautrix.types.EventID, mautrix.types.MessageEvent]) –
last_event_in_thread (Optional[Union[mautrix.types.EventID, mautrix.types.MessageEvent]]) –
disable_reply_fallback (bool) –
- Return type
- class mautrix.types.BaseRoomEvent
Base room event class. Room events must have a room ID, event ID, sender and timestamp in addition to the content and type in the base event.
- room_id: mautrix.types.RoomID
- event_id: mautrix.types.EventID
- sender: mautrix.types.UserID
- class mautrix.types.BatchSendEvent
Base event class for events sent via a batch send request.
- sender: mautrix.types.UserID
- content: Any
- event_id: Optional[mautrix.types.EventID]
- class mautrix.types.BatchSendStateEvent
State events to be used as initial state events on batch send events. These never need to be deserialized.
- class mautrix.types.BeeperMessageStatusEvent
- class mautrix.types.BeeperMessageStatusEventContent
- relates_to: mautrix.types.RelatesTo
- status: Optional[mautrix.types.MessageStatus]
- reason: Optional[mautrix.types.MessageStatusReason]
- last_retry: Optional[mautrix.types.EventID]
- class mautrix.types.CallAnswerEventContent
-
- answer: mautrix.types.CallData
- class mautrix.types.CallCandidatesEventContent
-
- candidates: List[mautrix.types.CallCandidate]
- class mautrix.types.CallData
- class mautrix.types.CallEvent
- classmethod deserialize(data, event_type=None)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
event_type (Optional[mautrix.types.EventType]) –
- Return type
- content: mautrix.types.event.voip.T
- class mautrix.types.CallHangupEventContent
-
- reason: mautrix.types.CallHangupReason
- class mautrix.types.CallInviteEventContent
-
- offer: mautrix.types.CallData
- invitee: Optional[mautrix.types.UserID]
- class mautrix.types.CallNegotiateEventContent
-
- description: mautrix.types.CallData
- class mautrix.types.CallSelectAnswerEventContent
- class mautrix.types.CanonicalAliasStateEventContent
The content of a
m.room.canonical_alias
event (EventType.ROOM_CANONICAL_ALIAS
).This event is used to inform the room about which alias should be considered the canonical one, and which other aliases point to the room. This could be for display purposes or as suggestion to users which alias to use to advertise and access the room.
See also: m.room.canonical_alias in the spec
- canonical_alias: mautrix.types.RoomAlias
- alt_aliases: List[mautrix.types.RoomAlias]
- class mautrix.types.EncryptedEvent
A m.room.encrypted event
- property unsigned: mautrix.types.BaseUnsigned
- content: mautrix.types.EncryptedEventContent
- class mautrix.types.EncryptedFile
-
- url: Optional[mautrix.types.ContentURI]
- class mautrix.types.EncryptedMegolmEventContent
The content of an m.room.encrypted event
- property device_id: Optional[mautrix.types.DeviceID]
Deprecated since version 0.17.0.
Matrix v1.3 deprecated the device_id and sender_key fields in megolm events.
- property relates_to: mautrix.types.RelatesTo
- property sender_key: Optional[mautrix.types.IdentityKey]
Deprecated since version 0.17.0.
Matrix v1.3 deprecated the device_id and sender_key fields in megolm events.
- session_id: mautrix.types.SessionID
- algorithm: mautrix.types.EncryptionAlgorithm
- class mautrix.types.EncryptedOlmEventContent
- ciphertext: Dict[str, mautrix.types.OlmCiphertext]
- sender_key: mautrix.types.IdentityKey
- algorithm: mautrix.types.EncryptionAlgorithm
- class mautrix.types.EncryptionAlgorithm
- OLM_V1: EncryptionAlgorithm = <EncryptionAlgorithm.OLM_V1: 'm.olm.v1.curve25519-aes-sha2'>
- MEGOLM_V1: EncryptionAlgorithm = <EncryptionAlgorithm.MEGOLM_V1: 'm.megolm.v1.aes-sha2'>
- class mautrix.types.EncryptionKeyAlgorithm
- CURVE25519: EncryptionKeyAlgorithm = <EncryptionKeyAlgorithm.CURVE25519: 'curve25519'>
- ED25519: EncryptionKeyAlgorithm = <EncryptionKeyAlgorithm.ED25519: 'ed25519'>
- SIGNED_CURVE25519: EncryptionKeyAlgorithm = <EncryptionKeyAlgorithm.SIGNED_CURVE25519: 'signed_curve25519'>
- class mautrix.types.EventType
An immutable enum-like class that represents a specific Matrix event type.
In addition to the plain event type string, this also includes the context that the event is used in (see:
Class
). ComparingEventType
instances for equality will check both the type string and the class.The idea behind the wrapper is that incoming event parsers will always create an
EventType
instance with the correct class, regardless of what the usual context for the event is. Then when the event is being handled, the type will not be equal toEventType
instances with a different class. For example, if someone sends a non-statem.room.name
event, checkingif event.type == EventType.ROOM_NAME
would returnFalse
, because the class would be different. Bugs caused by not checking the context of an event (especially state event vs message event) were very common in the past, and using a wrapper like this helps prevent them.- ALL = EventType("__ALL__", EventType.Class.UNKNOWN)
- BEEPER_MESSAGE_STATUS = EventType("com.beeper.message_send_status", EventType.Class.MESSAGE)
- BEEPER_ROOM_KEY_ACK = EventType("com.beeper.room_key.ack", EventType.Class.TO_DEVICE)
- CALL_ANSWER = EventType("m.call.answer", EventType.Class.MESSAGE)
- CALL_CANDIDATES = EventType("m.call.candidates", EventType.Class.MESSAGE)
- CALL_HANGUP = EventType("m.call.hangup", EventType.Class.MESSAGE)
- CALL_INVITE = EventType("m.call.invite", EventType.Class.MESSAGE)
- CALL_NEGOTIATE = EventType("m.call.negotiate", EventType.Class.MESSAGE)
- CALL_REJECT = EventType("m.call.reject", EventType.Class.MESSAGE)
- CALL_SELECT_ANSWER = EventType("m.call.select_answer", EventType.Class.MESSAGE)
- class Class
The context that an event type is used in.
- UNKNOWN = 'unknown'
- STATE = 'state'
Room state events
- MESSAGE = 'message'
Room message events, i.e. room events that are not state events
- ACCOUNT_DATA = 'account_data'
Account data events, user-specific storage used for synchronizing info between clients. Can be global or room-specific.
- EPHEMERAL = 'ephemeral'
Ephemeral events. Currently only typing notifications, read receipts and presence are in this class, as custom ephemeral events are not yet possible.
- TO_DEVICE = 'to_device'
Device-to-device events, primarily used for exchanging encryption keys
- DIRECT = EventType("m.direct", EventType.Class.ACCOUNT_DATA)
- FORWARDED_ROOM_KEY = EventType("m.forwarded_room_key", EventType.Class.TO_DEVICE)
- IGNORED_USER_LIST = EventType("m.ignored_user_list", EventType.Class.ACCOUNT_DATA)
- ORG_MATRIX_ROOM_KEY_WITHHELD = EventType("org.matrix.room_key.withheld", EventType.Class.TO_DEVICE)
- PRESENCE = EventType("m.presence", EventType.Class.EPHEMERAL)
- PUSH_RULES = EventType("m.push_rules", EventType.Class.ACCOUNT_DATA)
- REACTION = EventType("m.reaction", EventType.Class.MESSAGE)
- RECEIPT = EventType("m.receipt", EventType.Class.EPHEMERAL)
- ROOM_AVATAR = EventType("m.room.avatar", EventType.Class.STATE)
- ROOM_CANONICAL_ALIAS = EventType("m.room.canonical_alias", EventType.Class.STATE)
- ROOM_CREATE = EventType("m.room.create", EventType.Class.STATE)
- ROOM_ENCRYPTED = EventType("m.room.encrypted", EventType.Class.MESSAGE)
- ROOM_ENCRYPTION = EventType("m.room.encryption", EventType.Class.STATE)
- ROOM_HISTORY_VISIBILITY = EventType("m.room.history_visibility", EventType.Class.STATE)
- ROOM_JOIN_RULES = EventType("m.room.join_rules", EventType.Class.STATE)
- ROOM_KEY = EventType("m.room_key", EventType.Class.TO_DEVICE)
- ROOM_KEY_REQUEST = EventType("m.room_key_request", EventType.Class.TO_DEVICE)
- ROOM_KEY_WITHHELD = EventType("m.room_key.withheld", EventType.Class.TO_DEVICE)
- ROOM_MEMBER = EventType("m.room.member", EventType.Class.STATE)
- ROOM_MESSAGE = EventType("m.room.message", EventType.Class.MESSAGE)
- ROOM_NAME = EventType("m.room.name", EventType.Class.STATE)
- ROOM_PINNED_EVENTS = EventType("m.room.pinned_events", EventType.Class.STATE)
- ROOM_POWER_LEVELS = EventType("m.room.power_levels", EventType.Class.STATE)
- ROOM_REDACTION = EventType("m.room.redaction", EventType.Class.MESSAGE)
- ROOM_TOMBSTONE = EventType("m.room.tombstone", EventType.Class.STATE)
- ROOM_TOPIC = EventType("m.room.topic", EventType.Class.STATE)
- SPACE_CHILD = EventType("m.space.child", EventType.Class.STATE)
- SPACE_PARENT = EventType("m.space.parent", EventType.Class.STATE)
- STICKER = EventType("m.sticker", EventType.Class.MESSAGE)
- TAG = EventType("m.tag", EventType.Class.ACCOUNT_DATA)
- TO_DEVICE_DUMMY = EventType("m.dummy", EventType.Class.TO_DEVICE)
- TO_DEVICE_ENCRYPTED = EventType("m.room.encrypted", EventType.Class.TO_DEVICE)
- TYPING = EventType("m.typing", EventType.Class.EPHEMERAL)
- classmethod deserialize(raw)
Convert the given data parsed from JSON into an object of this type.
- Parameters
raw (mautrix.types.JSON) –
- Return type
Any
- classmethod find(t, t_class=None)
Create a new
EventType
instance with the given type and class.If an
EventType
instance with the same type string and class has been created before, or if no class is specified here, this will return the same instance instead of making a new one.Examples
>>> from mautrix.client import Client >>> from mautrix.types import EventType >>> MY_CUSTOM_TYPE = EventType.find("com.example.custom_event", EventType.Class.STATE) >>> client = Client(...) >>> @client.on(MY_CUSTOM_TYPE) ... async def handle_event(evt): ...
- Parameters
t (str) – The type string.
t_class (Optional[mautrix.types.event.type.EventType.Class]) – The class of the event type.
- Returns
An
EventType
instance with the given parameters.- Return type
- classmethod parse_json(data)
Parse the given string as JSON and deserialize the result into this type.
- Parameters
data (str) –
- Return type
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- with_class(t_class)
Return a copy of this
EventType
with the given class. If the given class is the same as what this instance has, or if the given class isNone
, this returnsself
instead of making a copy.- Parameters
t_class (Optional[mautrix.types.event.type.EventType.Class]) –
- Return type
- class mautrix.types.FileInfo
Information about a document message.
- thumbnail_info: Optional[mautrix.types.ThumbnailInfo]
- thumbnail_file: Optional[mautrix.types.EncryptedFile]
- thumbnail_url: Optional[mautrix.types.ContentURI]
- class mautrix.types.Format
A message format. Currently only
org.matrix.custom.html
is available. This will probably be deprecated when extensible events are implemented.
- class mautrix.types.ForwardedRoomKeyEventContent
- sender_key: mautrix.types.IdentityKey
- signing_key: mautrix.types.SigningKey
- class mautrix.types.GenericEvent
An event class that contains all possible top-level event keys and uses generic Obj’s for object keys (content and unsigned)
- content: mautrix.types.Obj
- type: mautrix.types.EventType
- room_id: Optional[mautrix.types.RoomID]
- event_id: Optional[mautrix.types.EventID]
- sender: Optional[mautrix.types.UserID]
- unsigned: mautrix.types.Obj
- redacts: Optional[mautrix.types.EventID]
- class mautrix.types.ImageInfo
Information about an image message.
- class mautrix.types.InReplyTo
- event_id: mautrix.types.EventID
- class mautrix.types.JoinRule
An enumeration.
- PUBLIC = 'public'
- KNOCK = 'knock'
- RESTRICTED = 'restricted'
- INVITE = 'invite'
- PRIVATE = 'private'
- KNOCK_RESTRICTED = 'knock_restricted'
- class mautrix.types.JoinRulesStateEventContent
- join_rule: mautrix.types.JoinRule
- allow: Optional[List[mautrix.types.event.state.JoinRestriction]]
- class mautrix.types.JSONWebKey
- class mautrix.types.KeyID
- classmethod deserialize(raw)
Convert the given data parsed from JSON into an object of this type.
- Parameters
raw (mautrix.types.JSON) –
- Return type
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- algorithm: mautrix.types.EncryptionKeyAlgorithm
- class mautrix.types.KeyRequestAction
- REQUEST: KeyRequestAction = <KeyRequestAction.REQUEST: 'request'>
- CANCEL: KeyRequestAction = <KeyRequestAction.CANCEL: 'request_cancellation'>
- class mautrix.types.LocationInfo
Information about a location message.
- thumbnail_url: Optional[mautrix.types.ContentURI]
- thumbnail_info: Optional[mautrix.types.ThumbnailInfo]
- thumbnail_file: Optional[mautrix.types.EncryptedFile]
- class mautrix.types.LocationMessageEventContent
- class mautrix.types.MediaMessageEventContent
The content of a media message event (m.image, m.audio, m.video, m.file)
- static deserialize_info(data)
- Parameters
data (mautrix.types.JSON) –
- Return type
Union[mautrix.types.ImageInfo, mautrix.types.VideoInfo, mautrix.types.AudioInfo, mautrix.types.FileInfo, mautrix.types.Obj]
- url: Optional[mautrix.types.ContentURI]
- info: Optional[Union[mautrix.types.ImageInfo, mautrix.types.VideoInfo, mautrix.types.AudioInfo, mautrix.types.FileInfo, mautrix.types.Obj]]
- file: Optional[mautrix.types.EncryptedFile]
- class mautrix.types.Membership
The membership state of a user in a room as specified in section 8.4 Room membership of the spec.
- JOIN = 'join'
- LEAVE = 'leave'
- INVITE = 'invite'
- BAN = 'ban'
- KNOCK = 'knock'
- class mautrix.types.MemberStateEventContent
The content of a membership event. Spec link
- membership: mautrix.types.Membership
- avatar_url: mautrix.types.ContentURI
- third_party_invite: mautrix.types.JSON
- class mautrix.types.MessageEvent
An m.room.message event
- static deserialize_content(data)
- Parameters
data (mautrix.types.JSON) –
- Return type
Union[mautrix.types.TextMessageEventContent, mautrix.types.MediaMessageEventContent, mautrix.types.LocationMessageEventContent, mautrix.types.Obj]
- content: Union[mautrix.types.TextMessageEventContent, mautrix.types.MediaMessageEventContent, mautrix.types.LocationMessageEventContent, mautrix.types.Obj]
- unsigned: Optional[mautrix.types.MessageUnsigned]
- class mautrix.types.MessageStatus
An enumeration.
- SUCCESS = 'SUCCESS'
- PENDING = 'PENDING'
- RETRIABLE = 'FAIL_RETRIABLE'
- FAIL = 'FAIL_PERMANENT'
- class mautrix.types.MessageStatusReason
An enumeration.
- GENERIC_ERROR = 'm.event_not_handled'
- UNSUPPORTED = 'com.beeper.unsupported_event'
- UNDECRYPTABLE = 'com.beeper.undecryptable_event'
- TOO_OLD = 'm.event_too_old'
- NETWORK_ERROR = 'm.foreign_network_error'
- NO_PERMISSION = 'm.no_permission'
- property checkpoint_status
- class mautrix.types.MessageType
A message type.
- TEXT: MessageType = <MessageType.TEXT: 'm.text'>
- EMOTE: MessageType = <MessageType.EMOTE: 'm.emote'>
- NOTICE: MessageType = <MessageType.NOTICE: 'm.notice'>
- IMAGE: MessageType = <MessageType.IMAGE: 'm.image'>
- STICKER: MessageType = <MessageType.STICKER: 'm.sticker'>
- VIDEO: MessageType = <MessageType.VIDEO: 'm.video'>
- AUDIO: MessageType = <MessageType.AUDIO: 'm.audio'>
- FILE: MessageType = <MessageType.FILE: 'm.file'>
- LOCATION: MessageType = <MessageType.LOCATION: 'm.location'>
- class mautrix.types.MessageUnsigned
Unsigned information sent with message events.
- class mautrix.types.OlmCiphertext
- class mautrix.types.PowerLevelStateEventContent
The content of a power level event.
- ensure_event_level(event_type, level)
- Parameters
event_type (mautrix.types.EventType) –
level (int) –
- Return type
- ensure_user_level(user_id, level)
- Parameters
user_id (mautrix.types.UserID) –
level (int) –
- Return type
- get_event_level(event_type)
- Parameters
event_type (mautrix.types.EventType) –
- Return type
- get_user_level(user_id)
- Parameters
user_id (mautrix.types.UserID) –
- Return type
- set_event_level(event_type, level)
- Parameters
event_type (mautrix.types.EventType) –
level (int) –
- Return type
- set_user_level(user_id, level)
- Parameters
user_id (mautrix.types.UserID) –
level (int) –
- Return type
- users: Dict[mautrix.types.UserID, int]
- events: Dict[mautrix.types.EventType, int]
- notifications: mautrix.types.event.state.NotificationPowerLevels
- class mautrix.types.PresenceEvent
- sender: mautrix.types.UserID
- content: mautrix.types.PresenceEventContent
- class mautrix.types.PresenceEventContent
- presence: mautrix.types.PresenceState
- class mautrix.types.PresenceState
An enumeration.
- ONLINE = 'online'
- OFFLINE = 'offline'
- UNAVAILABLE = 'unavailable'
- class mautrix.types.ReactionEvent
A m.reaction event
- property unsigned: mautrix.types.BaseUnsigned
- content: mautrix.types.ReactionEventContent
- class mautrix.types.ReactionEventContent
The content of an m.reaction event
- property relates_to: mautrix.types.RelatesTo
- class mautrix.types.ReceiptEvent
- room_id: mautrix.types.RoomID
- content: Dict[mautrix.types.EventID, Dict[mautrix.types.ReceiptType, Dict[mautrix.types.UserID, mautrix.types.SingleReceiptEventContent]]]
- class mautrix.types.RedactionEvent
A m.room.redaction event
- property unsigned: mautrix.types.BaseUnsigned
- content: mautrix.types.RedactionEventContent
- redacts: mautrix.types.EventID
- class mautrix.types.RelatesTo
Message relations. Used for reactions, edits and replies.
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- rel_type: mautrix.types.RelationType
- event_id: Optional[mautrix.types.EventID]
- in_reply_to: Optional[mautrix.types.InReplyTo]
- class mautrix.types.RelationType
- ANNOTATION: RelationType = <RelationType.ANNOTATION: 'm.annotation'>
- REFERENCE: RelationType = <RelationType.REFERENCE: 'm.reference'>
- REPLACE: RelationType = <RelationType.REPLACE: 'm.replace'>
- THREAD: RelationType = <RelationType.THREAD: 'm.thread'>
- class mautrix.types.RequestedKeyInfo
- algorithm: mautrix.types.EncryptionAlgorithm
- room_id: mautrix.types.RoomID
- sender_key: mautrix.types.IdentityKey
- session_id: mautrix.types.SessionID
- class mautrix.types.RoomAvatarStateEventContent
- url: Optional[mautrix.types.ContentURI]
- class mautrix.types.RoomCreateStateEventContent
-
- predecessor: Optional[mautrix.types.RoomPredecessor]
- type: Optional[mautrix.types.RoomType]
- class mautrix.types.RoomEncryptionStateEventContent
- algorithm: mautrix.types.EncryptionAlgorithm
- class mautrix.types.RoomKeyEventContent
- algorithm: mautrix.types.EncryptionAlgorithm
- room_id: mautrix.types.RoomID
- session_id: mautrix.types.SessionID
- class mautrix.types.RoomKeyRequestEventContent
- action: mautrix.types.KeyRequestAction
- requesting_device_id: mautrix.types.DeviceID
- body: Optional[mautrix.types.RequestedKeyInfo]
- class mautrix.types.RoomKeyWithheldCode
- BLACKLISTED: RoomKeyWithheldCode = <RoomKeyWithheldCode.BLACKLISTED: 'm.blacklisted'>
- UNVERIFIED: RoomKeyWithheldCode = <RoomKeyWithheldCode.UNVERIFIED: 'm.unverified'>
- UNAUTHORIZED: RoomKeyWithheldCode = <RoomKeyWithheldCode.UNAUTHORIZED: 'm.unauthorised'>
- UNAVAILABLE: RoomKeyWithheldCode = <RoomKeyWithheldCode.UNAVAILABLE: 'm.unavailable'>
- NO_OLM_SESSION: RoomKeyWithheldCode = <RoomKeyWithheldCode.NO_OLM_SESSION: 'm.no_olm'>
- BEEPER_REDACTED: RoomKeyWithheldCode = <RoomKeyWithheldCode.BEEPER_REDACTED: 'com.beeper.redacted'>
- class mautrix.types.RoomKeyWithheldEventContent
- algorithm: mautrix.types.EncryptionAlgorithm
- sender_key: mautrix.types.IdentityKey
- room_id: Optional[mautrix.types.RoomID]
- session_id: Optional[mautrix.types.SessionID]
- class mautrix.types.RoomPinnedEventsStateEventContent
- pinned: List[mautrix.types.EventID]
- class mautrix.types.RoomPredecessor
- room_id: mautrix.types.RoomID
- event_id: mautrix.types.EventID
- class mautrix.types.RoomTagAccountDataEventContent
- tags: Dict[str, mautrix.types.RoomTagInfo]
- class mautrix.types.RoomTombstoneStateEventContent
-
- replacement_room: mautrix.types.RoomID
- class mautrix.types.StateEvent
A room state event.
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
- Return type
- static deserialize_content(data)
- Parameters
data (mautrix.types.JSON) –
- Return type
Union[mautrix.types.PowerLevelStateEventContent, mautrix.types.MemberStateEventContent, mautrix.types.CanonicalAliasStateEventContent, mautrix.types.RoomNameStateEventContent, mautrix.types.RoomAvatarStateEventContent, mautrix.types.RoomTopicStateEventContent, mautrix.types.RoomPinnedEventsStateEventContent, mautrix.types.RoomTombstoneStateEventContent, mautrix.types.RoomEncryptionStateEventContent, mautrix.types.RoomCreateStateEventContent, mautrix.types.SpaceChildStateEventContent, mautrix.types.SpaceParentStateEventContent, mautrix.types.JoinRulesStateEventContent, mautrix.types.Obj]
- property prev_content: Union[mautrix.types.PowerLevelStateEventContent, mautrix.types.MemberStateEventContent, mautrix.types.CanonicalAliasStateEventContent, mautrix.types.RoomNameStateEventContent, mautrix.types.RoomAvatarStateEventContent, mautrix.types.RoomTopicStateEventContent, mautrix.types.RoomPinnedEventsStateEventContent, mautrix.types.RoomTombstoneStateEventContent, mautrix.types.RoomEncryptionStateEventContent, mautrix.types.RoomCreateStateEventContent, mautrix.types.SpaceChildStateEventContent, mautrix.types.SpaceParentStateEventContent, mautrix.types.JoinRulesStateEventContent, mautrix.types.Obj]
- content: Union[mautrix.types.PowerLevelStateEventContent, mautrix.types.MemberStateEventContent, mautrix.types.CanonicalAliasStateEventContent, mautrix.types.RoomNameStateEventContent, mautrix.types.RoomAvatarStateEventContent, mautrix.types.RoomTopicStateEventContent, mautrix.types.RoomPinnedEventsStateEventContent, mautrix.types.RoomTombstoneStateEventContent, mautrix.types.RoomEncryptionStateEventContent, mautrix.types.RoomCreateStateEventContent, mautrix.types.SpaceChildStateEventContent, mautrix.types.SpaceParentStateEventContent, mautrix.types.JoinRulesStateEventContent, mautrix.types.Obj]
- unsigned: Optional[mautrix.types.StateUnsigned]
- class mautrix.types.StateUnsigned
- invite_room_state: Optional[List[mautrix.types.StrippedStateEvent]]
- class mautrix.types.StrippedStateEvent
Stripped state events included with some invite events.
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
- Return type
- property prev_content: Union[mautrix.types.PowerLevelStateEventContent, mautrix.types.MemberStateEventContent, mautrix.types.CanonicalAliasStateEventContent, mautrix.types.RoomNameStateEventContent, mautrix.types.RoomAvatarStateEventContent, mautrix.types.RoomTopicStateEventContent, mautrix.types.RoomPinnedEventsStateEventContent, mautrix.types.RoomTombstoneStateEventContent, mautrix.types.RoomEncryptionStateEventContent, mautrix.types.RoomCreateStateEventContent, mautrix.types.SpaceChildStateEventContent, mautrix.types.SpaceParentStateEventContent, mautrix.types.JoinRulesStateEventContent, mautrix.types.Obj]
- content: Union[mautrix.types.PowerLevelStateEventContent, mautrix.types.MemberStateEventContent, mautrix.types.CanonicalAliasStateEventContent, mautrix.types.RoomNameStateEventContent, mautrix.types.RoomAvatarStateEventContent, mautrix.types.RoomTopicStateEventContent, mautrix.types.RoomPinnedEventsStateEventContent, mautrix.types.RoomTombstoneStateEventContent, mautrix.types.RoomEncryptionStateEventContent, mautrix.types.RoomCreateStateEventContent, mautrix.types.SpaceChildStateEventContent, mautrix.types.SpaceParentStateEventContent, mautrix.types.JoinRulesStateEventContent, mautrix.types.Obj]
- room_id: mautrix.types.RoomID
- sender: mautrix.types.UserID
- type: mautrix.types.EventType
- unsigned: Optional[mautrix.types.event.state.StrippedStateUnsigned]
- class mautrix.types.TextMessageEventContent
The content of a text message event (m.text, m.notice, m.emote)
- formatted(format)
- Parameters
format (mautrix.types.Format) –
- Return type
Optional[str]
- format: mautrix.types.Format
- class mautrix.types.ThumbnailInfo
Information about the thumbnail for a document, video, image or location.
- class mautrix.types.ToDeviceEvent
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
- Return type
- static deserialize_content(data)
- Parameters
data (mautrix.types.JSON) –
- Return type
Union[mautrix.types.Obj, mautrix.types.EncryptedOlmEventContent, mautrix.types.RoomKeyWithheldEventContent, mautrix.types.RoomKeyEventContent, mautrix.types.RoomKeyRequestEventContent, mautrix.types.ForwardedRoomKeyEventContent, mautrix.types.event.beeper.BeeperRoomKeyAckEventContent]
- sender: mautrix.types.UserID
- content: Union[mautrix.types.Obj, mautrix.types.EncryptedOlmEventContent, mautrix.types.RoomKeyWithheldEventContent, mautrix.types.RoomKeyEventContent, mautrix.types.RoomKeyRequestEventContent, mautrix.types.ForwardedRoomKeyEventContent, mautrix.types.event.beeper.BeeperRoomKeyAckEventContent]
- class mautrix.types.TypingEvent
- room_id: mautrix.types.RoomID
- content: mautrix.types.TypingEventContent
- class mautrix.types.TypingEventContent
- user_ids: List[mautrix.types.UserID]
- class mautrix.types.EventFilter
Event filter object, as specified in the create filter endpoint.
- not_senders: List[mautrix.types.UserID]
- not_types: List[mautrix.types.EventType]
- senders: List[mautrix.types.UserID]
- types: List[mautrix.types.EventType]
- class mautrix.types.Filter
Base filter object, as specified in the create filter endpoint.
- event_format: mautrix.types.filter.EventFormat
- presence: mautrix.types.EventFilter
- account_data: mautrix.types.EventFilter
- class mautrix.types.RoomEventFilter
Room event filter object, as specified in the create filter endpoint.
- not_rooms: List[mautrix.types.RoomID]
- rooms: List[mautrix.types.RoomID]
- class mautrix.types.RoomFilter
Room filter object, as specified in the create filter endpoint.
- not_rooms: List[mautrix.types.RoomID]
- rooms: List[mautrix.types.RoomID]
- ephemeral: mautrix.types.RoomEventFilter
- state: mautrix.types.StateFilter
- timeline: mautrix.types.RoomEventFilter
- account_data: mautrix.types.RoomEventFilter
- class mautrix.types.StateFilter
State event filter object, as specified in the create filter endpoint. Currently this is the same as
RoomEventFilter
.
- class mautrix.types.IdentifierType
The type qualifier for entities in a Matrix URI.
- EVENT = '$'
- USER = '@'
- ROOM_ALIAS = '#'
- ROOM_ID = '!'
- property sigil: str
The sigil of the identifier, used in Matrix events, matrix.to URLs and other places
- classmethod from_sigil(sigil)
Get the IdentifierType corresponding to the given sigil.
- Parameters
sigil (str) –
- Return type
- class mautrix.types.MatrixURI
A container for Matrix URI data. Supports parsing and generating both
matrix:
URIs andhttps://matrix.to
URLs with the same interface.- __init__()
Internal initializer for MatrixURI, external users should use either
build()
orparse()
.- Return type
- classmethod build(part1, part2=None, via=None, action=None)
Construct a MatrixURI instance using an identifier.
- Parameters
part1 (Union[mautrix.types.RoomID, mautrix.types.UserID, mautrix.types.RoomAlias]) – The first part of the URI, a user ID, room ID, or room alias.
part2 (Optional[mautrix.types.EventID]) – The second part of the URI. Only event IDs are allowed, and only allowed when the first part is a room ID or alias.
via (Optional[list[str]]) – Servers that know about the resource. Important for room ID links.
action (Optional[mautrix.types.URIAction]) – The intent for what clients should do with the URI.
- Returns
The constructed MatrixURI.
- Raises
ValueError – if one of the identifiers doesn’t have a valid sigil.
- Return type
Examples
>>> from mautrix.types import MatrixURI, UserID, RoomAlias, EventID >>> MatrixURI.build(UserID("@user:example.com")).matrix_to_url 'https://matrix.to/#/%40user%3Aexample.com' >>> MatrixURI.build(UserID("@user:example.com")).matrix_uri 'matrix:u/user:example.com' >>> # Picks the format based on the URI_BY_DEFAULT field. >>> # The default value will be changed to True in a later release. >>> str(MatrixURI.build(UserID("@user:example.com"))) 'https://matrix.to/#/%40user%3Aexample.com' >>> MatrixURI.build(RoomAlias("#room:example.com"), EventID("$abc123")).matrix_uri 'matrix:r/room:example.com/e/abc123'
- property event_id: Optional[mautrix.types.EventID]
Get the event ID from this parsed URI.
- Returns
The event ID in this URI, or
None
if this is not a link to an event in a room.
- property matrix_to_url: str
Convert this parsed URI into a
https://matrix.to
URL.- Returns
The link as a matrix.to URL.
- property matrix_uri: str
Convert this parsed URI into a
matrix:
URI.- Returns
The link as a
matrix:
URI.
- classmethod parse(url)
Parse a
matrix:
URI orhttps://matrix.to
URL into parts.- Parameters
url (str | yarl.URL) – The URI to parse, either as a string or a
yarl.URL
instance.- Returns
The parsed data.
- Raises
ValueError – if yarl fails to parse the given URL string.
MatrixURIError – if the URL isn’t valid in the Matrix spec.
- Return type
Examples
>>> from mautrix.types import MatrixURI >>> MatrixURI.parse("https://matrix.to/#/@user:example.com").user_id '@user:example.com' >>> MatrixURI.parse("https://matrix.to/#/#room:example.com/$abc123").event_id '$abc123' >>> MatrixURI.parse("matrix:r/room:example.com/e/abc123").event_id '$abc123'
- property room_alias: Optional[mautrix.types.RoomAlias]
Get the room alias from this parsed URI.
- Returns
The room alias in this URI, or
None
if this is not a link to a room (or event).
- property room_id: Optional[mautrix.types.RoomID]
Get the room ID from this parsed URI.
- Returns
The room ID in this URI, or
None
if this is not a link to a room (or event).
- classmethod try_parse(url)
Try to parse a
matrix:
URI orhttps://matrix.to
URL into parts. If parsing fails, returnNone
instead of throwing an error.
- property user_id: Optional[mautrix.types.UserID]
Get the user ID from this parsed URI.
- Returns
The user ID in this URI, or
None
if this is not a link to a user.
- exception mautrix.types.MatrixURIError
Raised by
MatrixURI.parse()
when parsing a URI fails.
- class mautrix.types.URIAction
Represents an intent for what the client should do with a Matrix URI.
- value: Any
- class mautrix.types.MediaCreateResponse
Matrix media create response including MSC3870
- content_uri: mautrix.types.ContentURI
- class mautrix.types.MediaRepoConfig
Matrix media repo config. See GET /_matrix/media/v3/config.
- class mautrix.types.MXOpenGraph
Matrix URL preview response. See GET /_matrix/media/v3/preview_url.
- class mautrix.types.OpenGraphAudio
- class mautrix.types.OpenGraphImage
- class mautrix.types.OpenGraphVideo
- class mautrix.types.BatchSendResponse
- state_event_ids: List[mautrix.types.EventID]
- event_ids: List[mautrix.types.EventID]
- insertion_event_id: mautrix.types.EventID
- batch_event_id: mautrix.types.EventID
- next_batch_id: mautrix.types.BatchID
- base_insertion_event_id: Optional[mautrix.types.EventID]
- class mautrix.types.DeviceLists
- changed: List[mautrix.types.UserID]
- left: List[mautrix.types.UserID]
- class mautrix.types.EventContext
-
- start: mautrix.types.SyncToken
- event: mautrix.types.Event
- events_after: List[mautrix.types.Event]
- events_before: List[mautrix.types.Event]
- state: List[mautrix.types.StateEvent]
- class mautrix.types.PaginatedMessages
PaginatedMessages(start, end, events)
- static __new__(_cls, start, end, events)
Create new instance of PaginatedMessages(start, end, events)
- Parameters
start (mautrix.types.SyncToken) –
end (mautrix.types.SyncToken) –
events (List[mautrix.types.Event]) –
- end: mautrix.types.SyncToken
Alias for field number 1
- events: List[mautrix.types.Event]
Alias for field number 2
- start: mautrix.types.SyncToken
Alias for field number 0
- class mautrix.types.PaginationDirection
Pagination direction used in various endpoints that support pagination.
- FORWARD = 'f'
- BACKWARD = 'b'
- class mautrix.types.RoomAliasInfo
Room alias query result, as specified in the alias resolve endpoint
- room_id: mautrix.types.RoomID
- class mautrix.types.RoomCreatePreset
Room creation preset, as specified in the createRoom endpoint
- PRIVATE = 'private_chat'
- TRUSTED_PRIVATE = 'trusted_private_chat'
- PUBLIC = 'public_chat'
- class mautrix.types.RoomDirectoryResponse
- chunk: List[mautrix.types.misc.PublicRoomInfo]
- next_batch: mautrix.types.DirectoryPaginationToken
- prev_batch: mautrix.types.DirectoryPaginationToken
- class mautrix.types.RoomDirectoryVisibility
Room directory visibility, as specified in the createRoom endpoint
- PRIVATE = 'private'
- PUBLIC = 'public'
- class mautrix.types.PushCondition
-
- operator: mautrix.types.PushOperator
- class mautrix.types.PushRule
- rule_id: Union[mautrix.types.RoomID, mautrix.types.UserID, str]
- actions: List[Union[mautrix.types.PushActionDict, mautrix.types.PushActionType]]
- conditions: List[mautrix.types.PushCondition]
- class mautrix.types.Member
- membership: mautrix.types.Membership
- avatar_url: mautrix.types.ContentURI
- class mautrix.types.User
- user_id: mautrix.types.UserID
- avatar_url: mautrix.types.ContentURI
- class mautrix.types.UserSearchResults
UserSearchResults(results, limit)
- static __new__(_cls, results, limit)
Create new instance of UserSearchResults(results, limit)
- Parameters
results (List[mautrix.types.User]) –
limit (int) –
- results: List[mautrix.types.User]
Alias for field number 0
- class mautrix.types.ExtensibleEnum
- static __new__(cls, value)
- Parameters
cls (Type[mautrix.types.ExtensibleEnum]) –
value (Any) –
- Return type
- classmethod deserialize(raw)
Convert the given data parsed from JSON into an object of this type.
- Parameters
raw (mautrix.types.JSON) –
- Return type
Any
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- value: Any
- class mautrix.types.Lst
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (list[mautrix.types.JSON]) –
- Return type
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- class mautrix.types.Obj
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (dict[str, mautrix.types.JSON]) –
- Return type
- get(key, default=None)
- popitem()
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- class mautrix.types.Serializable
Serializable is the base class for types with custom JSON serializers.
- classmethod deserialize(raw)
Convert the given data parsed from JSON into an object of this type.
- Parameters
raw (mautrix.types.JSON) –
- Return type
mautrix.types.util.serializable.SerializableSubtype
- classmethod parse_json(data)
Parse the given string as JSON and deserialize the result into this type.
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- class mautrix.types.SerializableAttrs
An abstract
Serializable
that assumes the subclass is an attrs dataclass.Examples
>>> from attr import dataclass >>> from mautrix.types import SerializableAttrs >>> @dataclass ... class Foo(SerializableAttrs): ... index: int ... field: Optional[str] = None
- classmethod deserialize(data)
Convert the given data parsed from JSON into an object of this type.
- Parameters
data (mautrix.types.JSON) –
- Return type
mautrix.types.util.serializable.SerializableSubtype
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- unrecognized_: Dict[str, mautrix.types.JSON]
- class mautrix.types.SerializableEnum
A simple Serializable implementation for Enums.
Examples
>>> class MyEnum(SerializableEnum): ... FOO = "foo value" ... BAR = "hmm" >>> MyEnum.FOO.serialize() "foo value" >>> MyEnum.BAR.json() '"hmm"'
- __init__(_)
A fake
__init__
to stop the type checker from complaining. Enum’s__new__
overrides this.- Return type
- __new__(value)
- exception mautrix.types.SerializerError
SerializerErrors are raised if something goes wrong during serialization or deserialization.
- mautrix.types.deserializer(elem_type)
Define a custom deserialization function for a given type hint.
- Parameters
elem_type (Type[mautrix.types.util.serializable_attrs.T]) – The type hint to define the deserializer for.
- Returns
Decorator for the function. The decorator will simply add the function to a map of deserializers and return the function.
- Return type
Callable[[mautrix.types.util.serializable_attrs.Deserializer], mautrix.types.util.serializable_attrs.Deserializer]
Examples
>>> from datetime import datetime >>> from mautrix.types import deserializer, JSON >>> @deserializer(datetime) ... def deserialize_datetime(data: JSON) -> datetime: ... return datetime.fromtimestamp(data)
- mautrix.types.field(default=NOTHING, factory=None, json=None, flatten=False, hidden=False, ignore_errors=False, omit_empty=True, omit_default=False, metadata=None, **kwargs)
A wrapper around
attr.ib()
to conveniently add SerializableAttrs metadata fields.- Parameters
default (Any) – Same as attr.ib, the default value for the field.
factory (Optional[Callable[[], Any]]) – Same as attr.ib, a factory function that creates the default value.
json (Optional[str]) – The JSON key used for de/serializing the object.
flatten (bool) – Set to flatten subfields inside this field to be a part of the parent object in serialized objects. When deserializing, the input data will be deserialized into both the parent and child fields, so the classes should ignore unknown keys.
hidden (bool) – Set to always omit the key from serialized objects.
ignore_errors (bool) – Set to ignore type errors while deserializing.
omit_empty (bool) – Set to omit the key from serialized objects if the value is
None
.omit_default (bool) – Set to omit the key from serialized objects if the value is equal to the default.
metadata (Optional[Dict[str, Any]]) – Additional metadata for attr.ib.
**kwargs – Additional keyword arguments for attr.ib.
- Returns
The decorator function returned by attr.ib.
Examples
>>> from attr import dataclass >>> from mautrix.types import SerializableAttrs, field >>> @dataclass ... class SomeData(SerializableAttrs): ... my_field: str = field(json="com.example.namespaced_field", default="hi") ... >>> SomeData().serialize() {'com.example.namespaced_field': 'hi'} >>> SomeData.deserialize({"com.example.namespaced_field": "hmm"}) SomeData(my_field='hmm')
- mautrix.types.serializer(elem_type)
Define a custom serialization function for the given type.
- Parameters
elem_type (Type[mautrix.types.util.serializable_attrs.T]) – The type to define the serializer for.
- Returns
Decorator for the function. The decorator will simply add the function to a map of deserializers and return the function.
- Return type
Callable[[mautrix.types.util.serializable_attrs.Serializer], mautrix.types.util.serializable_attrs.Serializer]
Examples
>>> from datetime import datetime >>> from mautrix.types import serializer, JSON >>> @serializer(datetime) ... def serialize_datetime(dt: datetime) -> JSON: ... return dt.timestamp()
- class mautrix.types.SpecVersions
- R010 = Version(format=VersionFormat.LEGACY, major=0, minor=1, patch=0, raw='r0.1.0')
- R020 = Version(format=VersionFormat.LEGACY, major=0, minor=2, patch=0, raw='r0.2.0')
- R030 = Version(format=VersionFormat.LEGACY, major=0, minor=3, patch=0, raw='r0.3.0')
- R040 = Version(format=VersionFormat.LEGACY, major=0, minor=4, patch=0, raw='r0.4.0')
- R050 = Version(format=VersionFormat.LEGACY, major=0, minor=5, patch=0, raw='r0.5.0')
- R060 = Version(format=VersionFormat.LEGACY, major=0, minor=6, patch=0, raw='r0.6.0')
- R061 = Version(format=VersionFormat.LEGACY, major=0, minor=6, patch=1, raw='r0.6.1')
- V11 = Version(format=VersionFormat.MODERN, major=1, minor=1, patch=0, raw='v1.1')
- V110 = Version(format=VersionFormat.MODERN, major=1, minor=10, patch=0, raw='v1.10')
- V111 = Version(format=VersionFormat.MODERN, major=1, minor=11, patch=0, raw='v1.11')
- V12 = Version(format=VersionFormat.MODERN, major=1, minor=2, patch=0, raw='v1.2')
- V13 = Version(format=VersionFormat.MODERN, major=1, minor=3, patch=0, raw='v1.3')
- V14 = Version(format=VersionFormat.MODERN, major=1, minor=4, patch=0, raw='v1.4')
- V15 = Version(format=VersionFormat.MODERN, major=1, minor=5, patch=0, raw='v1.5')
- V16 = Version(format=VersionFormat.MODERN, major=1, minor=6, patch=0, raw='v1.6')
- V17 = Version(format=VersionFormat.MODERN, major=1, minor=7, patch=0, raw='v1.7')
- V18 = Version(format=VersionFormat.MODERN, major=1, minor=8, patch=0, raw='v1.8')
- V19 = Version(format=VersionFormat.MODERN, major=1, minor=9, patch=0, raw='v1.9')
- class mautrix.types.Version
- classmethod deserialize(raw)
Convert the given data parsed from JSON into an object of this type.
- Parameters
raw (mautrix.types.JSON) –
- Return type
- serialize()
Convert this object into objects directly serializable with json.
- Return type
- format: mautrix.types.VersionFormat
- class mautrix.types.VersionsResponse
- property has_legacy_versions: bool
Check if the response contains any legacy (r0.x.y) versions.
Deprecated since version 0.16.10:
supports_at_least()
andsupports()
methods are now preferred.
- property has_modern_versions: bool
Check if the response contains any modern (v1.1 or higher) versions.
Deprecated since version 0.16.10:
supports_at_least()
andsupports()
methods are now preferred.
- property latest_version: mautrix.types.Version
- supports(thing)
Check if the versions response contains the given spec version or unstable feature.
- Parameters
thing (Union[mautrix.types.Version, str]) – The spec version (as a
Version
or string) or unstable feature name (as a string) to check.- Returns
True
if the exact version or unstable feature is supported,False
if it’s not supported,None
for unstable features which are not included in the response at all.- Return type
Optional[bool]
- supports_at_least(version)
Check if the versions response contains the given spec version or any higher version.
- Parameters
version (Union[mautrix.types.Version, str]) – The spec version as a
Version
or a string.- Returns
True
if a version equal to or higher than the given version is found,False
otherwise.- Return type
- versions: List[mautrix.types.Version]