statikk 0.1.10__py3-none-any.whl → 0.1.12__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.
statikk/engine.py CHANGED
@@ -306,8 +306,7 @@ class Table:
306
306
  subtree_copy.set_parent_references(subtree_copy, force_override=True)
307
307
  subtree_copy._parent = new_parent
308
308
  for node in subtree_copy.dfs_traverse_hierarchy():
309
- for idx in self.indexes:
310
- self.build_model_indexes(node)
309
+ self.build_model_indexes(node)
311
310
  setattr(node, FIELD_STATIKK_PARENT_ID, new_parent.id)
312
311
 
313
312
  return subtree_copy
@@ -610,6 +609,13 @@ class Table:
610
609
 
611
610
  dynamodb_table = self._get_dynamodb_table()
612
611
 
612
+ if len(delete_items) > 0:
613
+ with dynamodb_table.batch_writer() as batch:
614
+ for item in delete_items:
615
+ enriched_item = self._prepare_model_data(item, self.indexes)
616
+ data = self._serialize_item(enriched_item)
617
+ batch.delete_item(Key=data)
618
+
613
619
  if len(put_items) > 0:
614
620
  with dynamodb_table.batch_writer() as batch:
615
621
  for item in put_items:
@@ -621,13 +627,6 @@ class Table:
621
627
  data = self._serialize_item(enriched_item)
622
628
  batch.put_item(Item=data)
623
629
 
624
- if len(delete_items) > 0:
625
- with dynamodb_table.batch_writer() as batch:
626
- for item in delete_items:
627
- enriched_item = self._prepare_model_data(item, self.indexes)
628
- data = self._serialize_item(enriched_item)
629
- batch.delete_item(Key=data)
630
-
631
630
  def inspect_optional_field(self, model_class, field_name):
632
631
  field_type = model_class.model_fields[field_name].annotation
633
632
 
statikk/models.py CHANGED
@@ -218,7 +218,8 @@ class DatabaseModel(BaseModel, TrackingMixin, extra=Extra.allow):
218
218
  return False
219
219
 
220
220
  def build_model_indexes(self) -> T:
221
- return self._table.build_model_indexes(self)
221
+ for node in self.dfs_traverse_hierarchy():
222
+ self._table.build_model_indexes(node)
222
223
 
223
224
  @classmethod
224
225
  def query(
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: statikk
3
- Version: 0.1.10
3
+ Version: 0.1.12
4
4
  Summary: statikk is a single table application (STA) library for DynamoDb.
5
5
  Home-page: https://github.com/terinia/statikk
6
6
  Author: Balint Biro
@@ -22,6 +22,7 @@ Requires-Dist: setuptools; extra == "testing"
22
22
  Requires-Dist: pytest; extra == "testing"
23
23
  Requires-Dist: pytest-cov; extra == "testing"
24
24
  Requires-Dist: moto[dynamodb]==4.2.14; extra == "testing"
25
+ Dynamic: license-file
25
26
 
26
27
  .. image:: ./assets/logo.png
27
28
  :alt: Statikk
@@ -0,0 +1,12 @@
1
+ statikk/__init__.py,sha256=pH5i4Fj1tbXLqLtTVIdoojiplZssQn0nnud8-HXodRE,577
2
+ statikk/conditions.py,sha256=63FYMR-UUaE-ZJEb_8CU721CQTwhajq39-BbokmKeMA,2166
3
+ statikk/engine.py,sha256=JusQPQdn-ubQLXrspYcbq6erwS0M8Su3a5RQ6vF9GY8,33346
4
+ statikk/expressions.py,sha256=boAeGxZj2cDsXxoiX3IIEzfX9voSMQngi4-rE_jYeuE,12233
5
+ statikk/fields.py,sha256=LkMP5NnX7WS0HSLxI3Q-dMOrfaJ0SD7SayZxJU5Acgg,86
6
+ statikk/models.py,sha256=REipaPzo5dIq4InXbWuP48aDZdImO5fXGkALenbf7Ng,16257
7
+ statikk/typing.py,sha256=qfpegORcdODuILK3gvuD4SdcZA1a7Myn0yvscOLPHOM,68
8
+ statikk-0.1.12.dist-info/licenses/LICENSE.txt,sha256=uSH_2Hpb2Bigy5_HhBliN2fZbBU64G3ERM5zzhKPUEE,1078
9
+ statikk-0.1.12.dist-info/METADATA,sha256=JbwrEpAyalVVKYRLzI8WFZu2FgCEErk7iQwcBAMHhAo,3183
10
+ statikk-0.1.12.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
11
+ statikk-0.1.12.dist-info/top_level.txt,sha256=etKmBbjzIlLpSefXoiOfhWGEgvqUEALaFwCjFDBD9YI,8
12
+ statikk-0.1.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.1.0)
2
+ Generator: setuptools (77.0.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,12 +0,0 @@
1
- statikk/__init__.py,sha256=pH5i4Fj1tbXLqLtTVIdoojiplZssQn0nnud8-HXodRE,577
2
- statikk/conditions.py,sha256=63FYMR-UUaE-ZJEb_8CU721CQTwhajq39-BbokmKeMA,2166
3
- statikk/engine.py,sha256=zJ7PsHOUTVh4nbDghMYknLJb7pwByrNfUJIsAh6LFUk,33387
4
- statikk/expressions.py,sha256=boAeGxZj2cDsXxoiX3IIEzfX9voSMQngi4-rE_jYeuE,12233
5
- statikk/fields.py,sha256=LkMP5NnX7WS0HSLxI3Q-dMOrfaJ0SD7SayZxJU5Acgg,86
6
- statikk/models.py,sha256=98TUhCqembdjJj7r5-IUJ-TxEcVjcOB5DY38GenG6bQ,16209
7
- statikk/typing.py,sha256=qfpegORcdODuILK3gvuD4SdcZA1a7Myn0yvscOLPHOM,68
8
- statikk-0.1.10.dist-info/LICENSE.txt,sha256=uSH_2Hpb2Bigy5_HhBliN2fZbBU64G3ERM5zzhKPUEE,1078
9
- statikk-0.1.10.dist-info/METADATA,sha256=ziqy9pX9Rmz27ea1jcMbl2pBo9_MYDMHky-JrvqniQc,3161
10
- statikk-0.1.10.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
11
- statikk-0.1.10.dist-info/top_level.txt,sha256=etKmBbjzIlLpSefXoiOfhWGEgvqUEALaFwCjFDBD9YI,8
12
- statikk-0.1.10.dist-info/RECORD,,