policyengine-api-simulation-client 0.20251210.60__tar.gz → 0.20251216.72__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 (68) hide show
  1. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/PKG-INFO +1 -1
  2. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/__init__.py +8 -0
  3. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/economy_comparison.py +28 -0
  4. policyengine_api_simulation_client-0.20251216.72/policyengine_api_simulation_client/models/uk_local_authority_breakdown_by_local_authority.py +85 -0
  5. policyengine_api_simulation_client-0.20251216.72/policyengine_api_simulation_client/models/uk_local_authority_breakdown_with_values.py +71 -0
  6. policyengine_api_simulation_client-0.20251216.72/policyengine_api_simulation_client/models/uk_local_authority_breakdown_with_values_by_local_authority.py +59 -0
  7. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/pyproject.toml +1 -1
  8. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/README.md +0 -0
  9. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/__init__.py +0 -0
  10. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/__init__.py +0 -0
  11. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/default/__init__.py +0 -0
  12. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/default/alive_ping_alive_get.py +0 -0
  13. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/default/ping_ping_post.py +0 -0
  14. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/default/simulate_simulate_economy_comparison_post.py +0 -0
  15. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/api/default/started_ping_started_get.py +0 -0
  16. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/client.py +0 -0
  17. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/errors.py +0 -0
  18. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/age_group_baseline_reform_values.py +0 -0
  19. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/baseline_reform_values.py +0 -0
  20. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/budgetary_impact.py +0 -0
  21. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/cliff_impact.py +0 -0
  22. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/cliff_impact_in_simulation.py +0 -0
  23. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/decile_impact.py +0 -0
  24. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/decile_impact_average.py +0 -0
  25. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/decile_impact_relative.py +0 -0
  26. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/economy_comparison_detailed_budget_type_0.py +0 -0
  27. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/gender_baseline_reform_values.py +0 -0
  28. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/health_status.py +0 -0
  29. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/hours_response.py +0 -0
  30. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/http_validation_error.py +0 -0
  31. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/inequality_impact.py +0 -0
  32. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_decile_impact.py +0 -0
  33. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_decile_impact_all.py +0 -0
  34. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_decile_impact_deciles.py +0 -0
  35. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values.py +0 -0
  36. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values_all.py +0 -0
  37. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values_deciles.py +0 -0
  38. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/labor_supply_response.py +0 -0
  39. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/labor_supply_response_decile.py +0 -0
  40. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/labor_supply_response_decile_additional_property.py +0 -0
  41. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/labor_supply_response_decile_additional_property_additional_property.py +0 -0
  42. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/labor_supply_response_relative_lsr.py +0 -0
  43. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/parameter_change_dict.py +0 -0
  44. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/parametric_reform.py +0 -0
  45. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/ping_request.py +0 -0
  46. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/ping_response.py +0 -0
  47. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/poverty_gender_breakdown.py +0 -0
  48. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/poverty_impact.py +0 -0
  49. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/poverty_racial_breakdown_with_values.py +0 -0
  50. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/probe_status.py +0 -0
  51. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/program_specific_impact.py +0 -0
  52. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/racial_baseline_reform_values.py +0 -0
  53. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/simulation_options.py +0 -0
  54. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/simulation_options_country.py +0 -0
  55. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/simulation_options_data_type_1.py +0 -0
  56. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/simulation_options_scope.py +0 -0
  57. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/system_status.py +0 -0
  58. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/uk_constituency_breakdown_by_constituency.py +0 -0
  59. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values.py +0 -0
  60. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_by_constituency.py +0 -0
  61. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_outcomes_by_region.py +0 -0
  62. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_outcomes_by_region_additional_property.py +0 -0
  63. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/validation_error.py +0 -0
  64. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/wealth_decile_impact_with_values.py +0 -0
  65. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/wealth_decile_impact_with_values_average.py +0 -0
  66. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/models/wealth_decile_impact_with_values_relative.py +0 -0
  67. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/py.typed +0 -0
  68. {policyengine_api_simulation_client-0.20251210.60 → policyengine_api_simulation_client-0.20251216.72}/policyengine_api_simulation_client/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine_api_simulation_client
3
- Version: 0.20251210.60
3
+ Version: 0.20251216.72
4
4
  Summary: A client library for accessing policyengine-api-simulation
5
5
  Requires-Python: >=3.10,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -50,6 +50,11 @@ from .uk_constituency_breakdown_with_values_outcomes_by_region import UKConstitu
50
50
  from .uk_constituency_breakdown_with_values_outcomes_by_region_additional_property import (
51
51
  UKConstituencyBreakdownWithValuesOutcomesByRegionAdditionalProperty,
52
52
  )
53
+ from .uk_local_authority_breakdown_by_local_authority import UKLocalAuthorityBreakdownByLocalAuthority
54
+ from .uk_local_authority_breakdown_with_values import UKLocalAuthorityBreakdownWithValues
55
+ from .uk_local_authority_breakdown_with_values_by_local_authority import (
56
+ UKLocalAuthorityBreakdownWithValuesByLocalAuthority,
57
+ )
53
58
  from .validation_error import ValidationError
54
59
  from .wealth_decile_impact_with_values import WealthDecileImpactWithValues
55
60
  from .wealth_decile_impact_with_values_average import WealthDecileImpactWithValuesAverage
@@ -102,6 +107,9 @@ __all__ = (
102
107
  "UKConstituencyBreakdownWithValuesByConstituency",
103
108
  "UKConstituencyBreakdownWithValuesOutcomesByRegion",
104
109
  "UKConstituencyBreakdownWithValuesOutcomesByRegionAdditionalProperty",
110
+ "UKLocalAuthorityBreakdownByLocalAuthority",
111
+ "UKLocalAuthorityBreakdownWithValues",
112
+ "UKLocalAuthorityBreakdownWithValuesByLocalAuthority",
105
113
  "ValidationError",
106
114
  "WealthDecileImpactWithValues",
107
115
  "WealthDecileImpactWithValuesAverage",
@@ -21,6 +21,7 @@ if TYPE_CHECKING:
21
21
  from ..models.poverty_impact import PovertyImpact
22
22
  from ..models.poverty_racial_breakdown_with_values import PovertyRacialBreakdownWithValues
23
23
  from ..models.uk_constituency_breakdown_with_values import UKConstituencyBreakdownWithValues
24
+ from ..models.uk_local_authority_breakdown_with_values import UKLocalAuthorityBreakdownWithValues
24
25
  from ..models.wealth_decile_impact_with_values import WealthDecileImpactWithValues
25
26
 
26
27
 
@@ -43,6 +44,7 @@ class EconomyComparison:
43
44
  intra_wealth_decile (IntraWealthDecileImpactWithValues | None):
44
45
  labor_supply_response (LaborSupplyResponse):
45
46
  constituency_impact (None | UKConstituencyBreakdownWithValues):
47
+ local_authority_impact (None | UKLocalAuthorityBreakdownWithValues):
46
48
  cliff_impact (CliffImpact | None):
47
49
  model_version (None | str | Unset):
48
50
  data_version (None | str | Unset):
@@ -60,6 +62,7 @@ class EconomyComparison:
60
62
  intra_wealth_decile: IntraWealthDecileImpactWithValues | None
61
63
  labor_supply_response: LaborSupplyResponse
62
64
  constituency_impact: None | UKConstituencyBreakdownWithValues
65
+ local_authority_impact: None | UKLocalAuthorityBreakdownWithValues
63
66
  cliff_impact: CliffImpact | None
64
67
  model_version: None | str | Unset = UNSET
65
68
  data_version: None | str | Unset = UNSET
@@ -71,6 +74,7 @@ class EconomyComparison:
71
74
  from ..models.intra_wealth_decile_impact_with_values import IntraWealthDecileImpactWithValues
72
75
  from ..models.poverty_racial_breakdown_with_values import PovertyRacialBreakdownWithValues
73
76
  from ..models.uk_constituency_breakdown_with_values import UKConstituencyBreakdownWithValues
77
+ from ..models.uk_local_authority_breakdown_with_values import UKLocalAuthorityBreakdownWithValues
74
78
  from ..models.wealth_decile_impact_with_values import WealthDecileImpactWithValues
75
79
 
76
80
  budget = self.budget.to_dict()
@@ -117,6 +121,12 @@ class EconomyComparison:
117
121
  else:
118
122
  constituency_impact = self.constituency_impact
119
123
 
124
+ local_authority_impact: dict[str, Any] | None
125
+ if isinstance(self.local_authority_impact, UKLocalAuthorityBreakdownWithValues):
126
+ local_authority_impact = self.local_authority_impact.to_dict()
127
+ else:
128
+ local_authority_impact = self.local_authority_impact
129
+
120
130
  cliff_impact: dict[str, Any] | None
121
131
  if isinstance(self.cliff_impact, CliffImpact):
122
132
  cliff_impact = self.cliff_impact.to_dict()
@@ -151,6 +161,7 @@ class EconomyComparison:
151
161
  "intra_wealth_decile": intra_wealth_decile,
152
162
  "labor_supply_response": labor_supply_response,
153
163
  "constituency_impact": constituency_impact,
164
+ "local_authority_impact": local_authority_impact,
154
165
  "cliff_impact": cliff_impact,
155
166
  }
156
167
  )
@@ -175,6 +186,7 @@ class EconomyComparison:
175
186
  from ..models.poverty_impact import PovertyImpact
176
187
  from ..models.poverty_racial_breakdown_with_values import PovertyRacialBreakdownWithValues
177
188
  from ..models.uk_constituency_breakdown_with_values import UKConstituencyBreakdownWithValues
189
+ from ..models.uk_local_authority_breakdown_with_values import UKLocalAuthorityBreakdownWithValues
178
190
  from ..models.wealth_decile_impact_with_values import WealthDecileImpactWithValues
179
191
 
180
192
  d = dict(src_dict)
@@ -267,6 +279,21 @@ class EconomyComparison:
267
279
 
268
280
  constituency_impact = _parse_constituency_impact(d.pop("constituency_impact"))
269
281
 
282
+ def _parse_local_authority_impact(data: object) -> None | UKLocalAuthorityBreakdownWithValues:
283
+ if data is None:
284
+ return data
285
+ try:
286
+ if not isinstance(data, dict):
287
+ raise TypeError()
288
+ local_authority_impact_type_0 = UKLocalAuthorityBreakdownWithValues.from_dict(data)
289
+
290
+ return local_authority_impact_type_0
291
+ except (TypeError, ValueError, AttributeError, KeyError):
292
+ pass
293
+ return cast(None | UKLocalAuthorityBreakdownWithValues, data)
294
+
295
+ local_authority_impact = _parse_local_authority_impact(d.pop("local_authority_impact"))
296
+
270
297
  def _parse_cliff_impact(data: object) -> CliffImpact | None:
271
298
  if data is None:
272
299
  return data
@@ -313,6 +340,7 @@ class EconomyComparison:
313
340
  intra_wealth_decile=intra_wealth_decile,
314
341
  labor_supply_response=labor_supply_response,
315
342
  constituency_impact=constituency_impact,
343
+ local_authority_impact=local_authority_impact,
316
344
  cliff_impact=cliff_impact,
317
345
  model_version=model_version,
318
346
  data_version=data_version,
@@ -0,0 +1,85 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="UKLocalAuthorityBreakdownByLocalAuthority")
10
+
11
+
12
+ @_attrs_define
13
+ class UKLocalAuthorityBreakdownByLocalAuthority:
14
+ """
15
+ Attributes:
16
+ average_household_income_change (float):
17
+ relative_household_income_change (float):
18
+ x (int):
19
+ y (int):
20
+ """
21
+
22
+ average_household_income_change: float
23
+ relative_household_income_change: float
24
+ x: int
25
+ y: int
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ average_household_income_change = self.average_household_income_change
30
+
31
+ relative_household_income_change = self.relative_household_income_change
32
+
33
+ x = self.x
34
+
35
+ y = self.y
36
+
37
+ field_dict: dict[str, Any] = {}
38
+ field_dict.update(self.additional_properties)
39
+ field_dict.update(
40
+ {
41
+ "average_household_income_change": average_household_income_change,
42
+ "relative_household_income_change": relative_household_income_change,
43
+ "x": x,
44
+ "y": y,
45
+ }
46
+ )
47
+
48
+ return field_dict
49
+
50
+ @classmethod
51
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
52
+ d = dict(src_dict)
53
+ average_household_income_change = d.pop("average_household_income_change")
54
+
55
+ relative_household_income_change = d.pop("relative_household_income_change")
56
+
57
+ x = d.pop("x")
58
+
59
+ y = d.pop("y")
60
+
61
+ uk_local_authority_breakdown_by_local_authority = cls(
62
+ average_household_income_change=average_household_income_change,
63
+ relative_household_income_change=relative_household_income_change,
64
+ x=x,
65
+ y=y,
66
+ )
67
+
68
+ uk_local_authority_breakdown_by_local_authority.additional_properties = d
69
+ return uk_local_authority_breakdown_by_local_authority
70
+
71
+ @property
72
+ def additional_keys(self) -> list[str]:
73
+ return list(self.additional_properties.keys())
74
+
75
+ def __getitem__(self, key: str) -> Any:
76
+ return self.additional_properties[key]
77
+
78
+ def __setitem__(self, key: str, value: Any) -> None:
79
+ self.additional_properties[key] = value
80
+
81
+ def __delitem__(self, key: str) -> None:
82
+ del self.additional_properties[key]
83
+
84
+ def __contains__(self, key: str) -> bool:
85
+ return key in self.additional_properties
@@ -0,0 +1,71 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.uk_local_authority_breakdown_with_values_by_local_authority import (
11
+ UKLocalAuthorityBreakdownWithValuesByLocalAuthority,
12
+ )
13
+
14
+
15
+ T = TypeVar("T", bound="UKLocalAuthorityBreakdownWithValues")
16
+
17
+
18
+ @_attrs_define
19
+ class UKLocalAuthorityBreakdownWithValues:
20
+ """
21
+ Attributes:
22
+ by_local_authority (UKLocalAuthorityBreakdownWithValuesByLocalAuthority):
23
+ """
24
+
25
+ by_local_authority: UKLocalAuthorityBreakdownWithValuesByLocalAuthority
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ by_local_authority = self.by_local_authority.to_dict()
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "by_local_authority": by_local_authority,
36
+ }
37
+ )
38
+
39
+ return field_dict
40
+
41
+ @classmethod
42
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
43
+ from ..models.uk_local_authority_breakdown_with_values_by_local_authority import (
44
+ UKLocalAuthorityBreakdownWithValuesByLocalAuthority,
45
+ )
46
+
47
+ d = dict(src_dict)
48
+ by_local_authority = UKLocalAuthorityBreakdownWithValuesByLocalAuthority.from_dict(d.pop("by_local_authority"))
49
+
50
+ uk_local_authority_breakdown_with_values = cls(
51
+ by_local_authority=by_local_authority,
52
+ )
53
+
54
+ uk_local_authority_breakdown_with_values.additional_properties = d
55
+ return uk_local_authority_breakdown_with_values
56
+
57
+ @property
58
+ def additional_keys(self) -> list[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -0,0 +1,59 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.uk_local_authority_breakdown_by_local_authority import UKLocalAuthorityBreakdownByLocalAuthority
11
+
12
+
13
+ T = TypeVar("T", bound="UKLocalAuthorityBreakdownWithValuesByLocalAuthority")
14
+
15
+
16
+ @_attrs_define
17
+ class UKLocalAuthorityBreakdownWithValuesByLocalAuthority:
18
+ """ """
19
+
20
+ additional_properties: dict[str, UKLocalAuthorityBreakdownByLocalAuthority] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ field_dict: dict[str, Any] = {}
24
+ for prop_name, prop in self.additional_properties.items():
25
+ field_dict[prop_name] = prop.to_dict()
26
+
27
+ return field_dict
28
+
29
+ @classmethod
30
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
31
+ from ..models.uk_local_authority_breakdown_by_local_authority import UKLocalAuthorityBreakdownByLocalAuthority
32
+
33
+ d = dict(src_dict)
34
+ uk_local_authority_breakdown_with_values_by_local_authority = cls()
35
+
36
+ additional_properties = {}
37
+ for prop_name, prop_dict in d.items():
38
+ additional_property = UKLocalAuthorityBreakdownByLocalAuthority.from_dict(prop_dict)
39
+
40
+ additional_properties[prop_name] = additional_property
41
+
42
+ uk_local_authority_breakdown_with_values_by_local_authority.additional_properties = additional_properties
43
+ return uk_local_authority_breakdown_with_values_by_local_authority
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> UKLocalAuthorityBreakdownByLocalAuthority:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: UKLocalAuthorityBreakdownByLocalAuthority) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "policyengine_api_simulation_client"
3
- version = "0.20251210.60"
3
+ version = "0.20251216.72"
4
4
  description = "A client library for accessing policyengine-api-simulation"
5
5
  authors = []
6
6
  readme = "README.md"