elody 0.0.176__py3-none-any.whl → 0.0.178__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.
@@ -17,8 +17,8 @@ class BaseObjectConfiguration(ABC):
17
17
  overwrite=overwrite,
18
18
  **kwargs,
19
19
  ),
20
- "nested_matcher_builder": lambda object_lists, keys_info, value: self.__build_nested_matcher(
21
- object_lists, keys_info, value
20
+ "nested_matcher_builder": lambda object_lists, keys_info, value, **kwargs: self.__build_nested_matcher(
21
+ object_lists, keys_info, value, **kwargs
22
22
  ),
23
23
  "post_crud_hook": lambda **kwargs: None,
24
24
  "pre_crud_hook": lambda *, document, **kwargs: document,
@@ -142,11 +142,16 @@ class BaseObjectConfiguration(ABC):
142
142
  sort_keys(document)
143
143
  return document
144
144
 
145
- def __build_nested_matcher(self, object_lists, keys_info, value, index=0):
145
+ def __build_nested_matcher(
146
+ self, object_lists, keys_info, value, *, index=0, **kwargs
147
+ ):
146
148
  if index == 0 and not any(info["object_list"] for info in keys_info):
147
149
  if value in ["ANY_MATCH", "NONE_MATCH"]:
148
150
  value = {"$exists": value == "ANY_MATCH"}
149
- return {".".join(info["key"] for info in keys_info): value}
151
+ matcher = {".".join(info["key"] for info in keys_info): value}
152
+ if inner_exact_matches := kwargs.get("inner_exact_matches"):
153
+ matcher.update(inner_exact_matches)
154
+ return matcher
150
155
 
151
156
  info = keys_info[index]
152
157
 
@@ -155,7 +160,7 @@ class BaseObjectConfiguration(ABC):
155
160
  "$elemMatch": {
156
161
  object_lists[info["object_list"]]: info["object_key"],
157
162
  **self.__build_nested_matcher(
158
- object_lists, keys_info[index + 1 :], value, 0
163
+ object_lists, keys_info[index + 1 :], value, index=0, **kwargs
159
164
  ),
160
165
  }
161
166
  }
elody/util.py CHANGED
@@ -223,10 +223,11 @@ def signal_edge_changed(mq_client, parent_ids_from_changed_edges):
223
223
  send_cloudevent(mq_client, "dams", "dams.edge_changed", data)
224
224
 
225
225
 
226
- def signal_entity_changed(mq_client, entity):
226
+ def signal_entity_changed(mq_client, entity, unchanged_entity=None):
227
227
  data = {
228
228
  "location": f"/entities/{get_raw_id(entity)}",
229
229
  "type": entity.get("type", "unspecified"),
230
+ "unchanged_entity": unchanged_entity,
230
231
  }
231
232
  send_cloudevent(mq_client, "dams", "dams.entity_changed", data)
232
233
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: elody
3
- Version: 0.0.176
3
+ Version: 0.0.178
4
4
  Summary: elody SDK for Python
5
5
  Author-email: Inuits <developers@inuits.eu>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -7,12 +7,12 @@ elody/exceptions.py,sha256=5KSw2sPCZz3lDIJX4LiR2iL9n4m4KIil04D1d3X5rd0,968
7
7
  elody/job.py,sha256=wpq1dSxYxMv1Jv1hSvyxvFI1qNbRkDNghRLhndo57rU,3923
8
8
  elody/loader.py,sha256=Mr7zyP5DP5psYerf2-DnP90GiqtFlKZpcLIPD7P4pSU,5242
9
9
  elody/schemas.py,sha256=WtKdZEAX-PtEuAaRohyS3Md8H4-8yKVXMkHfCQ2SDR4,4676
10
- elody/util.py,sha256=1Ty4A3OVSmwawqjKyYW5zkhSwX-jZsC0_XllO_DL05M,8684
10
+ elody/util.py,sha256=3tqzRmeff3rZhvU1ceurzw06tHhSIc3h2v1IvVoPjFo,8753
11
11
  elody/validator.py,sha256=G7Ya538EJHCFzOxEri2OcFMabfLBCtTKxuf4os_KuNw,260
12
12
  elody/migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  elody/migration/base_object_migrator.py,sha256=n8uvgGfjEUy60G47RD7Y-oxp1vHLOauwPMDl87LcxtU,436
14
14
  elody/object_configurations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- elody/object_configurations/base_object_configuration.py,sha256=L8K2AW-A3Bo4_Q_jl3S4hnwEGuZo3XmJH5Izditf6CM,6538
15
+ elody/object_configurations/base_object_configuration.py,sha256=dXhzQLWtIEQHx3WSPs2R-dvN3ulcPA27G3oNGAsImBQ,6756
16
16
  elody/object_configurations/elody_configuration.py,sha256=uoTYN0lzWh3Z0uN4k-o-SbRnt9YrA9AkUnIi80LWcGI,5428
17
17
  elody/object_configurations/job_configuration.py,sha256=simi4TBiZ5cQePlzFHAd-C-khViWN9VUbAOKq9FYwk8,2057
18
18
  elody/policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -40,8 +40,8 @@ tests/data.py,sha256=Q3oxduf-E3m-Z5G_p3fcs8jVy6g10I7zXKL1m94UVMI,2906
40
40
  tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  tests/unit/test_csv.py,sha256=NQaOhehfQ4GuXku0Y1SA8DYjJeqqidbF50zEHAi8RZA,15923
42
42
  tests/unit/test_utils.py,sha256=g63szcEZyHhCOtrW4BnNbcgVca3oYPIOLjBdIzNwwN0,8784
43
- elody-0.0.176.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
44
- elody-0.0.176.dist-info/METADATA,sha256=9rm-Wktd-Us7wj3e5wGTBGhLo6SE6CTL00WbQkXs7RU,23336
45
- elody-0.0.176.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
46
- elody-0.0.176.dist-info/top_level.txt,sha256=E0mImupLj0KmtUUCXRYEoLDRaSkuiGaOIIseAa0oQ-M,21
47
- elody-0.0.176.dist-info/RECORD,,
43
+ elody-0.0.178.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
44
+ elody-0.0.178.dist-info/METADATA,sha256=9u2Crpz6sHIdXS1gTUH7Kplq6H7Ov-7LDPFgAkcOjV4,23336
45
+ elody-0.0.178.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
46
+ elody-0.0.178.dist-info/top_level.txt,sha256=E0mImupLj0KmtUUCXRYEoLDRaSkuiGaOIIseAa0oQ-M,21
47
+ elody-0.0.178.dist-info/RECORD,,