openmodule 16.0.0__tar.gz → 16.0.1__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.
Files changed (100) hide show
  1. {openmodule-16.0.0 → openmodule-16.0.1}/PKG-INFO +1 -1
  2. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/base.py +7 -6
  3. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/rpc/server.py +2 -2
  4. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/PKG-INFO +1 -1
  5. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_eventlog.py +2 -10
  6. {openmodule-16.0.0 → openmodule-16.0.1}/LICENSE +0 -0
  7. {openmodule-16.0.0 → openmodule-16.0.1}/README.md +0 -0
  8. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/__init__.py +0 -0
  9. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/alert.py +0 -0
  10. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/config.py +0 -0
  11. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/connection_status.py +0 -0
  12. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/core.py +0 -0
  13. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/database/__init__.py +0 -0
  14. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/database/custom_types.py +0 -0
  15. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/database/database.py +0 -0
  16. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/database/env.py +0 -0
  17. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/database/migration.py +0 -0
  18. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/dispatcher.py +0 -0
  19. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/health.py +0 -0
  20. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/logging.py +0 -0
  21. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/messaging.py +0 -0
  22. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/__init__.py +0 -0
  23. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/access_service.py +0 -0
  24. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/alert.py +0 -0
  25. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/io.py +0 -0
  26. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/kv_store.py +0 -0
  27. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/presence.py +0 -0
  28. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/privacy.py +0 -0
  29. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/rpc.py +0 -0
  30. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/settings.py +0 -0
  31. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/signals.py +0 -0
  32. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/validation.py +0 -0
  33. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/models/vehicle.py +0 -0
  34. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/rpc/__init__.py +0 -0
  35. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/rpc/client.py +0 -0
  36. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/rpc/common.py +0 -0
  37. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/sentry.py +0 -0
  38. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/threading.py +0 -0
  39. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/__init__.py +0 -0
  40. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/access_service.py +0 -0
  41. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/charset.py +0 -0
  42. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/cleanup.py +0 -0
  43. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/csv_export.py +0 -0
  44. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/databox.py +0 -0
  45. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/db_helper.py +0 -0
  46. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/eventlog.py +0 -0
  47. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/io.py +0 -0
  48. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/kv_store.py +0 -0
  49. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/matching.py +0 -0
  50. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/misc_functions.py +0 -0
  51. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/package_reader.py +0 -0
  52. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/presence.py +0 -0
  53. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/schedule.py +0 -0
  54. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/settings.py +0 -0
  55. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/signal_listener.py +0 -0
  56. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/translation.py +0 -0
  57. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule/utils/validation.py +0 -0
  58. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/SOURCES.txt +0 -0
  59. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/dependency_links.txt +0 -0
  60. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/not-zip-safe +0 -0
  61. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/requires.txt +0 -0
  62. {openmodule-16.0.0 → openmodule-16.0.1}/openmodule.egg-info/top_level.txt +0 -0
  63. {openmodule-16.0.0 → openmodule-16.0.1}/setup.cfg +0 -0
  64. {openmodule-16.0.0 → openmodule-16.0.1}/setup.py +0 -0
  65. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_alembic_migrations.py +0 -0
  66. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_alert.py +0 -0
  67. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_checks.py +0 -0
  68. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_config.py +0 -0
  69. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_connection_status.py +0 -0
  70. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_core.py +0 -0
  71. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_database.py +0 -0
  72. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_dispatcher.py +0 -0
  73. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_health.py +0 -0
  74. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_interrupt.py +0 -0
  75. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_io_listen.py +0 -0
  76. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_logging.py +0 -0
  77. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_messaging.py +0 -0
  78. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_mockrpcclient.py +0 -0
  79. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_model.py +0 -0
  80. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_rpc.py +0 -0
  81. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_sentry.py +0 -0
  82. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_test_alert.py +0 -0
  83. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_test_gate.py +0 -0
  84. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_test_zeromq.py +0 -0
  85. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_access_service.py +0 -0
  86. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_charset.py +0 -0
  87. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_cleanup.py +0 -0
  88. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_csv_export.py +0 -0
  89. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_databox.py +0 -0
  90. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_kv_store.py +0 -0
  91. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_kv_store_multiple.py +0 -0
  92. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_matching.py +0 -0
  93. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_misc_functions.py +0 -0
  94. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_package_reader.py +0 -0
  95. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_presence.py +0 -0
  96. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_schedule.py +0 -0
  97. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_settings.py +0 -0
  98. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_signal.py +0 -0
  99. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_validation.py +0 -0
  100. {openmodule-16.0.0 → openmodule-16.0.1}/tests/test_utils_vehicle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openmodule
3
- Version: 16.0.0
3
+ Version: 16.0.1
4
4
  Summary: Libraries for developing the arivo openmodule
5
5
  Home-page: https://gitlab.com/arivo-public/device-python/openmodule.git
6
6
  Author: ARIVO
@@ -5,7 +5,7 @@ from datetime import datetime
5
5
  from decimal import Decimal
6
6
  from enum import StrEnum
7
7
  from json.encoder import ESCAPE_ASCII
8
- from typing import Annotated, Optional, Any, Self
8
+ from typing import Annotated, Optional, Any, Self, ClassVar
9
9
 
10
10
  import orjson
11
11
  from pydantic_core import PydanticUndefined
@@ -158,10 +158,11 @@ def datetime_to_timestamp(dt: datetime):
158
158
 
159
159
 
160
160
  class ZMQMessage(OpenModuleModel):
161
- _ALLOW_CUSTOM_TIMESTAMP: bool = PrivateAttr(default=False) # set to true for tools scripts, where you need to set the timestamp manually
162
- _using_default_timestamp: bool = PrivateAttr()
161
+ _ALLOW_CUSTOM_TIMESTAMP: ClassVar[bool] = False # set to true for tools scripts, where you need to set the timestamp manually
163
162
 
164
163
  timestamp: Datetime = Field(default_factory=lambda: utcnow())
164
+ _using_default_timestamp: bool = PrivateAttr()
165
+
165
166
  name: str = Field(default_factory=lambda: settings.NAME)
166
167
  type: str
167
168
  baggage: str | None = None
@@ -196,9 +197,9 @@ class ZMQMessage(OpenModuleModel):
196
197
  @field_validator("timestamp", mode="before")
197
198
  @classmethod
198
199
  def check_custom_timestamp(cls, v, info):
199
- from_model_validate = (info.context or {}).get("from_model_validate", False)
200
- using_default_timestamp = cls._using_default_timestamp
201
- custom_constructor_timestamp_allowed = cls._ALLOW_CUSTOM_TIMESTAMP
200
+ from_model_validate = (info.context or {}).get("from_model_validate", False) is True
201
+ using_default_timestamp = cls._using_default_timestamp is True
202
+ custom_constructor_timestamp_allowed = cls._ALLOW_CUSTOM_TIMESTAMP is True
202
203
 
203
204
  if not using_default_timestamp and not custom_constructor_timestamp_allowed and not from_model_validate:
204
205
  raise ValueError("timestamp must not be set manually")
@@ -185,7 +185,7 @@ class RPCServer(object):
185
185
  handler: HandlerEntry = self.find_handler(channel, message.type)
186
186
  if handler:
187
187
  try:
188
- request = handler.request_class(**message.request)
188
+ request = handler.request_class.model_validate(message.request)
189
189
  except ValidationError as e:
190
190
  self.log.exception("exception in parsing request. request not processed and error returned")
191
191
  return {"status": RPCServerError.validation_error, "exception": e.json()}
@@ -225,7 +225,7 @@ class RPCServer(object):
225
225
  return
226
226
 
227
227
  try:
228
- message = RPCRequest(**message)
228
+ message = RPCRequest.model_validate(message)
229
229
  message_type = message.type
230
230
  rpc_id = message.rpc_id
231
231
  except ValidationError as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openmodule
3
- Version: 16.0.0
3
+ Version: 16.0.1
4
4
  Summary: Libraries for developing the arivo openmodule
5
5
  Home-page: https://gitlab.com/arivo-public/device-python/openmodule.git
6
6
  Author: ARIVO
@@ -9,14 +9,6 @@ from openmodule_test.core import OpenModuleCoreTestMixin
9
9
  class TestEvents(OpenModuleCoreTestMixin):
10
10
  topics = ["eventlog"]
11
11
 
12
- def setUp(self):
13
- ZMQMessage._ALLOW_CUSTOM_TIMESTAMP = True
14
- return super().setUp()
15
-
16
- def tearDown(self):
17
- ZMQMessage._ALLOW_CUSTOM_TIMESTAMP = False
18
- return super().tearDown()
19
-
20
12
  def test_event_generation(self):
21
13
  with self.assertLogs("Eventlog") as cm:
22
14
  send_event(
@@ -28,7 +20,7 @@ class TestEvents(OpenModuleCoreTestMixin):
28
20
  self.assertIn("INFO:Eventlog:Sending event at gate1: LPR plate='G ARIVO 1' country='A': "
29
21
  "customer Test User, medium QR1, price 1", cm.output)
30
22
 
31
- msg = EventlogMessage(**self.zmq_client.wait_for_message_on_topic("eventlog"))
23
+ msg = EventlogMessage.model_validate(self.zmq_client.wait_for_message_on_topic("eventlog"))
32
24
  self.assertEqual(msg.event.infos.type, "test_1")
33
25
  self.assertEqual(msg.event.infos.timestamp, datetime.min)
34
26
  self.assertEqual(msg.event.infos.gate, "gate1")
@@ -56,5 +48,5 @@ class TestEvents(OpenModuleCoreTestMixin):
56
48
  with self.assertLogs("Eventlog") as cm:
57
49
  send_event(EventInfo.create("test_1"), "test")
58
50
  self.assertIn("INFO:Eventlog:Sending event: test", cm.output)
59
- msg = EventlogMessage(**self.zmq_client.wait_for_message_on_topic("eventlog"))
51
+ msg = EventlogMessage.model_validate(self.zmq_client.wait_for_message_on_topic("eventlog"))
60
52
  self.assertIsNotNone(msg.event.infos.timestamp)
File without changes
File without changes
File without changes
File without changes