Loading .pre-commit-config.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -97,6 +97,6 @@ repos: pass_filenames: false additional_dependencies: - anyio - kilter.protocol ~=0.1.3 - kilter.protocol ~=0.2.1 - sphinx - trio-typing kilter/service/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -8,12 +8,12 @@ project). The framework aims to provide Pythonic interfaces for implementing fi including leveraging coroutines instead of libmilter's callback-style interface. """ from ..protocol import ResponseMessage from .runner import Runner from .session import END from .session import START from .session import After from .session import Before from .session import ResponseMessage from .session import Session __version__ = "0.1.1" Loading kilter/service/runner.py +4 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,10 @@ from anyio.streams.stapled import StapledObjectStream from async_generator import aclosing from kilter.protocol.buffer import SimpleBuffer from kilter.protocol.core import EditMessage from kilter.protocol.core import EventMessage from kilter.protocol.core import FilterProtocol from kilter.protocol.core import ResponseMessage from kilter.protocol.messages import ProtocolFlags from .session import * Loading @@ -35,7 +38,7 @@ from .util import Broadcast from .util import qualname MessageChannel: TypeAlias = anyio.abc.ObjectStream[Message] Sender: TypeAlias = AsyncGenerator[None, Message] Sender: TypeAlias = AsyncGenerator[None, ResponseMessage|EditMessage|Negotiate|Skip] kiB: Final = 2**10 MiB: Final = 2**20 Loading kilter/service/session.py +3 −26 Original line number Diff line number Diff line Loading @@ -22,38 +22,15 @@ from typing import TYPE_CHECKING from typing import AsyncContextManager from typing import Literal from typing import Protocol from typing import TypeAlias from typing import TypeVar from typing import Union from warnings import warn from ..protocol.core import EditMessage from ..protocol.core import EventMessage from ..protocol.core import ResponseMessage from ..protocol.messages import * from . import util EventMessage: TypeAlias = Union[ Connect, Helo, EnvelopeFrom, EnvelopeRecipient, Data, Unknown, Header, EndOfHeaders, Body, EndOfMessage, Macro, Abort, ] """ Messages sent from an MTA to a filter """ ResponseMessage: TypeAlias = Union[ Continue, Reject, Discard, Accept, TemporaryFailure, ReplyCode, ] """ Messages send from a filter to an MTA in response to `EventMessages` """ EditMessage: TypeAlias = Union[ AddHeader, ChangeHeader, InsertHeader, ChangeSender, AddRecipient, AddRecipientPar, RemoveRecipient, ReplaceBody, ] """ Messages send from a filter to an MTA after an `EndOfMessage` to modify a message """ class Aborted(BaseException): """ Loading pyproject.toml +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ requires-python = ">=3.10,<4" dependencies = [ "anyio", "async-generator ~=1.2", "kilter.protocol ~=0.1.3", "kilter.protocol ~=0.2.1", ] classifiers = [ "Development Status :: 1 - Planning", Loading Loading
.pre-commit-config.yaml +1 −1 Original line number Diff line number Diff line Loading @@ -97,6 +97,6 @@ repos: pass_filenames: false additional_dependencies: - anyio - kilter.protocol ~=0.1.3 - kilter.protocol ~=0.2.1 - sphinx - trio-typing
kilter/service/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -8,12 +8,12 @@ project). The framework aims to provide Pythonic interfaces for implementing fi including leveraging coroutines instead of libmilter's callback-style interface. """ from ..protocol import ResponseMessage from .runner import Runner from .session import END from .session import START from .session import After from .session import Before from .session import ResponseMessage from .session import Session __version__ = "0.1.1" Loading
kilter/service/runner.py +4 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,10 @@ from anyio.streams.stapled import StapledObjectStream from async_generator import aclosing from kilter.protocol.buffer import SimpleBuffer from kilter.protocol.core import EditMessage from kilter.protocol.core import EventMessage from kilter.protocol.core import FilterProtocol from kilter.protocol.core import ResponseMessage from kilter.protocol.messages import ProtocolFlags from .session import * Loading @@ -35,7 +38,7 @@ from .util import Broadcast from .util import qualname MessageChannel: TypeAlias = anyio.abc.ObjectStream[Message] Sender: TypeAlias = AsyncGenerator[None, Message] Sender: TypeAlias = AsyncGenerator[None, ResponseMessage|EditMessage|Negotiate|Skip] kiB: Final = 2**10 MiB: Final = 2**20 Loading
kilter/service/session.py +3 −26 Original line number Diff line number Diff line Loading @@ -22,38 +22,15 @@ from typing import TYPE_CHECKING from typing import AsyncContextManager from typing import Literal from typing import Protocol from typing import TypeAlias from typing import TypeVar from typing import Union from warnings import warn from ..protocol.core import EditMessage from ..protocol.core import EventMessage from ..protocol.core import ResponseMessage from ..protocol.messages import * from . import util EventMessage: TypeAlias = Union[ Connect, Helo, EnvelopeFrom, EnvelopeRecipient, Data, Unknown, Header, EndOfHeaders, Body, EndOfMessage, Macro, Abort, ] """ Messages sent from an MTA to a filter """ ResponseMessage: TypeAlias = Union[ Continue, Reject, Discard, Accept, TemporaryFailure, ReplyCode, ] """ Messages send from a filter to an MTA in response to `EventMessages` """ EditMessage: TypeAlias = Union[ AddHeader, ChangeHeader, InsertHeader, ChangeSender, AddRecipient, AddRecipientPar, RemoveRecipient, ReplaceBody, ] """ Messages send from a filter to an MTA after an `EndOfMessage` to modify a message """ class Aborted(BaseException): """ Loading
pyproject.toml +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ requires-python = ">=3.10,<4" dependencies = [ "anyio", "async-generator ~=1.2", "kilter.protocol ~=0.1.3", "kilter.protocol ~=0.2.1", ] classifiers = [ "Development Status :: 1 - Planning", Loading