python-event-sourcery 0.5.1__tar.gz → 0.5.1a0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/PKG-INFO +1 -1
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event/dto.py +2 -13
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/subscription/in_transaction.py +22 -41
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/event_sourcing/aggregate.py +2 -3
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/event_sourcing/repository.py +3 -6
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/models/__init__.py +2 -2
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/pyproject.toml +1 -1
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/LICENSE +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/README.md +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/backend.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event/encryption.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event/registry.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event/serde.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/event_store.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/in_memory.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/outbox.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/stream_id.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/subscription/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/subscription/builder.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/subscription/interfaces.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/tenant_id.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/versioning.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/backend.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/encryption.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/event.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/event_sourcing/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/exceptions.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/in_transaction.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/interfaces.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/outbox.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/py.typed +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/read_model/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/read_model/cursors_dao.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/read_model/projector.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/subscription.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/dto.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/event_store.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/migrations/0001_initial.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/migrations/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/models.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/outbox.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/py.typed +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/subscription.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/dto.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/event_store.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/outbox.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/py.typed +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/stream.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/subscription.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/__init__.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/cursors_dao.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/dto.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/event_store.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/guid.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/jsonb.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/models/base.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/models/default.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/outbox.py +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/py.typed +0 -0
- {python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/subscription.py +0 -0
|
@@ -73,7 +73,6 @@ class Event(BaseModel, extra="forbid"):
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
TEvent = TypeVar("TEvent", bound=Event)
|
|
76
|
-
TContext = TypeVar("TContext", bound=BaseModel)
|
|
77
76
|
|
|
78
77
|
|
|
79
78
|
class Context(BaseModel, extra="allow"):
|
|
@@ -128,18 +127,8 @@ class WrappedEvent(Generic[TEvent]):
|
|
|
128
127
|
context: Context = dataclasses.field(default_factory=Context)
|
|
129
128
|
|
|
130
129
|
@classmethod
|
|
131
|
-
def wrap(
|
|
132
|
-
|
|
133
|
-
event: TEvent,
|
|
134
|
-
version: int | None,
|
|
135
|
-
context: Context | None = None,
|
|
136
|
-
) -> "WrappedEvent[TEvent]":
|
|
137
|
-
return WrappedEvent[TEvent](
|
|
138
|
-
event=event, version=version, context=context or Context()
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
def get_context(self, context_type: type[TContext]) -> TContext:
|
|
142
|
-
return context_type.model_validate(self.context.model_dump())
|
|
130
|
+
def wrap(cls, event: TEvent, version: int | None) -> "WrappedEvent[TEvent]":
|
|
131
|
+
return WrappedEvent[TEvent](event=event, version=version)
|
|
143
132
|
|
|
144
133
|
|
|
145
134
|
@dataclasses.dataclass(frozen=True)
|
|
@@ -9,7 +9,6 @@ Used for in-transaction (in-process) event processing.
|
|
|
9
9
|
|
|
10
10
|
__all__ = ["Dispatcher", "Listener", "Listeners"]
|
|
11
11
|
|
|
12
|
-
from collections import defaultdict
|
|
13
12
|
from collections.abc import Iterator
|
|
14
13
|
from itertools import chain
|
|
15
14
|
from typing import Protocol
|
|
@@ -21,7 +20,7 @@ from event_sourcery._event_store.event.dto import (
|
|
|
21
20
|
WrappedEvent,
|
|
22
21
|
)
|
|
23
22
|
from event_sourcery._event_store.event.serde import Serde
|
|
24
|
-
from event_sourcery._event_store.stream_id import
|
|
23
|
+
from event_sourcery._event_store.stream_id import StreamId
|
|
25
24
|
from event_sourcery._event_store.tenant_id import TenantId
|
|
26
25
|
|
|
27
26
|
|
|
@@ -59,13 +58,9 @@ class Listeners:
|
|
|
59
58
|
"""
|
|
60
59
|
|
|
61
60
|
def __init__(self) -> None:
|
|
62
|
-
self.
|
|
63
|
-
self._to_categories: dict[StreamCategory, set[Listener]] = defaultdict(set)
|
|
61
|
+
self._listeners: dict[type[Event], set[Listener]] = {}
|
|
64
62
|
|
|
65
|
-
def __getitem__(
|
|
66
|
-
self,
|
|
67
|
-
subscribed_to: type[Event] | StreamCategory,
|
|
68
|
-
) -> Iterator[Listener]:
|
|
63
|
+
def __getitem__(self, event_type: type[Event]) -> Iterator[Listener]:
|
|
69
64
|
"""
|
|
70
65
|
Returns an iterator over all listeners registered for the given event type or
|
|
71
66
|
its base types.
|
|
@@ -76,35 +71,27 @@ class Listeners:
|
|
|
76
71
|
Returns:
|
|
77
72
|
Iterator[Listener]: An iterator over matching listeners.
|
|
78
73
|
"""
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
)
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
def register(self, listener: Listener, to: type[Event] | StreamCategory) -> None:
|
|
74
|
+
return chain(
|
|
75
|
+
*(
|
|
76
|
+
listeners
|
|
77
|
+
for registered_to, listeners in self._listeners.items()
|
|
78
|
+
if issubclass(event_type, registered_to)
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
def register(self, listener: Listener, to: type[Event]) -> None:
|
|
92
83
|
"""
|
|
93
84
|
Registers a listener for a specific event type.
|
|
94
85
|
|
|
95
86
|
Args:
|
|
96
87
|
listener (Listener): The listener to register.
|
|
97
|
-
to (type[Event]
|
|
88
|
+
to (type[Event]): The event type to register the listener for.
|
|
98
89
|
"""
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
self._to_event_types[event_type] = set()
|
|
105
|
-
self._to_event_types[event_type].add(listener)
|
|
106
|
-
|
|
107
|
-
def remove(self, listener: Listener, to: type[Event] | StreamCategory) -> None:
|
|
90
|
+
if to not in self._listeners:
|
|
91
|
+
self._listeners[to] = set()
|
|
92
|
+
self._listeners[to].add(listener)
|
|
93
|
+
|
|
94
|
+
def remove(self, listener: Listener, to: type[Event]) -> None:
|
|
108
95
|
"""
|
|
109
96
|
Removes a listener from a specific event type.
|
|
110
97
|
|
|
@@ -112,12 +99,8 @@ class Listeners:
|
|
|
112
99
|
listener (Listener): The listener to remove.
|
|
113
100
|
to (type[Event]): The event type to remove the listener from.
|
|
114
101
|
"""
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
self._to_categories[category].remove(listener)
|
|
118
|
-
case _:
|
|
119
|
-
if to in self._to_event_types and listener in self._to_event_types[to]:
|
|
120
|
-
self._to_event_types[to].remove(listener)
|
|
102
|
+
if to in self._listeners and listener in self._listeners[to]:
|
|
103
|
+
self._listeners[to].remove(listener)
|
|
121
104
|
|
|
122
105
|
|
|
123
106
|
class Dispatcher:
|
|
@@ -139,10 +122,8 @@ class Dispatcher:
|
|
|
139
122
|
"""
|
|
140
123
|
for raw in raws:
|
|
141
124
|
record = self._serde.deserialize_record(raw)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
listeners = set(self._listeners[event]) | set(self._listeners[category])
|
|
145
|
-
for listener in listeners:
|
|
125
|
+
event_type = record.wrapped_event.event.__class__
|
|
126
|
+
for listener in self._listeners[event_type]:
|
|
146
127
|
listener(
|
|
147
128
|
record.wrapped_event,
|
|
148
129
|
record.stream_id,
|
|
@@ -2,7 +2,6 @@ from collections.abc import Iterator
|
|
|
2
2
|
from contextlib import contextmanager
|
|
3
3
|
from typing import ClassVar
|
|
4
4
|
|
|
5
|
-
from event_sourcery import StreamCategory
|
|
6
5
|
from event_sourcery.event import Event
|
|
7
6
|
|
|
8
7
|
|
|
@@ -18,11 +17,11 @@ class Aggregate:
|
|
|
18
17
|
for applying events in a consistent way.
|
|
19
18
|
|
|
20
19
|
Attributes:
|
|
21
|
-
category (ClassVar[
|
|
20
|
+
category (ClassVar[str]): StreamCategory for the aggregate type (group streams).
|
|
22
21
|
_changes (list[Event]): List of yet not persisted events.
|
|
23
22
|
"""
|
|
24
23
|
|
|
25
|
-
category: ClassVar[
|
|
24
|
+
category: ClassVar[str]
|
|
26
25
|
_changes: list[Event]
|
|
27
26
|
|
|
28
27
|
@contextmanager
|
|
@@ -3,7 +3,7 @@ from contextlib import contextmanager
|
|
|
3
3
|
from typing import Generic, TypeVar, cast
|
|
4
4
|
|
|
5
5
|
from event_sourcery import EventStore, StreamId, StreamUUID
|
|
6
|
-
from event_sourcery.event import
|
|
6
|
+
from event_sourcery.event import Event, WrappedEvent
|
|
7
7
|
from event_sourcery.event_sourcing import Aggregate
|
|
8
8
|
|
|
9
9
|
TAggregate = TypeVar("TAggregate", bound=Aggregate)
|
|
@@ -27,7 +27,6 @@ class Repository(Generic[TAggregate]):
|
|
|
27
27
|
self,
|
|
28
28
|
uuid: StreamUUID,
|
|
29
29
|
aggregate: TAggregate,
|
|
30
|
-
context: Context | None = None,
|
|
31
30
|
) -> Iterator[TAggregate]:
|
|
32
31
|
"""
|
|
33
32
|
Context manager for loading an aggregate instance.
|
|
@@ -39,7 +38,6 @@ class Repository(Generic[TAggregate]):
|
|
|
39
38
|
Args:
|
|
40
39
|
uuid (StreamUUID): The unique identifier of the aggregate's stream.
|
|
41
40
|
aggregate (TAggregate): The aggregate initial instance to load state into.
|
|
42
|
-
context (Context | None): Optional context to attach to all emitted events.
|
|
43
41
|
|
|
44
42
|
Yields:
|
|
45
43
|
TAggregate: The loaded and ready-to-use aggregate instance.
|
|
@@ -47,7 +45,7 @@ class Repository(Generic[TAggregate]):
|
|
|
47
45
|
stream_id = StreamId(uuid=uuid, name=uuid.name, category=aggregate.category)
|
|
48
46
|
old_version = self._load(stream_id, aggregate)
|
|
49
47
|
yield aggregate
|
|
50
|
-
self._save(aggregate, old_version, stream_id
|
|
48
|
+
self._save(aggregate, old_version, stream_id)
|
|
51
49
|
|
|
52
50
|
def _load(self, stream_id: StreamId, aggregate: TAggregate) -> int:
|
|
53
51
|
stream = self._event_store.load_stream(stream_id)
|
|
@@ -63,12 +61,11 @@ class Repository(Generic[TAggregate]):
|
|
|
63
61
|
aggregate: TAggregate,
|
|
64
62
|
old_version: int,
|
|
65
63
|
stream_id: StreamId,
|
|
66
|
-
context: Context | None = None,
|
|
67
64
|
) -> None:
|
|
68
65
|
with aggregate.__persisting_changes__() as pending:
|
|
69
66
|
start_from = old_version + 1
|
|
70
67
|
events = [
|
|
71
|
-
WrappedEvent.wrap(event, version
|
|
68
|
+
WrappedEvent.wrap(event, version)
|
|
72
69
|
for version, event in enumerate(pending, start=start_from)
|
|
73
70
|
]
|
|
74
71
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Protocol
|
|
2
2
|
|
|
3
3
|
from sqlalchemy import MetaData
|
|
4
|
-
from sqlalchemy.orm import
|
|
4
|
+
from sqlalchemy.orm import registry
|
|
5
5
|
from sqlalchemy.orm.clsregistry import ClsRegistryToken
|
|
6
6
|
|
|
7
7
|
from event_sourcery_sqlalchemy.models.base import (
|
|
@@ -28,7 +28,7 @@ _class_registry: dict[str, type | ClsRegistryToken] = {}
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def configure_models(
|
|
31
|
-
base: type[BaseProto
|
|
31
|
+
base: type[BaseProto],
|
|
32
32
|
event_model: type[BaseEvent] = DefaultEvent,
|
|
33
33
|
stream_model: type[BaseStream] = DefaultStream,
|
|
34
34
|
snapshot_model: type[BaseSnapshot] = DefaultSnapshot,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/backend.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/_event_store/outbox.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/in_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/read_model/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/read_model/projector.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery/subscription.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/event_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/models.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/outbox.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/py.typed
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_django/subscription.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/__init__.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/dto.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/outbox.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/py.typed
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_kurrentdb/stream.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/dto.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/guid.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/jsonb.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/outbox.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.5.1 → python_event_sourcery-0.5.1a0}/event_sourcery_sqlalchemy/py.typed
RENAMED
|
File without changes
|
|
File without changes
|