Mercurial > libervia-backend
diff libervia/backend/core/core_types.py @ 4071:4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 02 Jun 2023 11:49:51 +0200 |
parents | sat/core/core_types.py@3900626bc100 |
children | c38c33a44171 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libervia/backend/core/core_types.py Fri Jun 02 11:49:51 2023 +0200 @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +# Libervia types +# Copyright (C) 2011 Jérôme Poisson (goffi@goffi.org) + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from collections import namedtuple +from typing import Dict, Callable, Optional +from typing_extensions import TypedDict + +from twisted.words.protocols.jabber import jid as t_jid +from twisted.words.protocols.jabber import xmlstream +from twisted.words.xish import domish + + +class SatXMPPEntity: + + profile: str + jid: t_jid.JID + is_component: bool + server_jid: t_jid.JID + IQ: Callable[[Optional[str], Optional[int]], xmlstream.IQ] + +EncryptionPlugin = namedtuple("EncryptionPlugin", ("instance", + "name", + "namespace", + "priority", + "directed")) + + +class EncryptionSession(TypedDict): + plugin: EncryptionPlugin + + +# Incomplete types built through observation rather than code inspection. +MessageDataExtra = TypedDict( + "MessageDataExtra", + { "encrypted": bool, "origin_id": str }, + total=False +) + + +MessageData = TypedDict("MessageData", { + "from": t_jid.JID, + "to": t_jid.JID, + "uid": str, + "message": Dict[str, str], + "subject": Dict[str, str], + "type": str, + "timestamp": float, + "extra": MessageDataExtra, + "ENCRYPTION": EncryptionSession, + "xml": domish.Element +}, total=False)