s2-python 0.4.0__tar.gz → 0.5.0__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 (91) hide show
  1. {s2_python-0.4.0 → s2_python-0.5.0}/PKG-INFO +4 -3
  2. {s2_python-0.4.0 → s2_python-0.5.0}/setup.cfg +3 -2
  3. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/PKG-INFO +4 -3
  4. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/SOURCES.txt +16 -0
  5. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/requires.txt +2 -1
  6. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/__init__.py +32 -0
  7. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/duration.py +3 -1
  8. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/handshake.py +2 -2
  9. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/handshake_response.py +2 -2
  10. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/instruction_status_update.py +3 -3
  11. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/number_range.py +1 -1
  12. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_forecast.py +3 -3
  13. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_forecast_element.py +5 -5
  14. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_forecast_value.py +1 -1
  15. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_measurement.py +3 -3
  16. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_range.py +1 -1
  17. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/power_value.py +1 -1
  18. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/reception_status.py +2 -2
  19. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/resource_manager_details.py +6 -6
  20. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/revoke_object.py +3 -3
  21. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/role.py +1 -1
  22. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/select_control_type.py +2 -2
  23. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/session_request.py +2 -2
  24. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/timer.py +3 -3
  25. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/transition.py +8 -8
  26. s2_python-0.5.0/src/s2python/ddbc/__init__.py +21 -0
  27. s2_python-0.5.0/src/s2python/ddbc/ddbc_actuator_description.py +30 -0
  28. s2_python-0.5.0/src/s2python/ddbc/ddbc_actuator_status.py +22 -0
  29. s2_python-0.5.0/src/s2python/ddbc/ddbc_average_demand_rate_forecast.py +28 -0
  30. s2_python-0.5.0/src/s2python/ddbc/ddbc_average_demand_rate_forecast_element.py +21 -0
  31. s2_python-0.5.0/src/s2python/ddbc/ddbc_instruction.py +19 -0
  32. s2_python-0.5.0/src/s2python/ddbc/ddbc_operation_mode.py +26 -0
  33. s2_python-0.5.0/src/s2python/ddbc/ddbc_system_description.py +29 -0
  34. s2_python-0.5.0/src/s2python/ddbc/ddbc_timer_status.py +18 -0
  35. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/__init__.py +19 -3
  36. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_actuator_description.py +9 -7
  37. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_actuator_status.py +5 -5
  38. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_fill_level_target_profile.py +3 -3
  39. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_fill_level_target_profile_element.py +3 -5
  40. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_instruction.py +5 -5
  41. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_leakage_behaviour.py +3 -3
  42. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_leakage_behaviour_element.py +2 -4
  43. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_operation_mode.py +6 -4
  44. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_operation_mode_element.py +5 -5
  45. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_storage_description.py +2 -2
  46. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_storage_status.py +2 -2
  47. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_system_description.py +4 -4
  48. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_timer_status.py +4 -4
  49. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_usage_forecast.py +3 -3
  50. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/frbc_usage_forecast_element.py +2 -2
  51. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/generated/gen_s2.py +507 -543
  52. s2_python-0.5.0/src/s2python/message.py +134 -0
  53. s2_python-0.5.0/src/s2python/pebc/__init__.py +21 -0
  54. s2_python-0.5.0/src/s2python/pebc/pebc_allowed_limit_range.py +26 -0
  55. s2_python-0.5.0/src/s2python/pebc/pebc_energy_constraint.py +25 -0
  56. s2_python-0.5.0/src/s2python/pebc/pebc_instruction.py +27 -0
  57. s2_python-0.5.0/src/s2python/pebc/pebc_power_constraints.py +27 -0
  58. s2_python-0.5.0/src/s2python/pebc/pebc_power_envelope.py +23 -0
  59. s2_python-0.5.0/src/s2python/pebc/pebc_power_envelope_element.py +16 -0
  60. s2_python-0.5.0/src/s2python/ppbc/__init__.py +21 -0
  61. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_end_interruption_instruction.py +6 -8
  62. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_profile_definition.py +4 -6
  63. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_profile_status.py +2 -4
  64. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_sequence.py +6 -6
  65. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_sequence_container.py +5 -7
  66. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_sequence_container_status.py +7 -9
  67. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_power_sequence_element.py +3 -5
  68. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_schedule_instruction.py +6 -8
  69. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/ppbc/ppbc_start_interruption_instruction.py +6 -8
  70. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/s2_connection.py +30 -12
  71. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/s2_control_type.py +15 -0
  72. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/s2_parser.py +1 -3
  73. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/validate_values_mixin.py +29 -14
  74. s2_python-0.4.0/src/s2python/message.py +0 -50
  75. s2_python-0.4.0/src/s2python/ppbc/__init__.py +0 -12
  76. {s2_python-0.4.0 → s2_python-0.5.0}/README.rst +0 -0
  77. {s2_python-0.4.0 → s2_python-0.5.0}/pyproject.toml +0 -0
  78. {s2_python-0.4.0 → s2_python-0.5.0}/setup.py +0 -0
  79. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/dependency_links.txt +0 -0
  80. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/entry_points.txt +0 -0
  81. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/not-zip-safe +0 -0
  82. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2_python.egg-info/top_level.txt +0 -0
  83. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/__init__.py +0 -0
  84. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/common/support.py +0 -0
  85. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/frbc/rm.py +0 -0
  86. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/generated/__init__.py +0 -0
  87. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/py.typed +0 -0
  88. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/reception_status_awaiter.py +0 -0
  89. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/s2_validation_error.py +0 -0
  90. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/utils.py +0 -0
  91. {s2_python-0.4.0 → s2_python-0.5.0}/src/s2python/version.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: s2-python
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: S2 Protocol Python Wrapper
5
5
  Home-page: https://github.com/flexiblepower/s2-ws-json-python
6
6
  Author: Flexiblepower
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Description-Content-Type: text/x-rst; charset=UTF-8
17
- Requires-Dist: pydantic~=2.8.2
17
+ Requires-Dist: pydantic>=2.8.2
18
18
  Requires-Dist: pytz
19
19
  Requires-Dist: click
20
20
  Requires-Dist: websockets~=13.1
@@ -25,6 +25,7 @@ Requires-Dist: pytest-timer; extra == "testing"
25
25
  Requires-Dist: mypy; extra == "testing"
26
26
  Requires-Dist: types-pytz; extra == "testing"
27
27
  Requires-Dist: pylint; extra == "testing"
28
+ Requires-Dist: pyright; extra == "testing"
28
29
  Provides-Extra: development
29
30
  Requires-Dist: pip-tools; extra == "development"
30
31
  Requires-Dist: datamodel-code-generator; extra == "development"
@@ -8,7 +8,7 @@ license_files = LICENSE.txt
8
8
  long_description = file: README.rst
9
9
  long_description_content_type = text/x-rst; charset=UTF-8
10
10
  url = https://github.com/flexiblepower/s2-ws-json-python
11
- version = 0.4.0
11
+ version = 0.5.0
12
12
  platforms = Linux
13
13
  classifiers =
14
14
  Development Status :: 4 - Beta
@@ -26,7 +26,7 @@ package_dir =
26
26
  =src
27
27
  python_requires > = 3.8, <= 3.12
28
28
  install_requires =
29
- pydantic~=2.8.2
29
+ pydantic>=2.8.2
30
30
  pytz
31
31
  click
32
32
  websockets~=13.1
@@ -44,6 +44,7 @@ testing =
44
44
  mypy
45
45
  types-pytz
46
46
  pylint
47
+ pyright
47
48
  development =
48
49
  pip-tools
49
50
  datamodel-code-generator
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: s2-python
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: S2 Protocol Python Wrapper
5
5
  Home-page: https://github.com/flexiblepower/s2-ws-json-python
6
6
  Author: Flexiblepower
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Description-Content-Type: text/x-rst; charset=UTF-8
17
- Requires-Dist: pydantic~=2.8.2
17
+ Requires-Dist: pydantic>=2.8.2
18
18
  Requires-Dist: pytz
19
19
  Requires-Dist: click
20
20
  Requires-Dist: websockets~=13.1
@@ -25,6 +25,7 @@ Requires-Dist: pytest-timer; extra == "testing"
25
25
  Requires-Dist: mypy; extra == "testing"
26
26
  Requires-Dist: types-pytz; extra == "testing"
27
27
  Requires-Dist: pylint; extra == "testing"
28
+ Requires-Dist: pyright; extra == "testing"
28
29
  Provides-Extra: development
29
30
  Requires-Dist: pip-tools; extra == "development"
30
31
  Requires-Dist: datamodel-code-generator; extra == "development"
@@ -41,6 +41,15 @@ src/s2python/common/session_request.py
41
41
  src/s2python/common/support.py
42
42
  src/s2python/common/timer.py
43
43
  src/s2python/common/transition.py
44
+ src/s2python/ddbc/__init__.py
45
+ src/s2python/ddbc/ddbc_actuator_description.py
46
+ src/s2python/ddbc/ddbc_actuator_status.py
47
+ src/s2python/ddbc/ddbc_average_demand_rate_forecast.py
48
+ src/s2python/ddbc/ddbc_average_demand_rate_forecast_element.py
49
+ src/s2python/ddbc/ddbc_instruction.py
50
+ src/s2python/ddbc/ddbc_operation_mode.py
51
+ src/s2python/ddbc/ddbc_system_description.py
52
+ src/s2python/ddbc/ddbc_timer_status.py
44
53
  src/s2python/frbc/__init__.py
45
54
  src/s2python/frbc/frbc_actuator_description.py
46
55
  src/s2python/frbc/frbc_actuator_status.py
@@ -60,6 +69,13 @@ src/s2python/frbc/frbc_usage_forecast_element.py
60
69
  src/s2python/frbc/rm.py
61
70
  src/s2python/generated/__init__.py
62
71
  src/s2python/generated/gen_s2.py
72
+ src/s2python/pebc/__init__.py
73
+ src/s2python/pebc/pebc_allowed_limit_range.py
74
+ src/s2python/pebc/pebc_energy_constraint.py
75
+ src/s2python/pebc/pebc_instruction.py
76
+ src/s2python/pebc/pebc_power_constraints.py
77
+ src/s2python/pebc/pebc_power_envelope.py
78
+ src/s2python/pebc/pebc_power_envelope_element.py
63
79
  src/s2python/ppbc/__init__.py
64
80
  src/s2python/ppbc/ppbc_end_interruption_instruction.py
65
81
  src/s2python/ppbc/ppbc_power_profile_definition.py
@@ -1,4 +1,4 @@
1
- pydantic~=2.8.2
1
+ pydantic>=2.8.2
2
2
  pytz
3
3
  click
4
4
  websockets~=13.1
@@ -24,3 +24,4 @@ pytest-timer
24
24
  mypy
25
25
  types-pytz
26
26
  pylint
27
+ pyright
@@ -30,3 +30,35 @@ from s2python.common.select_control_type import SelectControlType
30
30
  from s2python.common.session_request import SessionRequest
31
31
  from s2python.common.timer import Timer
32
32
  from s2python.common.transition import Transition
33
+
34
+ __all__ = [
35
+ "RoleType",
36
+ "Currency",
37
+ "CommodityQuantity",
38
+ "Commodity",
39
+ "InstructionStatus",
40
+ "ReceptionStatusValues",
41
+ "EnergyManagementRole",
42
+ "SessionRequestType",
43
+ "ControlType",
44
+ "RevokableObjects",
45
+ "Duration",
46
+ "Role",
47
+ "Handshake",
48
+ "HandshakeResponse",
49
+ "InstructionStatusUpdate",
50
+ "NumberRange",
51
+ "PowerForecastValue",
52
+ "PowerForecastElement",
53
+ "PowerForecast",
54
+ "PowerValue",
55
+ "PowerMeasurement",
56
+ "PowerRange",
57
+ "ReceptionStatus",
58
+ "ResourceManagerDetails",
59
+ "RevokeObject",
60
+ "SelectControlType",
61
+ "SessionRequest",
62
+ "Timer",
63
+ "Transition",
64
+ ]
@@ -9,7 +9,9 @@ from s2python.validate_values_mixin import (
9
9
 
10
10
 
11
11
  @catch_and_convert_exceptions
12
- class Duration(GenDuration, S2MessageComponent["Duration"]):
12
+ class Duration( # pyright: ignore[reportIncompatibleMethodOverride]
13
+ GenDuration, S2MessageComponent
14
+ ):
13
15
  def to_timedelta(self) -> timedelta:
14
16
  return timedelta(milliseconds=self.root)
15
17
 
@@ -8,8 +8,8 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class Handshake(GenHandshake, S2MessageComponent["Handshake"]):
11
+ class Handshake(GenHandshake, S2MessageComponent):
12
12
  model_config = GenHandshake.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- message_id: uuid.UUID = GenHandshake.model_fields["message_id"] # type: ignore[assignment]
15
+ message_id: uuid.UUID = GenHandshake.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -8,8 +8,8 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class HandshakeResponse(GenHandshakeResponse, S2MessageComponent["HandshakeResponse"]):
11
+ class HandshakeResponse(GenHandshakeResponse, S2MessageComponent):
12
12
  model_config = GenHandshakeResponse.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- message_id: uuid.UUID = GenHandshakeResponse.model_fields["message_id"] # type: ignore[assignment]
15
+ message_id: uuid.UUID = GenHandshakeResponse.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -10,9 +10,9 @@ from s2python.validate_values_mixin import (
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class InstructionStatusUpdate(GenInstructionStatusUpdate, S2MessageComponent["InstructionStatusUpdate"]):
13
+ class InstructionStatusUpdate(GenInstructionStatusUpdate, S2MessageComponent):
14
14
  model_config = GenInstructionStatusUpdate.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
17
- message_id: uuid.UUID = GenInstructionStatusUpdate.model_fields["message_id"] # type: ignore[assignment]
18
- instruction_id: uuid.UUID = GenInstructionStatusUpdate.model_fields["instruction_id"] # type: ignore[assignment]
17
+ message_id: uuid.UUID = GenInstructionStatusUpdate.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ instruction_id: uuid.UUID = GenInstructionStatusUpdate.model_fields["instruction_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -5,7 +5,7 @@ from s2python.generated.gen_s2 import NumberRange as GenNumberRange
5
5
 
6
6
 
7
7
  @catch_and_convert_exceptions
8
- class NumberRange(GenNumberRange, S2MessageComponent["NumberRange"]):
8
+ class NumberRange(GenNumberRange, S2MessageComponent):
9
9
  model_config = GenNumberRange.model_config
10
10
  model_config["validate_assignment"] = True
11
11
 
@@ -10,9 +10,9 @@ from s2python.validate_values_mixin import (
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class PowerForecast(GenPowerForecast, S2MessageComponent["PowerForecast"]):
13
+ class PowerForecast(GenPowerForecast, S2MessageComponent):
14
14
  model_config = GenPowerForecast.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
17
- message_id: uuid.UUID = GenPowerForecast.model_fields["message_id"] # type: ignore[assignment]
18
- elements: List[PowerForecastElement] = GenPowerForecast.model_fields["elements"] # type: ignore[assignment]
17
+ message_id: uuid.UUID = GenPowerForecast.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ elements: List[PowerForecastElement] = GenPowerForecast.model_fields["elements"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -10,11 +10,11 @@ from s2python.common.power_forecast_value import PowerForecastValue
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class PowerForecastElement(GenPowerForecastElement, S2MessageComponent["PowerForecastElement"]):
13
+ class PowerForecastElement(GenPowerForecastElement, S2MessageComponent):
14
14
  model_config = GenPowerForecastElement.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
17
- duration: Duration = GenPowerForecastElement.model_fields["duration"] # type: ignore[assignment]
18
- power_values: List[PowerForecastValue] = GenPowerForecastElement.model_fields[
19
- "power_values"
20
- ] # type: ignore[assignment]
17
+ duration: Duration = GenPowerForecastElement.model_fields["duration"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ power_values: List[PowerForecastValue] = ( # type: ignore[reportIncompatibleVariableOverride]
19
+ GenPowerForecastElement.model_fields["power_values"] # type: ignore[assignment]
20
+ )
@@ -6,6 +6,6 @@ from s2python.validate_values_mixin import (
6
6
 
7
7
 
8
8
  @catch_and_convert_exceptions
9
- class PowerForecastValue(GenPowerForecastValue, S2MessageComponent["PowerForecastValue"]):
9
+ class PowerForecastValue(GenPowerForecastValue, S2MessageComponent):
10
10
  model_config = GenPowerForecastValue.model_config
11
11
  model_config["validate_assignment"] = True
@@ -10,9 +10,9 @@ from s2python.validate_values_mixin import (
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class PowerMeasurement(GenPowerMeasurement, S2MessageComponent["PowerMeasurement"]):
13
+ class PowerMeasurement(GenPowerMeasurement, S2MessageComponent):
14
14
  model_config = GenPowerMeasurement.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
17
- message_id: uuid.UUID = GenPowerMeasurement.model_fields["message_id"] # type: ignore[assignment]
18
- values: List[PowerValue] = GenPowerMeasurement.model_fields["values"] # type: ignore[assignment]
17
+ message_id: uuid.UUID = GenPowerMeasurement.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ values: List[PowerValue] = GenPowerMeasurement.model_fields["values"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -10,7 +10,7 @@ from s2python.validate_values_mixin import (
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class PowerRange(GenPowerRange, S2MessageComponent["PowerRange"]):
13
+ class PowerRange(GenPowerRange, S2MessageComponent):
14
14
  model_config = GenPowerRange.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
@@ -6,6 +6,6 @@ from s2python.validate_values_mixin import (
6
6
 
7
7
 
8
8
  @catch_and_convert_exceptions
9
- class PowerValue(GenPowerValue, S2MessageComponent["PowerValue"]):
9
+ class PowerValue(GenPowerValue, S2MessageComponent):
10
10
  model_config = GenPowerValue.model_config
11
11
  model_config["validate_assignment"] = True
@@ -8,8 +8,8 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class ReceptionStatus(GenReceptionStatus, S2MessageComponent["ReceptionStatus"]):
11
+ class ReceptionStatus(GenReceptionStatus, S2MessageComponent):
12
12
  model_config = GenReceptionStatus.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- subject_message_id: uuid.UUID = GenReceptionStatus.model_fields["subject_message_id"] # type: ignore[assignment]
15
+ subject_message_id: uuid.UUID = GenReceptionStatus.model_fields["subject_message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -13,13 +13,13 @@ from s2python.validate_values_mixin import (
13
13
 
14
14
 
15
15
  @catch_and_convert_exceptions
16
- class ResourceManagerDetails(GenResourceManagerDetails, S2MessageComponent["ResourceManagerDetails"]):
16
+ class ResourceManagerDetails(GenResourceManagerDetails, S2MessageComponent):
17
17
  model_config = GenResourceManagerDetails.model_config
18
18
  model_config["validate_assignment"] = True
19
19
 
20
- instruction_processing_delay: Duration = GenResourceManagerDetails.model_fields[
20
+ instruction_processing_delay: Duration = GenResourceManagerDetails.model_fields[ # type: ignore[assignment,reportIncompatibleVariableOverride]
21
21
  "instruction_processing_delay"
22
- ] # type: ignore[assignment]
23
- message_id: uuid.UUID = GenResourceManagerDetails.model_fields["message_id"] # type: ignore[assignment]
24
- resource_id: uuid.UUID = GenResourceManagerDetails.model_fields["resource_id"] # type: ignore[assignment]
25
- roles: List[Role] = GenResourceManagerDetails.model_fields["roles"] # type: ignore[assignment]
22
+ ]
23
+ message_id: uuid.UUID = GenResourceManagerDetails.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
24
+ resource_id: uuid.UUID = GenResourceManagerDetails.model_fields["resource_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
25
+ roles: List[Role] = GenResourceManagerDetails.model_fields["roles"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -8,9 +8,9 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class RevokeObject(GenRevokeObject, S2MessageComponent["RevokeObject"]):
11
+ class RevokeObject(GenRevokeObject, S2MessageComponent):
12
12
  model_config = GenRevokeObject.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- message_id: uuid.UUID = GenRevokeObject.model_fields["message_id"] # type: ignore[assignment]
16
- object_id: uuid.UUID = GenRevokeObject.model_fields["object_id"] # type: ignore[assignment]
15
+ message_id: uuid.UUID = GenRevokeObject.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
16
+ object_id: uuid.UUID = GenRevokeObject.model_fields["object_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -6,6 +6,6 @@ from s2python.validate_values_mixin import (
6
6
 
7
7
 
8
8
  @catch_and_convert_exceptions
9
- class Role(GenRole, S2MessageComponent["Role"]):
9
+ class Role(GenRole, S2MessageComponent):
10
10
  model_config = GenRole.model_config
11
11
  model_config["validate_assignment"] = True
@@ -8,8 +8,8 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class SelectControlType(GenSelectControlType, S2MessageComponent["SelectControlType"]):
11
+ class SelectControlType(GenSelectControlType, S2MessageComponent):
12
12
  model_config = GenSelectControlType.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- message_id: uuid.UUID = GenSelectControlType.model_fields["message_id"] # type: ignore[assignment]
15
+ message_id: uuid.UUID = GenSelectControlType.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -8,8 +8,8 @@ from s2python.validate_values_mixin import (
8
8
 
9
9
 
10
10
  @catch_and_convert_exceptions
11
- class SessionRequest(GenSessionRequest, S2MessageComponent["SessionRequest"]):
11
+ class SessionRequest(GenSessionRequest, S2MessageComponent):
12
12
  model_config = GenSessionRequest.model_config
13
13
  model_config["validate_assignment"] = True
14
14
 
15
- message_id: uuid.UUID = GenSessionRequest.model_fields["message_id"] # type: ignore[assignment]
15
+ message_id: uuid.UUID = GenSessionRequest.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -9,9 +9,9 @@ from s2python.validate_values_mixin import (
9
9
 
10
10
 
11
11
  @catch_and_convert_exceptions
12
- class Timer(GenTimer, S2MessageComponent["Timer"]):
12
+ class Timer(GenTimer, S2MessageComponent):
13
13
  model_config = GenTimer.model_config
14
14
  model_config["validate_assignment"] = True
15
15
 
16
- id: uuid.UUID = GenTimer.model_fields["id"] # type: ignore[assignment]
17
- duration: Duration = GenTimer.model_fields["duration"] # type: ignore[assignment]
16
+ id: uuid.UUID = GenTimer.model_fields["id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
17
+ duration: Duration = GenTimer.model_fields["duration"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -10,15 +10,15 @@ from s2python.validate_values_mixin import (
10
10
 
11
11
 
12
12
  @catch_and_convert_exceptions
13
- class Transition(GenTransition, S2MessageComponent["Transition"]):
13
+ class Transition(GenTransition, S2MessageComponent):
14
14
  model_config = GenTransition.model_config
15
15
  model_config["validate_assignment"] = True
16
16
 
17
- id: uuid.UUID = GenTransition.model_fields["id"] # type: ignore[assignment]
18
- from_: uuid.UUID = GenTransition.model_fields["from_"] # type: ignore[assignment]
19
- to: uuid.UUID = GenTransition.model_fields["to"] # type: ignore[assignment]
20
- start_timers: List[uuid.UUID] = GenTransition.model_fields["start_timers"] # type: ignore[assignment]
21
- blocking_timers: List[uuid.UUID] = GenTransition.model_fields["blocking_timers"] # type: ignore[assignment]
22
- transition_duration: Optional[Duration] = GenTransition.model_fields[
17
+ id: uuid.UUID = GenTransition.model_fields["id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ from_: uuid.UUID = GenTransition.model_fields["from_"] # type: ignore[assignment,reportIncompatibleVariableOverride]
19
+ to: uuid.UUID = GenTransition.model_fields["to"] # type: ignore[assignment,reportIncompatibleVariableOverride]
20
+ start_timers: List[uuid.UUID] = GenTransition.model_fields["start_timers"] # type: ignore[assignment,reportIncompatibleVariableOverride]
21
+ blocking_timers: List[uuid.UUID] = GenTransition.model_fields["blocking_timers"] # type: ignore[assignment,reportIncompatibleVariableOverride]
22
+ transition_duration: Optional[Duration] = GenTransition.model_fields[ # type: ignore[assignment,reportIncompatibleVariableOverride]
23
23
  "transition_duration"
24
- ] # type: ignore[assignment]
24
+ ]
@@ -0,0 +1,21 @@
1
+ from s2python.ddbc.ddbc_actuator_description import DDBCActuatorDescription
2
+ from s2python.ddbc.ddbc_operation_mode import DDBCOperationMode
3
+ from s2python.ddbc.ddbc_instruction import DDBCInstruction
4
+ from s2python.ddbc.ddbc_actuator_status import DDBCActuatorStatus
5
+ from s2python.ddbc.ddbc_average_demand_rate_forecast_element import (
6
+ DDBCAverageDemandRateForecastElement,
7
+ )
8
+ from s2python.ddbc.ddbc_average_demand_rate_forecast import DDBCAverageDemandRateForecast
9
+ from s2python.ddbc.ddbc_system_description import DDBCSystemDescription
10
+ from s2python.ddbc.ddbc_timer_status import DDBCTimerStatus
11
+
12
+ __all__ = [
13
+ "DDBCActuatorDescription",
14
+ "DDBCOperationMode",
15
+ "DDBCInstruction",
16
+ "DDBCActuatorStatus",
17
+ "DDBCAverageDemandRateForecastElement",
18
+ "DDBCAverageDemandRateForecast",
19
+ "DDBCSystemDescription",
20
+ "DDBCTimerStatus",
21
+ ]
@@ -0,0 +1,30 @@
1
+ from typing import List
2
+ import uuid
3
+
4
+ from s2python.generated.gen_s2 import (
5
+ DDBCActuatorDescription as GenDDBCActuatorDescription,
6
+ )
7
+ from s2python.generated.gen_s2 import Commodity
8
+ from s2python.ddbc.ddbc_operation_mode import DDBCOperationMode
9
+
10
+ from s2python.common.timer import Timer
11
+
12
+ from s2python.validate_values_mixin import (
13
+ catch_and_convert_exceptions,
14
+ S2MessageComponent,
15
+ )
16
+
17
+
18
+ @catch_and_convert_exceptions
19
+ class DDBCActuatorDescription(GenDDBCActuatorDescription, S2MessageComponent):
20
+ model_config = GenDDBCActuatorDescription.model_config
21
+ model_config["validate_assignment"] = True
22
+
23
+ id: uuid.UUID = GenDDBCActuatorDescription.model_fields["id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
24
+ supported_commodites: List[Commodity] = GenDDBCActuatorDescription.model_fields[
25
+ "supported_commodites"
26
+ ] # type: ignore[assignment,reportIncompatibleVariableOverride]
27
+ timers: List[Timer] = GenDDBCActuatorDescription.model_fields["timers"] # type: ignore[assignment,reportIncompatibleVariableOverride]
28
+ operation_modes: List[DDBCOperationMode] = GenDDBCActuatorDescription.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
29
+ "operation_modes"
30
+ ] # type: ignore[assignment]
@@ -0,0 +1,22 @@
1
+ import uuid
2
+
3
+ from s2python.generated.gen_s2 import DDBCActuatorStatus as GenDDBCActuatorStatus
4
+ from s2python.validate_values_mixin import (
5
+ catch_and_convert_exceptions,
6
+ S2MessageComponent,
7
+ )
8
+
9
+
10
+ @catch_and_convert_exceptions
11
+ class DDBCActuatorStatus(GenDDBCActuatorStatus, S2MessageComponent):
12
+ model_config = GenDDBCActuatorStatus.model_config
13
+ model_config["validate_assignment"] = True
14
+
15
+ message_id: uuid.UUID = GenDDBCActuatorStatus.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
16
+ actuator_id: uuid.UUID = GenDDBCActuatorStatus.model_fields["actuator_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
17
+ active_operation_mode_id: uuid.UUID = GenDDBCActuatorStatus.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
18
+ "active_operation_mode_id"
19
+ ] # type: ignore[assignment]
20
+ operation_mode_factor: float = GenDDBCActuatorStatus.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
21
+ "operation_mode_factor"
22
+ ] # type: ignore[assignment]
@@ -0,0 +1,28 @@
1
+ from typing import List
2
+ import uuid
3
+
4
+ from s2python.generated.gen_s2 import (
5
+ DDBCAverageDemandRateForecast as GenDDBCAverageDemandRateForecast,
6
+ )
7
+ from s2python.ddbc.ddbc_average_demand_rate_forecast_element import (
8
+ DDBCAverageDemandRateForecastElement,
9
+ )
10
+
11
+ from s2python.validate_values_mixin import (
12
+ catch_and_convert_exceptions,
13
+ S2MessageComponent,
14
+ )
15
+
16
+
17
+ @catch_and_convert_exceptions
18
+ class DDBCAverageDemandRateForecast(
19
+ GenDDBCAverageDemandRateForecast,
20
+ S2MessageComponent,
21
+ ):
22
+ model_config = GenDDBCAverageDemandRateForecast.model_config
23
+ model_config["validate_assignment"] = True
24
+
25
+ message_id: uuid.UUID = GenDDBCAverageDemandRateForecast.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
26
+ elements: List[DDBCAverageDemandRateForecastElement] = ( # type: ignore[reportIncompatibleVariableOverride]
27
+ GenDDBCAverageDemandRateForecast.model_fields["elements"] # type: ignore[assignment]
28
+ )
@@ -0,0 +1,21 @@
1
+ from s2python.generated.gen_s2 import Duration
2
+
3
+ from s2python.generated.gen_s2 import (
4
+ DDBCAverageDemandRateForecastElement as GenDDBCAverageDemandRateForecastElement,
5
+ )
6
+
7
+ from s2python.validate_values_mixin import catch_and_convert_exceptions, S2MessageComponent
8
+
9
+
10
+ @catch_and_convert_exceptions
11
+ class DDBCAverageDemandRateForecastElement(
12
+ GenDDBCAverageDemandRateForecastElement,
13
+ S2MessageComponent,
14
+ ):
15
+ model_config = GenDDBCAverageDemandRateForecastElement.model_config
16
+ model_config["validate_assignment"] = True
17
+
18
+ duration: Duration = GenDDBCAverageDemandRateForecastElement.model_fields["duration"] # type: ignore[assignment,reportIncompatibleVariableOverride]
19
+ demand_rate_expected: float = GenDDBCAverageDemandRateForecastElement.model_fields[
20
+ "demand_rate_expected"
21
+ ] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -0,0 +1,19 @@
1
+ import uuid
2
+
3
+ from s2python.generated.gen_s2 import DDBCInstruction as GenDDBCInstruction
4
+ from s2python.validate_values_mixin import (
5
+ catch_and_convert_exceptions,
6
+ S2MessageComponent,
7
+ )
8
+
9
+
10
+ @catch_and_convert_exceptions
11
+ class DDBCInstruction(GenDDBCInstruction, S2MessageComponent):
12
+ model_config = GenDDBCInstruction.model_config
13
+ model_config["validate_assignment"] = True
14
+
15
+ message_id: uuid.UUID = GenDDBCInstruction.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
16
+ actuator_id: uuid.UUID = GenDDBCInstruction.model_fields["actuator_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
17
+ operation_mode_id: uuid.UUID = GenDDBCInstruction.model_fields["operation_mode_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ operation_mode_factor: float = GenDDBCInstruction.model_fields["operation_mode_factor"] # type: ignore[assignment,reportIncompatibleVariableOverride]
19
+ abnormal_condition: bool = GenDDBCInstruction.model_fields["abnormal_condition"] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -0,0 +1,26 @@
1
+ from typing import List
2
+ import uuid
3
+
4
+ from s2python.generated.gen_s2 import DDBCOperationMode as GenDDBCOperationMode
5
+
6
+ from s2python.common.power_range import PowerRange
7
+ from s2python.common.number_range import NumberRange
8
+
9
+ from s2python.validate_values_mixin import (
10
+ catch_and_convert_exceptions,
11
+ S2MessageComponent,
12
+ )
13
+
14
+
15
+ @catch_and_convert_exceptions
16
+ class DDBCOperationMode(GenDDBCOperationMode, S2MessageComponent):
17
+ model_config = GenDDBCOperationMode.model_config
18
+ model_config["validate_assignment"] = True
19
+
20
+ # ? Id vs id
21
+ id: uuid.UUID = GenDDBCOperationMode.model_fields["Id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
22
+ power_ranges: List[PowerRange] = GenDDBCOperationMode.model_fields["power_ranges"] # type: ignore[assignment,reportIncompatibleVariableOverride]
23
+ supply_range: List[NumberRange] = GenDDBCOperationMode.model_fields["supply_range"] # type: ignore[assignment,reportIncompatibleVariableOverride]
24
+ abnormal_condition_only: bool = GenDDBCOperationMode.model_fields[
25
+ "abnormal_condition_only"
26
+ ] # type: ignore[assignment,reportIncompatibleVariableOverride]
@@ -0,0 +1,29 @@
1
+ from typing import List
2
+ import uuid
3
+
4
+ from s2python.generated.gen_s2 import (
5
+ DDBCSystemDescription as GenDDBCSystemDescription,
6
+ )
7
+ from s2python.common.number_range import NumberRange
8
+ from s2python.ddbc.ddbc_actuator_description import DDBCActuatorDescription
9
+ from s2python.validate_values_mixin import (
10
+ catch_and_convert_exceptions,
11
+ S2MessageComponent,
12
+ )
13
+
14
+
15
+ @catch_and_convert_exceptions
16
+ class DDBCSystemDescription(GenDDBCSystemDescription, S2MessageComponent):
17
+ model_config = GenDDBCSystemDescription.model_config
18
+ model_config["validate_assignment"] = True
19
+
20
+ message_id: uuid.UUID = GenDDBCSystemDescription.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
21
+ actuators: List[DDBCActuatorDescription] = GenDDBCSystemDescription.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
22
+ "actuators"
23
+ ] # type: ignore[assignment]
24
+ present_demand_rate: NumberRange = GenDDBCSystemDescription.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
25
+ "present_demand_rate"
26
+ ] # type: ignore[assignment]
27
+ provides_average_demand_rate_forecast: bool = GenDDBCSystemDescription.model_fields[ # type: ignore[reportIncompatibleVariableOverride]
28
+ "provides_average_demand_rate_forecast"
29
+ ] # type: ignore[assignment]
@@ -0,0 +1,18 @@
1
+ import uuid
2
+
3
+ from s2python.generated.gen_s2 import DDBCTimerStatus as GenDDBCTimerStatus
4
+
5
+ from s2python.validate_values_mixin import (
6
+ catch_and_convert_exceptions,
7
+ S2MessageComponent,
8
+ )
9
+
10
+
11
+ @catch_and_convert_exceptions
12
+ class DDBCTimerStatus(GenDDBCTimerStatus, S2MessageComponent):
13
+ model_config = GenDDBCTimerStatus.model_config
14
+ model_config["validate_assignment"] = True
15
+
16
+ message_id: uuid.UUID = GenDDBCTimerStatus.model_fields["message_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
17
+ timer_id: uuid.UUID = GenDDBCTimerStatus.model_fields["timer_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]
18
+ actuator_id: uuid.UUID = GenDDBCTimerStatus.model_fields["actuator_id"] # type: ignore[assignment,reportIncompatibleVariableOverride]