eventsourcing 9.3.0a1__py3-none-any.whl → 9.3.1__py3-none-any.whl

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.

Potentially problematic release.


This version of eventsourcing might be problematic. Click here for more details.

@@ -53,26 +53,26 @@ class TestPostgresDatastore(TestCase):
53
53
  self.assertTrue(psycopg.Pipeline.is_supported())
54
54
 
55
55
  def test_has_connection_pool(self):
56
- datastore = PostgresDatastore(
56
+ with PostgresDatastore(
57
57
  dbname="eventsourcing",
58
58
  host="127.0.0.1",
59
59
  port="5432",
60
60
  user="eventsourcing",
61
61
  password="eventsourcing", # noqa: S106
62
- )
63
- self.assertIsInstance(datastore.pool, ConnectionPool)
62
+ ) as datastore:
63
+ self.assertIsInstance(datastore.pool, ConnectionPool)
64
64
 
65
65
  def test_get_connection(self):
66
- datastore = PostgresDatastore(
66
+ with PostgresDatastore(
67
67
  dbname="eventsourcing",
68
68
  host="127.0.0.1",
69
69
  port="5432",
70
70
  user="eventsourcing",
71
71
  password="eventsourcing", # noqa: S106
72
- )
73
- conn: Connection
74
- with datastore.get_connection() as conn:
75
- self.assertIsInstance(conn, Connection)
72
+ ) as datastore:
73
+ conn: Connection
74
+ with datastore.get_connection() as conn:
75
+ self.assertIsInstance(conn, Connection)
76
76
 
77
77
  def test_context_manager_converts_exceptions_and_conditionally_calls_close(self):
78
78
  cases = [
@@ -88,31 +88,30 @@ class TestPostgresDatastore(TestCase):
88
88
  (TypeError, TypeError(), True),
89
89
  (TypeError, TypeError, True),
90
90
  ]
91
- datastore = PostgresDatastore(
91
+ with PostgresDatastore(
92
92
  dbname="eventsourcing",
93
93
  host="127.0.0.1",
94
94
  port="5432",
95
95
  user="eventsourcing",
96
96
  password="eventsourcing", # noqa: S106
97
- )
98
- for expected_exc_type, raised_exc, expect_conn_closed in cases:
99
- with self.assertRaises(expected_exc_type):
100
- conn: Connection
101
- with datastore.get_connection() as conn:
102
- self.assertFalse(conn.closed)
103
- raise raised_exc
104
- self.assertTrue(conn.closed is expect_conn_closed, raised_exc)
97
+ ) as datastore:
98
+ for expected_exc_type, raised_exc, expect_conn_closed in cases:
99
+ with self.assertRaises(expected_exc_type):
100
+ conn: Connection
101
+ with datastore.get_connection() as conn:
102
+ self.assertFalse(conn.closed)
103
+ raise raised_exc
104
+ self.assertTrue(conn.closed is expect_conn_closed, raised_exc)
105
105
 
106
106
  def test_transaction_from_datastore(self):
107
- datastore = PostgresDatastore(
107
+ with PostgresDatastore(
108
108
  dbname="eventsourcing",
109
109
  host="127.0.0.1",
110
110
  port="5432",
111
111
  user="eventsourcing",
112
112
  password="eventsourcing", # noqa: S106
113
- )
114
- # As a convenience, we can use the transaction() method.
115
- with datastore.transaction(commit=False) as curs:
113
+ ) as datastore, datastore.transaction(commit=False) as curs:
114
+ # As a convenience, we can use the transaction() method.
116
115
  curs.execute("SELECT 1")
117
116
  self.assertEqual(curs.fetchall(), [{"?column?": 1}])
118
117
 
@@ -128,15 +127,14 @@ class TestPostgresDatastore(TestCase):
128
127
  with self.assertRaises(OperationalError), datastore.get_connection():
129
128
  pass
130
129
 
131
- datastore = PostgresDatastore(
130
+ with PostgresDatastore(
132
131
  dbname="eventsourcing",
133
132
  host="127.0.0.1",
134
133
  port="987654321", # bad value
135
134
  user="eventsourcing",
136
135
  password="eventsourcing", # noqa: S106
137
136
  pool_open_timeout=2,
138
- )
139
- with self.assertRaises(OperationalError), datastore.get_connection():
137
+ ) as datastore, self.assertRaises(OperationalError), datastore.get_connection():
140
138
  pass
141
139
 
142
140
  @skipIf(
@@ -146,7 +144,7 @@ class TestPostgresDatastore(TestCase):
146
144
  def test_pre_ping(self):
147
145
  # Define method to open and close a connection, and then execute a statement.
148
146
  def open_close_execute(*, pre_ping: bool):
149
- datastore = PostgresDatastore(
147
+ with PostgresDatastore(
150
148
  dbname="eventsourcing",
151
149
  host="127.0.0.1",
152
150
  port="5432",
@@ -154,28 +152,28 @@ class TestPostgresDatastore(TestCase):
154
152
  password="eventsourcing", # noqa: S106
155
153
  pool_size=1,
156
154
  pre_ping=pre_ping,
157
- )
155
+ ) as datastore:
158
156
 
159
- # Create a connection.
160
- conn: Connection
161
- with datastore.get_connection() as conn, conn.cursor() as curs:
162
- curs.execute("SELECT 1")
163
- self.assertEqual(curs.fetchall(), [{"?column?": 1}])
157
+ # Create a connection.
158
+ conn: Connection
159
+ with datastore.get_connection() as conn, conn.cursor() as curs:
160
+ curs.execute("SELECT 1")
161
+ self.assertEqual(curs.fetchall(), [{"?column?": 1}])
164
162
 
165
- # Close all connections via separate connection.
166
- pg_close_all_connections()
163
+ # Close all connections via separate connection.
164
+ pg_close_all_connections()
167
165
 
168
- # Check the connection doesn't think it's closed.
169
- self.assertTrue(datastore.pool._pool)
170
- self.assertFalse(datastore.pool._pool[0].closed)
166
+ # Check the connection doesn't think it's closed.
167
+ self.assertTrue(datastore.pool._pool)
168
+ self.assertFalse(datastore.pool._pool[0].closed)
171
169
 
172
- # Get a closed connection.
173
- conn: Connection
174
- with datastore.get_connection() as conn:
175
- self.assertFalse(conn.closed)
170
+ # Get a closed connection.
171
+ conn: Connection
172
+ with datastore.get_connection() as conn:
173
+ self.assertFalse(conn.closed)
176
174
 
177
- with conn.cursor() as curs:
178
- curs.execute("SELECT 1")
175
+ with conn.cursor() as curs:
176
+ curs.execute("SELECT 1")
179
177
 
180
178
  # Check using the closed connection gives an error.
181
179
  with self.assertRaises(OperationalError):
@@ -185,60 +183,62 @@ class TestPostgresDatastore(TestCase):
185
183
  open_close_execute(pre_ping=True)
186
184
 
187
185
  def test_idle_in_transaction_session_timeout(self):
188
- datastore = PostgresDatastore(
186
+ with PostgresDatastore(
189
187
  dbname="eventsourcing",
190
188
  host="127.0.0.1",
191
189
  port="5432",
192
190
  user="eventsourcing",
193
191
  password="eventsourcing", # noqa: S106
194
192
  idle_in_transaction_session_timeout=1,
195
- )
193
+ ) as datastore:
196
194
 
197
- # Error on commit is raised.
198
- with self.assertRaises(OperationalError), datastore.get_connection() as curs:
199
- curs.execute("BEGIN")
200
- curs.execute("SELECT 1")
201
- self.assertFalse(curs.closed)
202
- sleep(2)
203
-
204
- # Error on commit is raised.
205
- with self.assertRaises(OperationalError), datastore.transaction(
206
- commit=True
207
- ) as curs:
208
- # curs.execute("BEGIN")
209
- curs.execute("SELECT 1")
210
- self.assertFalse(curs.closed)
211
- sleep(2)
195
+ # Error on commit is raised.
196
+ with self.assertRaises(
197
+ OperationalError
198
+ ), datastore.get_connection() as curs:
199
+ curs.execute("BEGIN")
200
+ curs.execute("SELECT 1")
201
+ self.assertFalse(curs.closed)
202
+ sleep(2)
203
+
204
+ # Error on commit is raised.
205
+ with self.assertRaises(OperationalError), datastore.transaction(
206
+ commit=True
207
+ ) as curs:
208
+ # curs.execute("BEGIN")
209
+ curs.execute("SELECT 1")
210
+ self.assertFalse(curs.closed)
211
+ sleep(2)
212
212
 
213
- # Force rollback. Error is ignored.
214
- with datastore.transaction(commit=False) as curs:
215
- # curs.execute("BEGIN")
216
- curs.execute("SELECT 1")
217
- self.assertFalse(curs.closed)
218
- sleep(2)
213
+ # Force rollback. Error is ignored.
214
+ with datastore.transaction(commit=False) as curs:
215
+ # curs.execute("BEGIN")
216
+ curs.execute("SELECT 1")
217
+ self.assertFalse(curs.closed)
218
+ sleep(2)
219
219
 
220
- # Autocommit mode - transaction is commited in time.
221
- with datastore.get_connection() as curs:
222
- curs.execute("SELECT 1")
223
- self.assertFalse(curs.closed)
224
- sleep(2)
220
+ # Autocommit mode - transaction is commited in time.
221
+ with datastore.get_connection() as curs:
222
+ curs.execute("SELECT 1")
223
+ self.assertFalse(curs.closed)
224
+ sleep(2)
225
225
 
226
226
  def test_get_password_func(self):
227
227
  # Check correct password is required, wrong password causes operational error.
228
- datastore = PostgresDatastore(
228
+ with PostgresDatastore(
229
229
  dbname="eventsourcing",
230
230
  host="127.0.0.1",
231
231
  port="5432",
232
232
  user="eventsourcing",
233
233
  password="wrong", # noqa: S106
234
234
  pool_size=1,
235
- )
235
+ ) as datastore:
236
236
 
237
- conn: Connection
238
- with self.assertRaises(
239
- OperationalError
240
- ), datastore.get_connection() as conn, conn.cursor() as curs:
241
- curs.execute("SELECT 1")
237
+ conn: Connection
238
+ with self.assertRaises(
239
+ OperationalError
240
+ ), datastore.get_connection() as conn, conn.cursor() as curs:
241
+ curs.execute("SELECT 1")
242
242
 
243
243
  # Define a "get password" function, with a generator that returns
244
244
  # wrong password a few times first.
@@ -253,7 +253,7 @@ class TestPostgresDatastore(TestCase):
253
253
  return next(password_generator)
254
254
 
255
255
  # Construct datastore with "get password" function.
256
- datastore = PostgresDatastore(
256
+ with PostgresDatastore(
257
257
  dbname="eventsourcing",
258
258
  host="127.0.0.1",
259
259
  port="5432",
@@ -262,11 +262,9 @@ class TestPostgresDatastore(TestCase):
262
262
  pool_size=1,
263
263
  get_password_func=get_password_func,
264
264
  connect_timeout=10,
265
- )
266
-
267
- # Create a connection, and check it works (this test depends on psycopg
268
- # retrying attempt to connect, should call "get password" twice).
269
- with datastore.get_connection() as conn, conn.cursor() as curs:
265
+ ) as datastore, datastore.get_connection() as conn, conn.cursor() as curs:
266
+ # Create a connection, and check it works (this test depends on psycopg
267
+ # retrying attempt to connect, should call "get password" twice).
270
268
  curs.execute("SELECT 1")
271
269
  self.assertEqual(curs.fetchall(), [{"?column?": 1}])
272
270
 
@@ -781,15 +779,15 @@ class TestPostgresInfrastructureFactory(InfrastructureFactoryTestCase):
781
779
  super().tearDown()
782
780
 
783
781
  def drop_tables(self):
784
- datastore = PostgresDatastore(
782
+ with PostgresDatastore(
785
783
  "eventsourcing",
786
784
  "127.0.0.1",
787
785
  "5432",
788
786
  "eventsourcing",
789
787
  "eventsourcing",
790
- )
791
- drop_postgres_table(datastore, "testcase_events")
792
- drop_postgres_table(datastore, "testcase_tracking")
788
+ ) as datastore:
789
+ drop_postgres_table(datastore, "testcase_events")
790
+ drop_postgres_table(datastore, "testcase_tracking")
793
791
 
794
792
  def test_close(self):
795
793
  factory = Factory(self.env)
@@ -820,16 +818,16 @@ class TestPostgresInfrastructureFactory(InfrastructureFactoryTestCase):
820
818
  self.assertEqual(self.factory.datastore.pool.min_size, 5)
821
819
 
822
820
  def test_max_overflow_is_ten_by_default(self):
823
- self.assertTrue(Factory.POSTGRES_POOL_MAX_OVERFLOW not in self.env)
821
+ self.assertTrue(Factory.POSTGRES_MAX_OVERFLOW not in self.env)
824
822
  self.factory = Factory(self.env)
825
823
  self.assertEqual(self.factory.datastore.pool.max_size, 15)
826
824
 
827
- self.env[Factory.POSTGRES_POOL_MAX_OVERFLOW] = ""
825
+ self.env[Factory.POSTGRES_MAX_OVERFLOW] = ""
828
826
  self.factory = Factory(self.env)
829
827
  self.assertEqual(self.factory.datastore.pool.max_size, 15)
830
828
 
831
829
  def test_max_overflow_is_set(self):
832
- self.env[Factory.POSTGRES_POOL_MAX_OVERFLOW] = "7"
830
+ self.env[Factory.POSTGRES_MAX_OVERFLOW] = "7"
833
831
  self.factory = Factory(self.env)
834
832
  self.assertEqual(self.factory.datastore.pool.max_size, 12)
835
833
 
@@ -838,31 +836,31 @@ class TestPostgresInfrastructureFactory(InfrastructureFactoryTestCase):
838
836
  self.factory = Factory(self.env)
839
837
  self.assertEqual(self.factory.datastore.pool.min_size, 6)
840
838
 
841
- def test_connect_timeout_is_five_by_default(self):
839
+ def test_connect_timeout_is_thirty_by_default(self):
842
840
  self.assertTrue(Factory.POSTGRES_CONNECT_TIMEOUT not in self.env)
843
841
  self.factory = Factory(self.env)
844
- self.assertEqual(self.factory.datastore.pool.timeout, 5)
842
+ self.assertEqual(self.factory.datastore.pool.timeout, 30)
845
843
 
846
844
  self.env[Factory.POSTGRES_CONNECT_TIMEOUT] = ""
847
845
  self.factory = Factory(self.env)
848
- self.assertEqual(self.factory.datastore.pool.timeout, 5)
846
+ self.assertEqual(self.factory.datastore.pool.timeout, 30)
849
847
 
850
848
  def test_connect_timeout_is_set(self):
851
849
  self.env[Factory.POSTGRES_CONNECT_TIMEOUT] = "8"
852
850
  self.factory = Factory(self.env)
853
851
  self.assertEqual(self.factory.datastore.pool.timeout, 8)
854
852
 
855
- def test_pool_timeout_is_30_by_default(self):
856
- self.assertTrue(Factory.POSTGRES_POOL_TIMEOUT not in self.env)
853
+ def test_max_waiting_is_0_by_default(self):
854
+ self.assertTrue(Factory.POSTGRES_MAX_WAITING not in self.env)
857
855
  self.factory = Factory(self.env)
858
- self.assertEqual(self.factory.datastore.pool.max_waiting, 30)
856
+ self.assertEqual(self.factory.datastore.pool.max_waiting, 0)
859
857
 
860
- self.env[Factory.POSTGRES_POOL_TIMEOUT] = ""
858
+ self.env[Factory.POSTGRES_MAX_WAITING] = ""
861
859
  self.factory = Factory(self.env)
862
- self.assertEqual(self.factory.datastore.pool.max_waiting, 30)
860
+ self.assertEqual(self.factory.datastore.pool.max_waiting, 0)
863
861
 
864
- def test_pool_timeout_is_set(self):
865
- self.env[Factory.POSTGRES_POOL_TIMEOUT] = "8"
862
+ def test_max_waiting_is_set(self):
863
+ self.env[Factory.POSTGRES_MAX_WAITING] = "8"
866
864
  self.factory = Factory(self.env)
867
865
  self.assertEqual(self.factory.datastore.pool.max_waiting, 8)
868
866
 
@@ -945,14 +943,14 @@ class TestPostgresInfrastructureFactory(InfrastructureFactoryTestCase):
945
943
  "is invalid. If set, an integer or empty string is expected: 'abc'",
946
944
  )
947
945
 
948
- def test_environment_error_raised_when_pool_timeout_not_an_integer(self):
949
- self.env[Factory.POSTGRES_POOL_TIMEOUT] = "abc"
946
+ def test_environment_error_raised_when_max_waiting_not_an_integer(self):
947
+ self.env[Factory.POSTGRES_MAX_WAITING] = "abc"
950
948
  with self.assertRaises(EnvironmentError) as cm:
951
949
  Factory(self.env)
952
950
  self.assertEqual(
953
951
  cm.exception.args[0],
954
- "Postgres environment value for key 'POSTGRES_POOL_TIMEOUT' "
955
- "is invalid. If set, a float or empty string is expected: 'abc'",
952
+ "Postgres environment value for key 'POSTGRES_MAX_WAITING' "
953
+ "is invalid. If set, an integer or empty string is expected: 'abc'",
956
954
  )
957
955
 
958
956
  def test_environment_error_raised_when_lock_timeout_not_an_integer(self):
@@ -976,12 +974,12 @@ class TestPostgresInfrastructureFactory(InfrastructureFactoryTestCase):
976
974
  )
977
975
 
978
976
  def test_environment_error_raised_when_max_conn_not_an_integer(self):
979
- self.env[Factory.POSTGRES_POOL_MAX_OVERFLOW] = "abc"
977
+ self.env[Factory.POSTGRES_MAX_OVERFLOW] = "abc"
980
978
  with self.assertRaises(EnvironmentError) as cm:
981
979
  Factory(self.env)
982
980
  self.assertEqual(
983
981
  cm.exception.args[0],
984
- "Postgres environment value for key 'POSTGRES_POOL_MAX_OVERFLOW' "
982
+ "Postgres environment value for key 'POSTGRES_MAX_OVERFLOW' "
985
983
  "is invalid. If set, an integer or empty string is expected: 'abc'",
986
984
  )
987
985
 
@@ -738,28 +738,28 @@ class TestMultiThreadedRunnerWithPostgres(TestMultiThreadedRunner):
738
738
  os.environ["POSTGRES_USER"] = "eventsourcing"
739
739
  os.environ["POSTGRES_PASSWORD"] = "eventsourcing" # noqa: S105
740
740
 
741
- db = PostgresDatastore(
741
+ with PostgresDatastore(
742
742
  os.getenv("POSTGRES_DBNAME"),
743
743
  os.getenv("POSTGRES_HOST"),
744
744
  os.getenv("POSTGRES_PORT"),
745
745
  os.getenv("POSTGRES_USER"),
746
746
  os.getenv("POSTGRES_PASSWORD"),
747
- )
748
- drop_postgres_table(db, f"{BankAccounts.name.lower()}_events")
749
- drop_postgres_table(db, f"{EmailProcess.name.lower()}_events")
750
- drop_postgres_table(db, f"{EmailProcess.name.lower()}_tracking")
751
- drop_postgres_table(db, f"{EmailProcess.name.lower()}2_events")
752
- drop_postgres_table(db, f"{EmailProcess.name.lower()}2_tracking")
753
- drop_postgres_table(db, "brokenprocessing_events")
754
- drop_postgres_table(db, "brokenprocessing_tracking")
755
- drop_postgres_table(db, "brokenconverting_events")
756
- drop_postgres_table(db, "brokenconverting_tracking")
757
- drop_postgres_table(db, "brokenpulling_events")
758
- drop_postgres_table(db, "brokenpulling_tracking")
759
- drop_postgres_table(db, "commands_events")
760
- drop_postgres_table(db, "commands_tracking")
761
- drop_postgres_table(db, "results_events")
762
- drop_postgres_table(db, "results_tracking")
747
+ ) as datastore:
748
+ drop_postgres_table(datastore, f"{BankAccounts.name.lower()}_events")
749
+ drop_postgres_table(datastore, f"{EmailProcess.name.lower()}_events")
750
+ drop_postgres_table(datastore, f"{EmailProcess.name.lower()}_tracking")
751
+ drop_postgres_table(datastore, f"{EmailProcess.name.lower()}2_events")
752
+ drop_postgres_table(datastore, f"{EmailProcess.name.lower()}2_tracking")
753
+ drop_postgres_table(datastore, "brokenprocessing_events")
754
+ drop_postgres_table(datastore, "brokenprocessing_tracking")
755
+ drop_postgres_table(datastore, "brokenconverting_events")
756
+ drop_postgres_table(datastore, "brokenconverting_tracking")
757
+ drop_postgres_table(datastore, "brokenpulling_events")
758
+ drop_postgres_table(datastore, "brokenpulling_tracking")
759
+ drop_postgres_table(datastore, "commands_events")
760
+ drop_postgres_table(datastore, "commands_tracking")
761
+ drop_postgres_table(datastore, "results_events")
762
+ drop_postgres_table(datastore, "results_tracking")
763
763
 
764
764
  os.environ["PERSISTENCE_MODULE"] = "eventsourcing.postgres"
765
765
 
@@ -155,10 +155,7 @@ class TestSystem(TestCase):
155
155
 
156
156
  def test_system_has_topic_if_defined_as_module_attribute(self):
157
157
  system_topic = system_defined_as_global.topic
158
- self.assertEqual(
159
- system_topic,
160
- "eventsourcing.tests.system_tests.test_system:system_defined_as_global",
161
- )
158
+ self.assertTrue(system_topic.endswith("test_system:system_defined_as_global"))
162
159
  self.assertEqual(resolve_topic(system_topic), system_defined_as_global)
163
160
 
164
161
  def test_system_topic_is_none_if_defined_in_function_body(self):
@@ -0,0 +1,10 @@
1
+ John Bywater
2
+ Denis Kyorov
3
+ Chris May
4
+ Bo Jin
5
+ Leon Harris
6
+ Julian Pistorius
7
+ Lukasz Balcerzak
8
+ James Rivett-Carnac
9
+ Vladimir Nani
10
+ Russ Ferriday
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: eventsourcing
3
- Version: 9.3.0a1
3
+ Version: 9.3.1
4
4
  Summary: Event sourcing in Python
5
5
  Home-page: https://github.com/pyeventsourcing/eventsourcing
6
6
  License: BSD 3-Clause
@@ -8,7 +8,7 @@ Keywords: event sourcing,event store,domain driven design,domain-driven design,d
8
8
  Author: John Bywater
9
9
  Author-email: john.bywater@appropriatesoftware.net
10
10
  Requires-Python: >=3.8,<4.0
11
- Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Intended Audience :: Education
14
14
  Classifier: Intended Audience :: Science/Research
@@ -22,6 +22,7 @@ Classifier: Programming Language :: Python :: 3.9
22
22
  Classifier: Programming Language :: Python :: 3.10
23
23
  Classifier: Programming Language :: Python :: 3.11
24
24
  Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
25
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
27
  Provides-Extra: crypto
27
28
  Provides-Extra: docs
@@ -29,11 +30,11 @@ Provides-Extra: postgres
29
30
  Requires-Dist: Sphinx ; extra == "docs"
30
31
  Requires-Dist: backports.zoneinfo ; python_version < "3.9"
31
32
  Requires-Dist: orjson ; extra == "docs"
32
- Requires-Dist: psycopg[c,pool] (<=3.9.99999) ; extra == "postgres"
33
- Requires-Dist: pycryptodome (<=3.20.99999) ; extra == "crypto"
33
+ Requires-Dist: psycopg[c,pool] (<=3.2.1) ; (python_full_version <= "3.12.999999") and (extra == "postgres")
34
+ Requires-Dist: pycryptodome (>=3.20,<3.21) ; extra == "crypto"
34
35
  Requires-Dist: pydantic ; extra == "docs"
35
36
  Requires-Dist: sphinx_rtd_theme ; extra == "docs"
36
- Requires-Dist: typing_extensions ; python_version < "3.8"
37
+ Requires-Dist: typing_extensions
37
38
  Project-URL: Repository, https://github.com/pyeventsourcing/eventsourcing
38
39
  Description-Content-Type: text/markdown
39
40
 
@@ -1,9 +1,9 @@
1
1
  eventsourcing/__init__.py,sha256=st2H3shrhTk5rqoUeZHUW8XD9iOX9tGGtQFWr2HGYmo,26
2
- eventsourcing/application.py,sha256=ZTsk-qTieT13Jesf44Xh6htF8Y_CP753bmdoDOKSVW4,36109
2
+ eventsourcing/application.py,sha256=ypzKvBt8s20Grlm3ltHmNIG5fD4R0xFlqsAn7PlcJrI,36303
3
3
  eventsourcing/cipher.py,sha256=NJcVfZdSlCER6xryM4zVoY3cmKstF-iSSniB4jmpaKg,3200
4
4
  eventsourcing/compressor.py,sha256=IdvrJUB9B2td871oifInv4lGXmHwYL9d69MbHHCr7uI,421
5
5
  eventsourcing/dispatch.py,sha256=yYSpT-jqc6l_wTdqEnfPJJfvsZN2Ta8g2anrVPWIcqQ,1412
6
- eventsourcing/domain.py,sha256=YpPUSiJBRL3QRz_49X5KMaKa0bybDbdeMXen_mlntwE,57442
6
+ eventsourcing/domain.py,sha256=rvm4Sv2MmLcha8_5wqJ13AjmqyWvuzkquYsexUaePIg,57264
7
7
  eventsourcing/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  eventsourcing/examples/aggregate1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  eventsourcing/examples/aggregate1/application.py,sha256=LPle9YoAu85EQFrp-lUk0I8DKuSdQOSUyJ__38JHSvE,766
@@ -19,7 +19,7 @@ eventsourcing/examples/aggregate3/domainmodel.py,sha256=NmSQVcsTlbRGvJy1NSUSmAwz
19
19
  eventsourcing/examples/aggregate3/test_application.py,sha256=QYG1L4mHvkpPV9enPvYsFdEbk4UMzZv5grH_5ejybt0,1214
20
20
  eventsourcing/examples/aggregate4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  eventsourcing/examples/aggregate4/application.py,sha256=Jq1DB6mSRsnd1XrxkAPHx7l9AfMbjG_cqx_KXILSDeY,825
22
- eventsourcing/examples/aggregate4/domainmodel.py,sha256=9gMFPkTsrHQSGKj1BFMSDhRo0XAlpHhAqJUd3O4YLr8,3601
22
+ eventsourcing/examples/aggregate4/domainmodel.py,sha256=M4d8JQ6imRR1YM3EZU1QLmz3jt9NWZyOOtdvOXBhdrk,3137
23
23
  eventsourcing/examples/aggregate4/test_application.py,sha256=W9OtwKumB76DpYvVRmWQ4Fq-IXUqGYggNGJPHFLUYB4,1306
24
24
  eventsourcing/examples/aggregate5/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  eventsourcing/examples/aggregate5/application.py,sha256=2xfv9awolKYYoBhzwRfnQ3MB749LP1gcl05PBfhvZ1c,842
@@ -71,29 +71,29 @@ eventsourcing/examples/contentmanagementsystem/application.py,sha256=MlBee_mnqFY
71
71
  eventsourcing/examples/contentmanagementsystem/postgres.py,sha256=FvT-I1AaQawqVwQTO73YzpM8OVHXgHhMnxGGA8j4Ew8,423
72
72
  eventsourcing/examples/contentmanagementsystem/sqlite.py,sha256=WN3uBB4ygIXKblDgJ4GTQYkh7vVJ3uMFGPGeE0zagsw,411
73
73
  eventsourcing/examples/contentmanagementsystem/system.py,sha256=XB6rU8qHB66AIIWTnonS6tekpSIYqX60EXFf0u9YMDE,444
74
- eventsourcing/examples/contentmanagementsystem/test_system.py,sha256=qulqDUbAli8WQMtVNeTtbNgWV3Cuv3ZRmqIRwdzC348,7106
74
+ eventsourcing/examples/contentmanagementsystem/test_system.py,sha256=OtQ5GQBCgAZeojR0RhugoXcHa0yGOdZIYpQqcVwxo8U,7581
75
75
  eventsourcing/examples/searchablecontent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  eventsourcing/examples/searchablecontent/application.py,sha256=-TxT-5BZj0VA1PIefb0LvZr2hxIDPMN_onIudcKI7e8,1670
77
77
  eventsourcing/examples/searchablecontent/persistence.py,sha256=PbSJLw3wZTK1UVpxqr5bNoyZzIKwAevzlRCnUyRlIsI,596
78
78
  eventsourcing/examples/searchablecontent/postgres.py,sha256=EEskpT1I0pZmbu_8K4BZylLMjISRpF8zVCWpuDXB1Dg,3831
79
79
  eventsourcing/examples/searchablecontent/sqlite.py,sha256=mVb7SFsSLRyPGy7db7d1eYSJ-LB4NN3u095uDnXabbo,4736
80
- eventsourcing/examples/searchablecontent/test_application.py,sha256=w48stWEw97CNvQtzJh7lfD1kIZs-2bbpSKLs_PjnCHs,3954
81
- eventsourcing/examples/searchablecontent/test_recorder.py,sha256=N1jKjLFCjkAHuV7dKHSh-yeDdoH6r6ZA4KdeE5IdKxM,2312
80
+ eventsourcing/examples/searchablecontent/test_application.py,sha256=oCL6tG2NfCl6ibsI5NlpVkxMr4-D39CxWDlQIxNoltA,3971
81
+ eventsourcing/examples/searchablecontent/test_recorder.py,sha256=se8qEjVxbbUzQ4sxIVLPYEVQ8_gTHYdwAKEoAFKAI6o,2329
82
82
  eventsourcing/examples/searchabletimestamps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  eventsourcing/examples/searchabletimestamps/application.py,sha256=uFFbuzSka9WW8Ibrmomyt7djvb6xd2eaaMvgbFuDG3o,1325
84
84
  eventsourcing/examples/searchabletimestamps/persistence.py,sha256=WxVTpOobeP0D_mCO6kLmXpEhg0iFXUdu-WyojjcqlcU,543
85
85
  eventsourcing/examples/searchabletimestamps/postgres.py,sha256=AlDwmLGOcCW2eS6QS2rJZZJ3arENn9I0oTI45TGvLVQ,3857
86
86
  eventsourcing/examples/searchabletimestamps/sqlite.py,sha256=Gllj5N3TMrZFVTNfMFNQ0pCDm_sQE2V-LquQOmTX1uo,3312
87
- eventsourcing/examples/searchabletimestamps/test_searchabletimestamps.py,sha256=wRJrpl51f6oF4QYGJrY3_WC_QUuxWxrU-Nf-KGgeGMg,3191
87
+ eventsourcing/examples/searchabletimestamps/test_searchabletimestamps.py,sha256=sPW15_wqPoZZ2x89cHteCRivzXXrmzEqNkZOc_Q4M-Q,3268
88
88
  eventsourcing/examples/test_invoice.py,sha256=2T_aCMUni4o5NjoD_AsIuQ4RJ59bsQI2w6_TWMT96fM,4890
89
89
  eventsourcing/examples/test_parking_lot.py,sha256=Tlm8KYlMoZFBi20mX-_BSAPPJfeKDgS8CZQrIWLKATQ,6682
90
90
  eventsourcing/interface.py,sha256=KzDWLeIkREf-TAFl5AFHtKJwJFA-IthqMKClFkUFqdc,4676
91
91
  eventsourcing/persistence.py,sha256=TJseAtsWwdC33XLvcoyHdgwTv6s6KsvQS8XLKIq472s,37672
92
92
  eventsourcing/popo.py,sha256=AApSGneHuXa8yHOWdDfsFTMVDI-9ivEpuKTX1BSOXr8,6547
93
- eventsourcing/postgres.py,sha256=IDQblNU2Wm-Ccn3jLdzQH4NAZ_9NZbPaTlPMtp4e2Fk,29757
93
+ eventsourcing/postgres.py,sha256=ZsDw36JJbR9O3_FeYSkA_NVab7N0fg4FrmWkVN4h3Lo,29767
94
94
  eventsourcing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  eventsourcing/sqlite.py,sha256=jz7SZk26Gcsjw88KL1xnr4-1tStTW16f1NR6TjMsZnQ,18466
96
- eventsourcing/system.py,sha256=btrGGcwf6AJBEtXkdc-DnNQAn1WBuozneAY_svzEKXk,45298
96
+ eventsourcing/system.py,sha256=Fyho27C44MckwC3OD9opw7an1Thz20QsD7PnRymnYik,45501
97
97
  eventsourcing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  eventsourcing/tests/application.py,sha256=wBanhWzAZvL3fYxCFe5cloN-Up7uLw6KcdRQ2dhKVAg,17586
99
99
  eventsourcing/tests/application_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,15 +111,15 @@ eventsourcing/tests/application_tests/test_repository.py,sha256=AhL_iYYSwyx7FE9d
111
111
  eventsourcing/tests/application_tests/test_snapshotting.py,sha256=gpOksEaFaFXrPpwirD8wNLinXK67r3dJedUih8171Q0,2042
112
112
  eventsourcing/tests/application_tests/test_upcasting.py,sha256=n_Lphch_NOqgY0IJDxDcxJI1qIV50Fzu5VmHiUltirU,14355
113
113
  eventsourcing/tests/docs_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- eventsourcing/tests/docs_tests/test_docs.py,sha256=Yt--RMe_tcG9zERBJmaAVkZ0qgMWnlgbFzRPktRUVGk,10777
114
+ eventsourcing/tests/docs_tests/test_docs.py,sha256=bxb4xd0PNMRG9X-SeyQ6C7Tq6nAw4MgoC3FdQ3T0rsg,10871
115
115
  eventsourcing/tests/domain.py,sha256=lHSlY6jIoSeqlcPSbrrozEPUJGvJ8bgPrznlmzTxn2w,3254
116
116
  eventsourcing/tests/domain_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- eventsourcing/tests/domain_tests/test_aggregate.py,sha256=Ps1XCJo3nYr1vvOSQvhSNJwRPwbUC4CPz_Ripq8hJZ8,37851
117
+ eventsourcing/tests/domain_tests/test_aggregate.py,sha256=_77pimN4VAJZVCdm1JCumfNxU2oFJClv_o_OKdcjSSg,39106
118
118
  eventsourcing/tests/domain_tests/test_aggregate_decorators.py,sha256=zky6jmqblM0GKgdhCJjYdSxtEE9MwRcemYaZhqxL1AE,50256
119
119
  eventsourcing/tests/domain_tests/test_domainevent.py,sha256=3EGLKnla1aWfKPzMfLCNmh7UtVAztk_ne_Oi0cP7jPU,2782
120
120
  eventsourcing/tests/interface_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  eventsourcing/tests/interface_tests/test_remotenotificationlog.py,sha256=TCy-XZmFbr5jcZBmAny5JhbovD-A6SrlLOQlU75bwks,9140
122
- eventsourcing/tests/persistence.py,sha256=0aq1O0q4kKFg90iMYD00bDnD0TI8uCnyqU9B8a6mahU,45723
122
+ eventsourcing/tests/persistence.py,sha256=giLWEZDdViXY8_SHCJerJ0sYVbJUP3UkLKaEbel9sqs,45777
123
123
  eventsourcing/tests/persistence_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
124
  eventsourcing/tests/persistence_tests/test_aes.py,sha256=fPq5yGdPCOTNS2TWco4dWpksfI9vfUEse3-hJruEdUE,2873
125
125
  eventsourcing/tests/persistence_tests/test_connection_pool.py,sha256=j9FKcORI5DtFWqcVHTwD1hXpPhy6Qt2rtaj79IARjnE,23641
@@ -128,17 +128,18 @@ eventsourcing/tests/persistence_tests/test_infrastructure_factory.py,sha256=xcDd
128
128
  eventsourcing/tests/persistence_tests/test_mapper.py,sha256=3GWdhLzFrld8-h7pPfsYdNzIn1YNTa_L6iHb-dCg5zk,3806
129
129
  eventsourcing/tests/persistence_tests/test_noninterleaving_notification_ids.py,sha256=O8t9AT1SJ0mwrkh9hyDvQr_bpO-n3RA-PO4S9RVdzhY,2130
130
130
  eventsourcing/tests/persistence_tests/test_popo.py,sha256=7KIb72i2VF566N14IyEhM21P7eX3o8UmOLQKkaFAH84,3366
131
- eventsourcing/tests/persistence_tests/test_postgres.py,sha256=aT15cbD21kVicEl6fQ-waYUFTvfOHKaNAp_62RO-Ym4,40906
131
+ eventsourcing/tests/persistence_tests/test_postgres.py,sha256=6mxPWJCAFWB0GIgVLEDXVpxY_mPVlm4ZunU22V3VvUA,41185
132
132
  eventsourcing/tests/persistence_tests/test_sqlite.py,sha256=dABEY6r0AIjGkgbBBk6f7MgfvQz9JkXgpOPEq8xvei0,11744
133
133
  eventsourcing/tests/persistence_tests/test_transcoder.py,sha256=IU1phRrGpyB0KzKFxivtDzDBP2Vn609nrwU52yk9YKM,1251
134
134
  eventsourcing/tests/postgres_utils.py,sha256=xymcGYasUXeZTBenkHz-ykD8HtrFjVM1Z7-qRrH6OQk,1364
135
135
  eventsourcing/tests/system_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- eventsourcing/tests/system_tests/test_runner.py,sha256=0qUfPdfoiqD2k5GbfHtPQkppLDOuJbeHtberkpcPNUY,31841
137
- eventsourcing/tests/system_tests/test_system.py,sha256=xi-nCPTWeB5Rqasyn4-rP213FpLfSaULyrEegEySU3E,9552
136
+ eventsourcing/tests/system_tests/test_runner.py,sha256=zK5YySh1QKnOybpBeGhsCWktzaC_Qc1AZU6jaePk6JU,32020
137
+ eventsourcing/tests/system_tests/test_system.py,sha256=IRmLBovJ5Ha4KWNVg8efM-0OVewSsGcpBO4J9SY0Ut8,9492
138
138
  eventsourcing/tests/utils_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  eventsourcing/tests/utils_tests/test_utils.py,sha256=8HcTk_0_lXyoT307fEmd2utwmOUS_joToUPGFeFnKW8,6486
140
140
  eventsourcing/utils.py,sha256=PIWDvoGiKCXsNbR5DirkoJ_svopg80SoH37bqxOcjkU,8247
141
- eventsourcing-9.3.0a1.dist-info/LICENSE,sha256=bSE_F-T6cQPmMY5LuJC27km_pGB1XCVuUFx1uY0Nueg,1512
142
- eventsourcing-9.3.0a1.dist-info/METADATA,sha256=pCAGpXV2lgzexep06p9k0Ca3IEQuDSFnopDhhNjb47A,9891
143
- eventsourcing-9.3.0a1.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
144
- eventsourcing-9.3.0a1.dist-info/RECORD,,
141
+ eventsourcing-9.3.1.dist-info/AUTHORS,sha256=8aHOM4UbNZcKlD-cHpFRcM6RWyCqtwtxRev6DeUgVRs,137
142
+ eventsourcing-9.3.1.dist-info/LICENSE,sha256=bSE_F-T6cQPmMY5LuJC27km_pGB1XCVuUFx1uY0Nueg,1512
143
+ eventsourcing-9.3.1.dist-info/METADATA,sha256=Zod4mspfz0kMzu8dxiVYAQbqanX9KqFlTTAU8VHXu0M,9968
144
+ eventsourcing-9.3.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
145
+ eventsourcing-9.3.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.7.0
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any