python-event-sourcery 0.4.0a15__tar.gz → 0.4.0a17__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.4.0a15 → python_event_sourcery-0.4.0a17}/PKG-INFO +3 -3
- python_event_sourcery-0.4.0a17/event_sourcery/event_sourcing/__init__.py +7 -0
- {python_event_sourcery-0.4.0a15/event_sourcery/aggregate → python_event_sourcery-0.4.0a17/event_sourcery/event_sourcing}/repository.py +1 -1
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event/_registry.py +3 -1
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/__init__.py +13 -13
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/dto.py +2 -2
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/event_store.py +9 -9
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/outbox.py +8 -8
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/stream.py +4 -2
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/subscription.py +6 -6
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/pyproject.toml +5 -5
- python_event_sourcery-0.4.0a15/event_sourcery/aggregate/__init__.py +0 -7
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/LICENSE +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15/event_sourcery/aggregate → python_event_sourcery-0.4.0a17/event_sourcery/event_sourcing}/aggregate.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/dispatcher.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event/_dto.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event/_encryption.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event/_serde.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/event_store.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/exceptions.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/factory.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/in_memory.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/interfaces.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/outbox.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/stream_id.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/subscription.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/tenant_id.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/event_store/versioning.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/py.typed +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/read_model/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/read_model/cursors_dao.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/read_model/projector.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/dto.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/event_store.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/migrations/0001_initial.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/migrations/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/models.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/outbox.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/py.typed +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/subscription.py +0 -0
- {python_event_sourcery-0.4.0a15/event_sourcery_esdb → python_event_sourcery-0.4.0a17/event_sourcery_kurrentdb}/py.typed +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/__init__.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/cursors_dao.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/dto.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/event_store.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/guid.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/jsonb.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/models.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/outbox.py +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/py.typed +0 -0
- {python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/subscription.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: python-event-sourcery
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.0a17
|
|
4
4
|
Summary:
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Your Name
|
|
@@ -13,11 +13,11 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Provides-Extra: django
|
|
16
|
-
Provides-Extra:
|
|
16
|
+
Provides-Extra: kurrentdb
|
|
17
17
|
Provides-Extra: sqlalchemy
|
|
18
18
|
Requires-Dist: SQLAlchemy (>=2.0) ; extra == "sqlalchemy"
|
|
19
19
|
Requires-Dist: django (>=4,<6) ; extra == "django"
|
|
20
|
-
Requires-Dist:
|
|
20
|
+
Requires-Dist: kurrentdbclient (>=1.0.6) ; extra == "kurrentdb"
|
|
21
21
|
Requires-Dist: more-itertools
|
|
22
22
|
Requires-Dist: psycopg2-binary (>2,<3)
|
|
23
23
|
Requires-Dist: pydantic (>=2.0,<3)
|
|
@@ -2,7 +2,7 @@ from collections.abc import Iterator
|
|
|
2
2
|
from contextlib import contextmanager
|
|
3
3
|
from typing import Generic, TypeVar, cast
|
|
4
4
|
|
|
5
|
-
from event_sourcery.
|
|
5
|
+
from event_sourcery.event_sourcing import Aggregate
|
|
6
6
|
from event_sourcery.event_store import (
|
|
7
7
|
Event,
|
|
8
8
|
EventStore,
|
|
@@ -67,7 +67,9 @@ class EventRegistry:
|
|
|
67
67
|
|
|
68
68
|
def _register_defined_events(self) -> None:
|
|
69
69
|
for event_type in Event.__subclasses__():
|
|
70
|
-
event_type not in self._types_to_names
|
|
70
|
+
not_registered_type = event_type not in self._types_to_names
|
|
71
|
+
not_registered_name = event_name(event_type) not in self._names_to_types
|
|
72
|
+
not_registered_type and not_registered_name and self.add(event_type)
|
|
71
73
|
|
|
72
74
|
def add(self, event: type[TEvent]) -> type[TEvent]:
|
|
73
75
|
"""Add event subclass to the registry."""
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
__all__ = [
|
|
2
2
|
"Config",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"KurrentDBBackendFactory",
|
|
4
|
+
"KurrentDBStorageStrategy",
|
|
5
5
|
]
|
|
6
6
|
|
|
7
7
|
from dataclasses import dataclass, field
|
|
8
8
|
from typing import TypeAlias
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from kurrentdbclient import KurrentDBClient
|
|
11
11
|
from pydantic import BaseModel, ConfigDict, PositiveFloat, PositiveInt
|
|
12
12
|
from typing_extensions import Self
|
|
13
13
|
|
|
@@ -27,9 +27,9 @@ from event_sourcery.event_store.interfaces import (
|
|
|
27
27
|
OutboxStorageStrategy,
|
|
28
28
|
)
|
|
29
29
|
from event_sourcery.event_store.outbox import Outbox
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
30
|
+
from event_sourcery_kurrentdb.event_store import KurrentDBStorageStrategy
|
|
31
|
+
from event_sourcery_kurrentdb.outbox import KurrentDBOutboxStorageStrategy
|
|
32
|
+
from event_sourcery_kurrentdb.subscription import KurrentDBSubscriptionStrategy
|
|
33
33
|
|
|
34
34
|
Seconds: TypeAlias = PositiveFloat
|
|
35
35
|
|
|
@@ -43,8 +43,8 @@ class Config(BaseModel):
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
@dataclass(repr=False)
|
|
46
|
-
class
|
|
47
|
-
|
|
46
|
+
class KurrentDBBackendFactory(BackendFactory):
|
|
47
|
+
kurrentdb_client: KurrentDBClient
|
|
48
48
|
config: Config = field(default_factory=Config)
|
|
49
49
|
_serde: Serde = field(default_factory=lambda: Serde(EventRegistry()))
|
|
50
50
|
_outbox_strategy: OutboxStorageStrategy = field(
|
|
@@ -54,8 +54,8 @@ class ESDBBackendFactory(BackendFactory):
|
|
|
54
54
|
def build(self) -> Backend:
|
|
55
55
|
backend = Backend()
|
|
56
56
|
backend.event_store = EventStore(
|
|
57
|
-
storage_strategy=
|
|
58
|
-
self.
|
|
57
|
+
storage_strategy=KurrentDBStorageStrategy(
|
|
58
|
+
self.kurrentdb_client,
|
|
59
59
|
self.config.timeout,
|
|
60
60
|
),
|
|
61
61
|
serde=self._serde,
|
|
@@ -63,7 +63,7 @@ class ESDBBackendFactory(BackendFactory):
|
|
|
63
63
|
backend.outbox = Outbox(self._outbox_strategy, self._serde)
|
|
64
64
|
backend.subscriber = es.subscription.SubscriptionBuilder(
|
|
65
65
|
_serde=self._serde,
|
|
66
|
-
_strategy=
|
|
66
|
+
_strategy=KurrentDBSubscriptionStrategy(self.kurrentdb_client),
|
|
67
67
|
)
|
|
68
68
|
backend.serde = self._serde
|
|
69
69
|
return backend
|
|
@@ -73,8 +73,8 @@ class ESDBBackendFactory(BackendFactory):
|
|
|
73
73
|
return self
|
|
74
74
|
|
|
75
75
|
def with_outbox(self, filterer: OutboxFiltererStrategy = no_filter) -> Self:
|
|
76
|
-
strategy =
|
|
77
|
-
self.
|
|
76
|
+
strategy = KurrentDBOutboxStorageStrategy(
|
|
77
|
+
self.kurrentdb_client,
|
|
78
78
|
filterer,
|
|
79
79
|
self.config.outbox_name,
|
|
80
80
|
self.config.outbox_attempts,
|
|
@@ -2,10 +2,10 @@ import json
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import Any, Literal, cast
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from kurrentdbclient import NewEvent, RecordedEvent
|
|
6
6
|
|
|
7
7
|
from event_sourcery.event_store import Position, RawEvent, RecordedRaw
|
|
8
|
-
from
|
|
8
|
+
from event_sourcery_kurrentdb import stream
|
|
9
9
|
|
|
10
10
|
ES_PREFIX = "$es-"
|
|
11
11
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, replace
|
|
2
2
|
from typing import cast
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
4
|
+
from kurrentdbclient import KurrentDBClient, StreamState
|
|
5
|
+
from kurrentdbclient.exceptions import NotFoundError
|
|
6
6
|
from typing_extensions import Self
|
|
7
7
|
|
|
8
8
|
from event_sourcery.event_store import (
|
|
@@ -16,12 +16,12 @@ from event_sourcery.event_store import (
|
|
|
16
16
|
from event_sourcery.event_store.exceptions import ConcurrentStreamWriteError
|
|
17
17
|
from event_sourcery.event_store.interfaces import StorageStrategy
|
|
18
18
|
from event_sourcery.event_store.tenant_id import DEFAULT_TENANT
|
|
19
|
-
from
|
|
19
|
+
from event_sourcery_kurrentdb import dto, stream
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
@dataclass(repr=False)
|
|
23
|
-
class
|
|
24
|
-
_client:
|
|
23
|
+
class KurrentDBStorageStrategy(StorageStrategy):
|
|
24
|
+
_client: KurrentDBClient
|
|
25
25
|
_timeout: float | None
|
|
26
26
|
_tenant_id: TenantId = DEFAULT_TENANT
|
|
27
27
|
|
|
@@ -48,7 +48,7 @@ class ESDBStorageStrategy(StorageStrategy):
|
|
|
48
48
|
if snapshot:
|
|
49
49
|
return [snapshot, *events]
|
|
50
50
|
return events
|
|
51
|
-
except
|
|
51
|
+
except NotFoundError:
|
|
52
52
|
return []
|
|
53
53
|
|
|
54
54
|
def _read_snapshot(self, name: stream.Name) -> RawEvent | None:
|
|
@@ -61,7 +61,7 @@ class ESDBStorageStrategy(StorageStrategy):
|
|
|
61
61
|
try:
|
|
62
62
|
last = next(iter(snapshots))
|
|
63
63
|
return dto.snapshot(last)
|
|
64
|
-
except
|
|
64
|
+
except NotFoundError:
|
|
65
65
|
return None
|
|
66
66
|
|
|
67
67
|
def insert_events(
|
|
@@ -115,7 +115,7 @@ class ESDBStorageStrategy(StorageStrategy):
|
|
|
115
115
|
)
|
|
116
116
|
)
|
|
117
117
|
return stream.Position(last.stream_position)
|
|
118
|
-
except
|
|
118
|
+
except NotFoundError:
|
|
119
119
|
return None
|
|
120
120
|
|
|
121
121
|
def delete_stream(self, stream_id: StreamId) -> None:
|
|
@@ -126,7 +126,7 @@ class ESDBStorageStrategy(StorageStrategy):
|
|
|
126
126
|
current_version=StreamState.ANY,
|
|
127
127
|
timeout=self._timeout,
|
|
128
128
|
)
|
|
129
|
-
except
|
|
129
|
+
except NotFoundError:
|
|
130
130
|
pass
|
|
131
131
|
|
|
132
132
|
@property
|
|
@@ -4,23 +4,23 @@ from contextlib import AbstractContextManager, contextmanager
|
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
5
|
from itertools import islice
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
7
|
+
from kurrentdbclient import KurrentDBClient, RecordedEvent
|
|
8
|
+
from kurrentdbclient.exceptions import DeadlineExceededError, NotFoundError
|
|
9
|
+
from kurrentdbclient.persistent import AbstractPersistentSubscription
|
|
10
10
|
|
|
11
11
|
from event_sourcery.event_store import RecordedRaw
|
|
12
12
|
from event_sourcery.event_store.interfaces import (
|
|
13
13
|
OutboxFiltererStrategy,
|
|
14
14
|
OutboxStorageStrategy,
|
|
15
15
|
)
|
|
16
|
-
from
|
|
16
|
+
from event_sourcery_kurrentdb import dto
|
|
17
17
|
|
|
18
18
|
logger = logging.getLogger(__name__)
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(repr=False)
|
|
22
|
-
class
|
|
23
|
-
_client:
|
|
22
|
+
class KurrentDBOutboxStorageStrategy(OutboxStorageStrategy):
|
|
23
|
+
_client: KurrentDBClient
|
|
24
24
|
_filterer: OutboxFiltererStrategy
|
|
25
25
|
_outbox_name: str
|
|
26
26
|
_max_publish_attempts: int
|
|
@@ -30,7 +30,7 @@ class ESDBOutboxStorageStrategy(OutboxStorageStrategy):
|
|
|
30
30
|
def create_subscription(self) -> None:
|
|
31
31
|
try:
|
|
32
32
|
self._client.get_subscription_info(self._outbox_name, timeout=self._timeout)
|
|
33
|
-
except
|
|
33
|
+
except NotFoundError:
|
|
34
34
|
self._client.create_subscription_to_all(
|
|
35
35
|
self._outbox_name,
|
|
36
36
|
from_end=True,
|
|
@@ -70,7 +70,7 @@ class ESDBOutboxStorageStrategy(OutboxStorageStrategy):
|
|
|
70
70
|
record = dto.raw_record(entry)
|
|
71
71
|
if self._filterer(record.entry):
|
|
72
72
|
yield self._publish_context(entry, record)
|
|
73
|
-
except
|
|
73
|
+
except DeadlineExceededError:
|
|
74
74
|
pass
|
|
75
75
|
|
|
76
76
|
@contextmanager
|
|
@@ -14,7 +14,7 @@ class Name(UserString):
|
|
|
14
14
|
|
|
15
15
|
def __init__(self, tenant_id: TenantId, stream_id: StreamId) -> None:
|
|
16
16
|
if "-" in tenant_id:
|
|
17
|
-
raise IllegalTenantId("
|
|
17
|
+
raise IllegalTenantId("KurrentDB can't handle tenant id with '-'")
|
|
18
18
|
self.tenant_id = tenant_id
|
|
19
19
|
self.uuid = stream_id
|
|
20
20
|
super().__init__(self._as_string(self.uuid))
|
|
@@ -29,7 +29,9 @@ class Name(UserString):
|
|
|
29
29
|
|
|
30
30
|
def _as_string(self, stream_id: StreamId) -> str:
|
|
31
31
|
if stream_id.category and "-" in stream_id.category:
|
|
32
|
-
raise IllegalCategoryName(
|
|
32
|
+
raise IllegalCategoryName(
|
|
33
|
+
"KurrentDB storage can't handle category with '-'"
|
|
34
|
+
)
|
|
33
35
|
return f"{stream_id.category or ''}-{self.tenant_id}-{stream_id.hex}"
|
|
34
36
|
|
|
35
37
|
@property
|
|
@@ -4,12 +4,12 @@ from datetime import timedelta
|
|
|
4
4
|
from functools import partial
|
|
5
5
|
from typing import Protocol
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
from
|
|
7
|
+
import kurrentdbclient.exceptions
|
|
8
|
+
from kurrentdbclient import KurrentDBClient, RecordedEvent
|
|
9
9
|
|
|
10
10
|
from event_sourcery.event_store import Position, RecordedRaw
|
|
11
11
|
from event_sourcery.event_store.interfaces import SubscriptionStrategy
|
|
12
|
-
from
|
|
12
|
+
from event_sourcery_kurrentdb import dto
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class BuilderCallable(Protocol):
|
|
@@ -19,8 +19,8 @@ class BuilderCallable(Protocol):
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(repr=False)
|
|
22
|
-
class
|
|
23
|
-
_client:
|
|
22
|
+
class KurrentDBSubscriptionStrategy(SubscriptionStrategy):
|
|
23
|
+
_client: KurrentDBClient
|
|
24
24
|
|
|
25
25
|
@staticmethod
|
|
26
26
|
def _iterator(
|
|
@@ -37,7 +37,7 @@ class ESDBSubscriptionStrategy(SubscriptionStrategy):
|
|
|
37
37
|
if len(batch) == size:
|
|
38
38
|
yield batch
|
|
39
39
|
batch = []
|
|
40
|
-
except
|
|
40
|
+
except kurrentdbclient.exceptions.DeadlineExceededError:
|
|
41
41
|
yield batch
|
|
42
42
|
batch = []
|
|
43
43
|
subscription = builder()
|
|
@@ -3,14 +3,14 @@ name = "python-event-sourcery"
|
|
|
3
3
|
requires-python = ">=3.10"
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
|
-
version = "0.4.
|
|
6
|
+
version = "0.4.0a17"
|
|
7
7
|
description = ""
|
|
8
8
|
authors = ["Your Name <you@example.com>"]
|
|
9
9
|
license = "MIT"
|
|
10
10
|
packages = [
|
|
11
11
|
{ include = "event_sourcery" },
|
|
12
12
|
{ include = "event_sourcery_django" },
|
|
13
|
-
{ include = "
|
|
13
|
+
{ include = "event_sourcery_kurrentdb" },
|
|
14
14
|
{ include = "event_sourcery_sqlalchemy" },
|
|
15
15
|
]
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@ python = ">=3.10,<4.0"
|
|
|
19
19
|
pydantic = ">=2.0,<3"
|
|
20
20
|
more-itertools = "*"
|
|
21
21
|
SQLAlchemy = {version = ">=2.0", optional = true}
|
|
22
|
-
|
|
22
|
+
kurrentdbclient = {version = ">=1.0.6", optional = true}
|
|
23
23
|
django = {version = ">=4,<6", optional = true}
|
|
24
24
|
psycopg2-binary = ">2,<3"
|
|
25
25
|
|
|
@@ -39,7 +39,7 @@ deepdiff = "*"
|
|
|
39
39
|
|
|
40
40
|
[tool.poetry.extras]
|
|
41
41
|
sqlalchemy = ["SQLAlchemy"]
|
|
42
|
-
|
|
42
|
+
kurrentdb = ["kurrentdbclient"]
|
|
43
43
|
django = ["django"]
|
|
44
44
|
|
|
45
45
|
[tool.pytest]
|
|
@@ -57,7 +57,7 @@ branch = true
|
|
|
57
57
|
source = [
|
|
58
58
|
"event_sourcery",
|
|
59
59
|
"event_sourcery_django",
|
|
60
|
-
"
|
|
60
|
+
"event_sourcery_kurrentdb",
|
|
61
61
|
"event_sourcery_sqlalchemy",
|
|
62
62
|
]
|
|
63
63
|
omit = [
|
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery/__init__.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
|
|
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.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/__init__.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/dto.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/models.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/outbox.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_django/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/dto.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/guid.py
RENAMED
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/jsonb.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_event_sourcery-0.4.0a15 → python_event_sourcery-0.4.0a17}/event_sourcery_sqlalchemy/py.typed
RENAMED
|
File without changes
|
|
File without changes
|