1
0
Fork 0

avoid using custom attrs.define due to mypy issues

main
Felix Stupp 2 years ago
parent bf052969dc
commit b5d62a7778
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -7,6 +7,10 @@ from typing import (
Literal, Literal,
) )
from attrs import (
define,
)
from ...our_types import ( from ...our_types import (
EpochId, EpochId,
HumanFriendlyDesc, HumanFriendlyDesc,
@ -14,11 +18,13 @@ from ...our_types import (
JSON, JSON,
ServiceType, ServiceType,
ServiceClass, ServiceClass,
serializable,
) )
@serializable @define(
frozen=True,
kw_only=True,
)
class GeneralTransportDatagram: class GeneralTransportDatagram:
_version: int = 1 _version: int = 1
timestamp_ns: int timestamp_ns: int
@ -27,7 +33,10 @@ class GeneralTransportDatagram:
data: JSON | GeneralTransportMetadata | None data: JSON | GeneralTransportMetadata | None
@serializable @define(
frozen=True,
kw_only=True,
)
class GeneralTransportMetadata: class GeneralTransportMetadata:
pass pass
@ -35,13 +44,19 @@ class GeneralTransportMetadata:
# connect # connect
@serializable @define(
frozen=True,
kw_only=True,
)
class ConnectDatagram(GeneralTransportDatagram): class ConnectDatagram(GeneralTransportDatagram):
message_type: Literal["connect"] = "connect" message_type: Literal["connect"] = "connect"
data: ConnectMetadata data: ConnectMetadata
@serializable @define(
frozen=True,
kw_only=True,
)
class ConnectMetadata(GeneralTransportMetadata): class ConnectMetadata(GeneralTransportMetadata):
epoch: EpochId epoch: EpochId
type: ServiceType type: ServiceType
@ -51,13 +66,19 @@ class ConnectMetadata(GeneralTransportMetadata):
# disconnect # disconnect
@serializable @define(
frozen=True,
kw_only=True,
)
class DisconnectDatagram(GeneralTransportDatagram): class DisconnectDatagram(GeneralTransportDatagram):
message_type: Literal["disconnect"] = "disconnect" message_type: Literal["disconnect"] = "disconnect"
data: DisconnectMetadata data: DisconnectMetadata
@serializable @define(
frozen=True,
kw_only=True,
)
class DisconnectMetadata(GeneralTransportMetadata): class DisconnectMetadata(GeneralTransportMetadata):
epoch: EpochId epoch: EpochId
exceptional: bool exceptional: bool
@ -67,13 +88,19 @@ class DisconnectMetadata(GeneralTransportMetadata):
# duplicate & replace sender types # duplicate & replace sender types
@serializable @define(
frozen=True,
kw_only=True,
)
class DuplicateSenderDatagram(GeneralTransportDatagram): class DuplicateSenderDatagram(GeneralTransportDatagram):
message_type: Literal["duplicate_sender"] = "duplicate_sender" message_type: Literal["duplicate_sender"] = "duplicate_sender"
data: ConnectMetadata data: ConnectMetadata
@serializable @define(
frozen=True,
kw_only=True,
)
class ReplaceSenderDatagram(GeneralTransportMetadata): class ReplaceSenderDatagram(GeneralTransportMetadata):
message_type: Literal["replace_sender"] = "replace_sender" message_type: Literal["replace_sender"] = "replace_sender"
data: ConnectMetadata data: ConnectMetadata
@ -82,13 +109,19 @@ class ReplaceSenderDatagram(GeneralTransportMetadata):
# failure # failure
@serializable @define(
frozen=True,
kw_only=True,
)
class FailureDatagram(GeneralTransportDatagram): class FailureDatagram(GeneralTransportDatagram):
message_type: Literal["failure"] = "failure" message_type: Literal["failure"] = "failure"
data: FailureMetadata data: FailureMetadata
@serializable @define(
frozen=True,
kw_only=True,
)
class FailureMetadata(GeneralTransportMetadata): class FailureMetadata(GeneralTransportMetadata):
""" """
Issues that a specific service has failed. Issues that a specific service has failed.
@ -105,7 +138,10 @@ class FailureMetadata(GeneralTransportMetadata):
# restart # restart
@serializable @define(
frozen=True,
kw_only=True,
)
class RestartDatagram(GeneralTransportDatagram): class RestartDatagram(GeneralTransportDatagram):
"""issues a restart of a whole Enjo network""" """issues a restart of a whole Enjo network"""
@ -116,7 +152,10 @@ class RestartDatagram(GeneralTransportDatagram):
# transmit # transmit
@serializable @define(
frozen=True,
kw_only=True,
)
class TransmitDatagram(GeneralTransportDatagram): class TransmitDatagram(GeneralTransportDatagram):
message_type: Literal["transmit"] = "transmit" message_type: Literal["transmit"] = "transmit"
data: JSON data: JSON

@ -7,9 +7,6 @@ from collections.abc import (
from decimal import ( from decimal import (
Decimal, Decimal,
) )
from functools import (
partial,
)
from typing import ( from typing import (
TypeAlias, TypeAlias,
NewType, NewType,
@ -19,10 +16,6 @@ from uuid import (
UUID, UUID,
) )
from attrs import (
define,
)
JSON: TypeAlias = Union[ JSON: TypeAlias = Union[
Mapping[str, "JSON"], Mapping[str, "JSON"],
@ -34,13 +27,6 @@ JSON: TypeAlias = Union[
] ]
serializable = partial(
define,
frozen=True,
kw_only=True,
)
ReverseDomainArg = NewType("ReverseDomainArg", str) ReverseDomainArg = NewType("ReverseDomainArg", str)
"""e.g. `"de.6nw.enjo.controller"`""" """e.g. `"de.6nw.enjo.controller"`"""

Loading…
Cancel
Save