udata 9.2.5.dev32160__py2.py3-none-any.whl → 9.2.5.dev32170__py2.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 udata might be problematic. Click here for more details.

Files changed (24) hide show
  1. udata/core/dataset/events.py +25 -16
  2. udata/static/chunks/{10.a99bb538cfbadb38dbcb.js → 10.dac55d18d0b4ef3cdacf.js} +3 -3
  3. udata/static/chunks/{10.a99bb538cfbadb38dbcb.js.map → 10.dac55d18d0b4ef3cdacf.js.map} +1 -1
  4. udata/static/chunks/{11.bb1c1fb39f740fbbeec0.js → 11.4a20a75f827c5a1125c3.js} +3 -3
  5. udata/static/chunks/{11.bb1c1fb39f740fbbeec0.js.map → 11.4a20a75f827c5a1125c3.js.map} +1 -1
  6. udata/static/chunks/{13.bef5fdb3e147e94fea99.js → 13.645dd0b7c0b9210f1b56.js} +2 -2
  7. udata/static/chunks/{13.bef5fdb3e147e94fea99.js.map → 13.645dd0b7c0b9210f1b56.js.map} +1 -1
  8. udata/static/chunks/{17.b91d28f550dc44bc4979.js → 17.8e19985c4d12a3b7b0c0.js} +2 -2
  9. udata/static/chunks/{17.b91d28f550dc44bc4979.js.map → 17.8e19985c4d12a3b7b0c0.js.map} +1 -1
  10. udata/static/chunks/{19.2c615ffee1e807000770.js → 19.825a43c330157e351fca.js} +3 -3
  11. udata/static/chunks/{19.2c615ffee1e807000770.js.map → 19.825a43c330157e351fca.js.map} +1 -1
  12. udata/static/chunks/{8.291bde987ed97294e4de.js → 8.5ee0cf635c848abbfc05.js} +2 -2
  13. udata/static/chunks/{8.291bde987ed97294e4de.js.map → 8.5ee0cf635c848abbfc05.js.map} +1 -1
  14. udata/static/chunks/{9.985935421e62c97a9f86.js → 9.df3c36f8d0d210621fbb.js} +3 -3
  15. udata/static/chunks/{9.985935421e62c97a9f86.js.map → 9.df3c36f8d0d210621fbb.js.map} +1 -1
  16. udata/static/common.js +1 -1
  17. udata/static/common.js.map +1 -1
  18. udata/tests/dataset/test_dataset_events.py +3 -15
  19. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/METADATA +2 -1
  20. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/RECORD +24 -24
  21. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/LICENSE +0 -0
  22. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/WHEEL +0 -0
  23. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/entry_points.txt +0 -0
  24. {udata-9.2.5.dev32160.dist-info → udata-9.2.5.dev32170.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,6 @@
1
1
  import datetime
2
+ from collections.abc import Callable
3
+ from typing import Any
2
4
 
3
5
  import requests
4
6
  from flask import current_app
@@ -38,23 +40,28 @@ def serialize_resource_for_event(resource):
38
40
  return resource_dict
39
41
 
40
42
 
43
+ def payload_for_resource(document: Any, resource_id: str | None) -> dict | None:
44
+ if resource_id is None: # On delete, there is no resource_id, and no need for a payload.
45
+ return None
46
+ resource: dict = serialize_resource_for_event(get_by(document.resources, "id", resource_id))
47
+ return {
48
+ "resource_id": str(resource_id),
49
+ "dataset_id": str(document.id),
50
+ "document": resource,
51
+ }
52
+
53
+
41
54
  @task(route="high.resource")
42
- def publish(url, document, resource_id, action):
55
+ def publish(url: str, document: Any, resource_id: str, action: str) -> None:
56
+ method: Callable
43
57
  match action:
44
58
  case EventMessageType.CREATED:
45
59
  method = requests.post
46
- resource = serialize_resource_for_event(get_by(document.resources, "id", resource_id))
47
60
  case EventMessageType.MODIFIED:
48
61
  method = requests.put
49
- resource = serialize_resource_for_event(get_by(document.resources, "id", resource_id))
50
62
  case EventMessageType.DELETED:
51
63
  method = requests.delete
52
- resource = None
53
- payload = {
54
- "resource_id": str(resource_id),
55
- "dataset_id": str(document.id),
56
- "document": resource,
57
- }
64
+ payload: dict | None = payload_for_resource(document, resource_id)
58
65
  headers = {}
59
66
  if current_app.config["RESOURCES_ANALYSER_API_KEY"]:
60
67
  headers = {"Authorization": f"Bearer {current_app.config['RESOURCES_ANALYSER_API_KEY']}"}
@@ -63,7 +70,7 @@ def publish(url, document, resource_id, action):
63
70
 
64
71
 
65
72
  @Dataset.on_resource_added.connect
66
- def publish_added_resource_message(sender, document, **kwargs):
73
+ def publish_added_resource_message(sender, document, **kwargs) -> None:
67
74
  if current_app.config.get("PUBLISH_ON_RESOURCE_EVENTS") and current_app.config.get(
68
75
  "RESOURCES_ANALYSER_URI"
69
76
  ):
@@ -76,26 +83,28 @@ def publish_added_resource_message(sender, document, **kwargs):
76
83
 
77
84
 
78
85
  @Dataset.on_resource_updated.connect
79
- def publish_updated_resource_message(sender, document, **kwargs):
86
+ def publish_updated_resource_message(sender, document, **kwargs) -> None:
80
87
  if current_app.config.get("PUBLISH_ON_RESOURCE_EVENTS") and current_app.config.get(
81
88
  "RESOURCES_ANALYSER_URI"
82
89
  ):
90
+ resource_id: str = kwargs["resource_id"]
83
91
  publish.delay(
84
- f"{current_app.config.get('RESOURCES_ANALYSER_URI')}/api/resources/",
92
+ f"{current_app.config.get('RESOURCES_ANALYSER_URI')}/api/resources/{resource_id}",
85
93
  document,
86
- kwargs["resource_id"],
94
+ resource_id,
87
95
  EventMessageType.MODIFIED,
88
96
  )
89
97
 
90
98
 
91
99
  @Dataset.on_resource_removed.connect
92
- def publish_removed_resource_message(sender, document, **kwargs):
100
+ def publish_removed_resource_message(sender, document, **kwargs) -> None:
93
101
  if current_app.config.get("PUBLISH_ON_RESOURCE_EVENTS") and current_app.config.get(
94
102
  "RESOURCES_ANALYSER_URI"
95
103
  ):
104
+ resource_id: str = kwargs["resource_id"]
96
105
  publish.delay(
97
- f"{current_app.config.get('RESOURCES_ANALYSER_URI')}/api/resources/",
106
+ f"{current_app.config.get('RESOURCES_ANALYSER_URI')}/api/resources/{resource_id}",
98
107
  document,
99
- kwargs["resource_id"],
108
+ None,
100
109
  EventMessageType.DELETED,
101
110
  )