policyengine-api-simulation-client 0.20260112.78__py3-none-any.whl → 0.20260114.79__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.
Files changed (64) hide show
  1. policyengine_api_simulation_client/__init__.py +1 -1
  2. policyengine_api_simulation_client/api/default/get_country_versions_versions_country_get.py +172 -0
  3. policyengine_api_simulation_client/api/default/get_job_status_jobs_job_id_get.py +204 -0
  4. policyengine_api_simulation_client/api/default/{started_ping_started_get.py → health_health_get.py} +27 -21
  5. policyengine_api_simulation_client/api/default/{alive_ping_alive_get.py → list_versions_versions_get.py} +27 -29
  6. policyengine_api_simulation_client/api/default/ping_ping_post.py +8 -8
  7. policyengine_api_simulation_client/api/default/{simulate_simulate_economy_comparison_post.py → submit_simulation_simulate_economy_comparison_post.py} +51 -27
  8. policyengine_api_simulation_client/models/__init__.py +17 -103
  9. policyengine_api_simulation_client/models/{baseline_reform_values.py → get_country_versions_versions_country_get_response_get_country_versions_versions_country_get.py} +6 -29
  10. policyengine_api_simulation_client/models/{labor_supply_response_relative_lsr.py → health_health_get_response_health_health_get.py} +5 -5
  11. policyengine_api_simulation_client/models/job_status_response.py +122 -0
  12. policyengine_api_simulation_client/models/{simulation_options_data_type_1.py → job_status_response_result_type_0.py} +5 -5
  13. policyengine_api_simulation_client/models/{program_specific_impact.py → job_submit_response.py} +41 -24
  14. policyengine_api_simulation_client/models/{parameter_change_dict.py → list_versions_versions_get_response_list_versions_versions_get.py} +6 -13
  15. policyengine_api_simulation_client/models/ping_request.py +2 -1
  16. policyengine_api_simulation_client/models/ping_response.py +2 -1
  17. policyengine_api_simulation_client/models/{probe_status.py → simulation_request.py} +24 -31
  18. {policyengine_api_simulation_client-0.20260112.78.dist-info → policyengine_api_simulation_client-0.20260114.79.dist-info}/METADATA +4 -4
  19. policyengine_api_simulation_client-0.20260114.79.dist-info/RECORD +28 -0
  20. policyengine_api_simulation_client/models/age_group_baseline_reform_values.py +0 -91
  21. policyengine_api_simulation_client/models/budgetary_impact.py +0 -101
  22. policyengine_api_simulation_client/models/cliff_impact.py +0 -75
  23. policyengine_api_simulation_client/models/cliff_impact_in_simulation.py +0 -69
  24. policyengine_api_simulation_client/models/decile_impact.py +0 -77
  25. policyengine_api_simulation_client/models/decile_impact_average.py +0 -46
  26. policyengine_api_simulation_client/models/decile_impact_relative.py +0 -46
  27. policyengine_api_simulation_client/models/economy_comparison.py +0 -366
  28. policyengine_api_simulation_client/models/economy_comparison_detailed_budget_type_0.py +0 -59
  29. policyengine_api_simulation_client/models/gender_baseline_reform_values.py +0 -75
  30. policyengine_api_simulation_client/models/health_status.py +0 -83
  31. policyengine_api_simulation_client/models/hours_response.py +0 -93
  32. policyengine_api_simulation_client/models/inequality_impact.py +0 -83
  33. policyengine_api_simulation_client/models/intra_decile_impact.py +0 -77
  34. policyengine_api_simulation_client/models/intra_decile_impact_all.py +0 -46
  35. policyengine_api_simulation_client/models/intra_decile_impact_deciles.py +0 -53
  36. policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values.py +0 -77
  37. policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values_all.py +0 -46
  38. policyengine_api_simulation_client/models/intra_wealth_decile_impact_with_values_deciles.py +0 -53
  39. policyengine_api_simulation_client/models/labor_supply_response.py +0 -119
  40. policyengine_api_simulation_client/models/labor_supply_response_decile.py +0 -63
  41. policyengine_api_simulation_client/models/labor_supply_response_decile_additional_property.py +0 -65
  42. policyengine_api_simulation_client/models/labor_supply_response_decile_additional_property_additional_property.py +0 -46
  43. policyengine_api_simulation_client/models/parametric_reform.py +0 -80
  44. policyengine_api_simulation_client/models/poverty_gender_breakdown.py +0 -75
  45. policyengine_api_simulation_client/models/poverty_impact.py +0 -75
  46. policyengine_api_simulation_client/models/poverty_racial_breakdown_with_values.py +0 -67
  47. policyengine_api_simulation_client/models/racial_baseline_reform_values.py +0 -91
  48. policyengine_api_simulation_client/models/simulation_options.py +0 -309
  49. policyengine_api_simulation_client/models/simulation_options_country.py +0 -9
  50. policyengine_api_simulation_client/models/simulation_options_scope.py +0 -9
  51. policyengine_api_simulation_client/models/system_status.py +0 -91
  52. policyengine_api_simulation_client/models/uk_constituency_breakdown_by_constituency.py +0 -85
  53. policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values.py +0 -85
  54. policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_by_constituency.py +0 -59
  55. policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_outcomes_by_region.py +0 -67
  56. policyengine_api_simulation_client/models/uk_constituency_breakdown_with_values_outcomes_by_region_additional_property.py +0 -46
  57. policyengine_api_simulation_client/models/uk_local_authority_breakdown_by_local_authority.py +0 -85
  58. policyengine_api_simulation_client/models/uk_local_authority_breakdown_with_values.py +0 -71
  59. policyengine_api_simulation_client/models/uk_local_authority_breakdown_with_values_by_local_authority.py +0 -59
  60. policyengine_api_simulation_client/models/wealth_decile_impact_with_values.py +0 -77
  61. policyengine_api_simulation_client/models/wealth_decile_impact_with_values_average.py +0 -46
  62. policyengine_api_simulation_client/models/wealth_decile_impact_with_values_relative.py +0 -46
  63. policyengine_api_simulation_client-0.20260112.78.dist-info/RECORD +0 -68
  64. {policyengine_api_simulation_client-0.20260112.78.dist-info → policyengine_api_simulation_client-0.20260114.79.dist-info}/WHEEL +0 -0
@@ -6,37 +6,48 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="ProgramSpecificImpact")
9
+ T = TypeVar("T", bound="JobSubmitResponse")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ProgramSpecificImpact:
14
- """
13
+ class JobSubmitResponse:
14
+ """Response model for job submission.
15
+
15
16
  Attributes:
16
- baseline (float):
17
- reform (float):
18
- difference (float):
17
+ job_id (str):
18
+ status (str):
19
+ poll_url (str):
20
+ country (str):
21
+ version (str):
19
22
  """
20
23
 
21
- baseline: float
22
- reform: float
23
- difference: float
24
+ job_id: str
25
+ status: str
26
+ poll_url: str
27
+ country: str
28
+ version: str
24
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
30
 
26
31
  def to_dict(self) -> dict[str, Any]:
27
- baseline = self.baseline
32
+ job_id = self.job_id
33
+
34
+ status = self.status
28
35
 
29
- reform = self.reform
36
+ poll_url = self.poll_url
30
37
 
31
- difference = self.difference
38
+ country = self.country
39
+
40
+ version = self.version
32
41
 
33
42
  field_dict: dict[str, Any] = {}
34
43
  field_dict.update(self.additional_properties)
35
44
  field_dict.update(
36
45
  {
37
- "baseline": baseline,
38
- "reform": reform,
39
- "difference": difference,
46
+ "job_id": job_id,
47
+ "status": status,
48
+ "poll_url": poll_url,
49
+ "country": country,
50
+ "version": version,
40
51
  }
41
52
  )
42
53
 
@@ -45,20 +56,26 @@ class ProgramSpecificImpact:
45
56
  @classmethod
46
57
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
47
58
  d = dict(src_dict)
48
- baseline = d.pop("baseline")
59
+ job_id = d.pop("job_id")
60
+
61
+ status = d.pop("status")
62
+
63
+ poll_url = d.pop("poll_url")
49
64
 
50
- reform = d.pop("reform")
65
+ country = d.pop("country")
51
66
 
52
- difference = d.pop("difference")
67
+ version = d.pop("version")
53
68
 
54
- program_specific_impact = cls(
55
- baseline=baseline,
56
- reform=reform,
57
- difference=difference,
69
+ job_submit_response = cls(
70
+ job_id=job_id,
71
+ status=status,
72
+ poll_url=poll_url,
73
+ country=country,
74
+ version=version,
58
75
  )
59
76
 
60
- program_specific_impact.additional_properties = d
61
- return program_specific_impact
77
+ job_submit_response.additional_properties = d
78
+ return job_submit_response
62
79
 
63
80
  @property
64
81
  def additional_keys(self) -> list[str]:
@@ -6,19 +6,12 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="ParameterChangeDict")
9
+ T = TypeVar("T", bound="ListVersionsVersionsGetResponseListVersionsVersionsGet")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ParameterChangeDict:
14
- """A dict of changes to a parameter, with custom date string as keys
15
- and various possible value types.
16
-
17
- Keys can be formatted one of two ways:
18
- 1. A single year (e.g., "YYYY")
19
- 2. A date range (e.g., "YYYY-MM-DD.YYYY-MM-DD")
20
-
21
- """
13
+ class ListVersionsVersionsGetResponseListVersionsVersionsGet:
14
+ """ """
22
15
 
23
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
17
 
@@ -31,10 +24,10 @@ class ParameterChangeDict:
31
24
  @classmethod
32
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
33
26
  d = dict(src_dict)
34
- parameter_change_dict = cls()
27
+ list_versions_versions_get_response_list_versions_versions_get = cls()
35
28
 
36
- parameter_change_dict.additional_properties = d
37
- return parameter_change_dict
29
+ list_versions_versions_get_response_list_versions_versions_get.additional_properties = d
30
+ return list_versions_versions_get_response_list_versions_versions_get
38
31
 
39
32
  @property
40
33
  def additional_keys(self) -> list[str]:
@@ -11,7 +11,8 @@ T = TypeVar("T", bound="PingRequest")
11
11
 
12
12
  @_attrs_define
13
13
  class PingRequest:
14
- """
14
+ """Request model for ping endpoint.
15
+
15
16
  Attributes:
16
17
  value (int):
17
18
  """
@@ -11,7 +11,8 @@ T = TypeVar("T", bound="PingResponse")
11
11
 
12
12
  @_attrs_define
13
13
  class PingResponse:
14
- """
14
+ """Response model for ping endpoint.
15
+
15
16
  Attributes:
16
17
  incremented (int):
17
18
  """
@@ -8,71 +8,64 @@ from attrs import field as _attrs_field
8
8
 
9
9
  from ..types import UNSET, Unset
10
10
 
11
- T = TypeVar("T", bound="ProbeStatus")
11
+ T = TypeVar("T", bound="SimulationRequest")
12
12
 
13
13
 
14
14
  @_attrs_define
15
- class ProbeStatus:
16
- """
15
+ class SimulationRequest:
16
+ """Request model for simulation submission.
17
+
17
18
  Attributes:
18
- name (str):
19
- healthy (bool):
20
- message (None | str | Unset):
19
+ country (str):
20
+ version (None | str | Unset):
21
21
  """
22
22
 
23
- name: str
24
- healthy: bool
25
- message: None | str | Unset = UNSET
23
+ country: str
24
+ version: None | str | Unset = UNSET
26
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
26
 
28
27
  def to_dict(self) -> dict[str, Any]:
29
- name = self.name
28
+ country = self.country
30
29
 
31
- healthy = self.healthy
32
-
33
- message: None | str | Unset
34
- if isinstance(self.message, Unset):
35
- message = UNSET
30
+ version: None | str | Unset
31
+ if isinstance(self.version, Unset):
32
+ version = UNSET
36
33
  else:
37
- message = self.message
34
+ version = self.version
38
35
 
39
36
  field_dict: dict[str, Any] = {}
40
37
  field_dict.update(self.additional_properties)
41
38
  field_dict.update(
42
39
  {
43
- "name": name,
44
- "healthy": healthy,
40
+ "country": country,
45
41
  }
46
42
  )
47
- if message is not UNSET:
48
- field_dict["message"] = message
43
+ if version is not UNSET:
44
+ field_dict["version"] = version
49
45
 
50
46
  return field_dict
51
47
 
52
48
  @classmethod
53
49
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
54
50
  d = dict(src_dict)
55
- name = d.pop("name")
56
-
57
- healthy = d.pop("healthy")
51
+ country = d.pop("country")
58
52
 
59
- def _parse_message(data: object) -> None | str | Unset:
53
+ def _parse_version(data: object) -> None | str | Unset:
60
54
  if data is None:
61
55
  return data
62
56
  if isinstance(data, Unset):
63
57
  return data
64
58
  return cast(None | str | Unset, data)
65
59
 
66
- message = _parse_message(d.pop("message", UNSET))
60
+ version = _parse_version(d.pop("version", UNSET))
67
61
 
68
- probe_status = cls(
69
- name=name,
70
- healthy=healthy,
71
- message=message,
62
+ simulation_request = cls(
63
+ country=country,
64
+ version=version,
72
65
  )
73
66
 
74
- probe_status.additional_properties = d
75
- return probe_status
67
+ simulation_request.additional_properties = d
68
+ return simulation_request
76
69
 
77
70
  @property
78
71
  def additional_keys(self) -> list[str]:
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine_api_simulation_client
3
- Version: 0.20260112.78
4
- Summary: A client library for accessing policyengine-api-simulation
3
+ Version: 0.20260114.79
4
+ Summary: A client library for accessing PolicyEngine Simulation Gateway API
5
5
  Requires-Python: >=3.10,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
7
7
  Classifier: Programming Language :: Python :: 3.10
@@ -14,8 +14,8 @@ Requires-Dist: httpx (>=0.23.0,<0.29.0)
14
14
  Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
15
15
  Description-Content-Type: text/markdown
16
16
 
17
- # policyengine-api-simulation-client
18
- A client library for accessing policyengine-api-simulation
17
+ # policyengine_api_simulation_client
18
+ A client library for accessing PolicyEngine Simulation Gateway API
19
19
 
20
20
  ## Usage
21
21
  First, create a client:
@@ -0,0 +1,28 @@
1
+ policyengine_api_simulation_client/__init__.py,sha256=yL0EaEvEDzacCnY-Yu9UsT6hJaqHSA_60jg7YjNP8S8,178
2
+ policyengine_api_simulation_client/api/__init__.py,sha256=zTSiG_ujSjAqWPyc435YXaX9XTlpMjiJWBbV-f-YtdA,45
3
+ policyengine_api_simulation_client/api/default/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
4
+ policyengine_api_simulation_client/api/default/get_country_versions_versions_country_get.py,sha256=2cr8ag0nXHzl1VllsZTazTbCLk_yjBvId5XnOk6WBJw,5187
5
+ policyengine_api_simulation_client/api/default/get_job_status_jobs_job_id_get.py,sha256=A_RQf1PIbDnBPAzhmxRzOBFjZlPcM-TDcBUy7JMH3yw,5445
6
+ policyengine_api_simulation_client/api/default/health_health_get.py,sha256=FFIbRTPo8Wxdpxjq63alVs8bGDfdsvWV0ZOLqyP_S_Y,3580
7
+ policyengine_api_simulation_client/api/default/list_versions_versions_get.py,sha256=zjTT7jSmrY0IqJGTwlTG57ZaYVYK0lYr-3qwRuxzxlM,3925
8
+ policyengine_api_simulation_client/api/default/ping_ping_post.py,sha256=3wN2T3ssd8cFsCcNjLhcBc2wyr4KgxfUGP6XjWqYWcA,4483
9
+ policyengine_api_simulation_client/api/default/submit_simulation_simulate_economy_comparison_post.py,sha256=eTA6Nz3VD__pAlS_I8cd-q3BBBuBKsXc5uX-9_gfGt8,5276
10
+ policyengine_api_simulation_client/client.py,sha256=-rT3epMc77Y7QMTy5o1oH5hkGLufY9qFrD1rb7qItFU,12384
11
+ policyengine_api_simulation_client/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
12
+ policyengine_api_simulation_client/models/__init__.py,sha256=Zfb8CtGEguBXo1scJNkKr_iiA4bjtRjpSND5jw2ZcHA,1310
13
+ policyengine_api_simulation_client/models/get_country_versions_versions_country_get_response_get_country_versions_versions_country_get.py,sha256=gRTFPuGlJww3qHoi1OrNHzXCYSE9Scr9BujdCHwVXCA,1614
14
+ policyengine_api_simulation_client/models/health_health_get_response_health_health_get.py,sha256=JPdfDgy2PtdjFddeL4lZLaWD5nTGfarxJfdFi5Y6iXs,1386
15
+ policyengine_api_simulation_client/models/http_validation_error.py,sha256=ceDDkSqsvFmTdFwrra6lwo-L-BAHNX8h8bwaKyxPkEk,2317
16
+ policyengine_api_simulation_client/models/job_status_response.py,sha256=pvr2VEa3weU9vE0fnqzODeSQwFa_Od_e32L7MdkTy2U,3678
17
+ policyengine_api_simulation_client/models/job_status_response_result_type_0.py,sha256=_QajAa0IY-OaUXpMHduujyux27fXJho2HT_MtKy8uyg,1333
18
+ policyengine_api_simulation_client/models/job_submit_response.py,sha256=bDYMMw52OYsZzdweyCkWjeBOnpe3-xENyE5qDRzqIEI,2253
19
+ policyengine_api_simulation_client/models/list_versions_versions_get_response_list_versions_versions_get.py,sha256=BCGgYT4Bq-fjrG0NEkqxTAEt-LFPJAJksH_vm-N2r3U,1472
20
+ policyengine_api_simulation_client/models/ping_request.py,sha256=ON_4Z3hJAm5AC1KqSz87KqC2gpBN72Qa12-vo3aFKeM,1516
21
+ policyengine_api_simulation_client/models/ping_response.py,sha256=Gm7H9wODAjKU8S8Pv-npzzrQVR-dW1U7CdPbvrRO_Pk,1582
22
+ policyengine_api_simulation_client/models/simulation_request.py,sha256=91OPE5XPcfib1hJlb7cQnGpD9ozOKHhvchBCuScL8BE,2255
23
+ policyengine_api_simulation_client/models/validation_error.py,sha256=n8d_ZobQV26pm0KyDAKvIo93uOBhz2BH59jpJAKwoPY,2180
24
+ policyengine_api_simulation_client/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
25
+ policyengine_api_simulation_client/types.py,sha256=0We4NPvhIYASRpQ3le41nmJeEAVm42-2VKdzlJ4Ogok,1343
26
+ policyengine_api_simulation_client-0.20260114.79.dist-info/METADATA,sha256=ZjwM3wxGzPUt9Vq7UBWhdlapdpTHYeIuHzGzoF6wbxc,5909
27
+ policyengine_api_simulation_client-0.20260114.79.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
28
+ policyengine_api_simulation_client-0.20260114.79.dist-info/RECORD,,
@@ -1,91 +0,0 @@
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.baseline_reform_values import BaselineReformValues
11
-
12
-
13
- T = TypeVar("T", bound="AgeGroupBaselineReformValues")
14
-
15
-
16
- @_attrs_define
17
- class AgeGroupBaselineReformValues:
18
- """
19
- Attributes:
20
- child (BaselineReformValues):
21
- adult (BaselineReformValues):
22
- senior (BaselineReformValues):
23
- all_ (BaselineReformValues):
24
- """
25
-
26
- child: BaselineReformValues
27
- adult: BaselineReformValues
28
- senior: BaselineReformValues
29
- all_: BaselineReformValues
30
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
-
32
- def to_dict(self) -> dict[str, Any]:
33
- child = self.child.to_dict()
34
-
35
- adult = self.adult.to_dict()
36
-
37
- senior = self.senior.to_dict()
38
-
39
- all_ = self.all_.to_dict()
40
-
41
- field_dict: dict[str, Any] = {}
42
- field_dict.update(self.additional_properties)
43
- field_dict.update(
44
- {
45
- "child": child,
46
- "adult": adult,
47
- "senior": senior,
48
- "all": all_,
49
- }
50
- )
51
-
52
- return field_dict
53
-
54
- @classmethod
55
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
- from ..models.baseline_reform_values import BaselineReformValues
57
-
58
- d = dict(src_dict)
59
- child = BaselineReformValues.from_dict(d.pop("child"))
60
-
61
- adult = BaselineReformValues.from_dict(d.pop("adult"))
62
-
63
- senior = BaselineReformValues.from_dict(d.pop("senior"))
64
-
65
- all_ = BaselineReformValues.from_dict(d.pop("all"))
66
-
67
- age_group_baseline_reform_values = cls(
68
- child=child,
69
- adult=adult,
70
- senior=senior,
71
- all_=all_,
72
- )
73
-
74
- age_group_baseline_reform_values.additional_properties = d
75
- return age_group_baseline_reform_values
76
-
77
- @property
78
- def additional_keys(self) -> list[str]:
79
- return list(self.additional_properties.keys())
80
-
81
- def __getitem__(self, key: str) -> Any:
82
- return self.additional_properties[key]
83
-
84
- def __setitem__(self, key: str, value: Any) -> None:
85
- self.additional_properties[key] = value
86
-
87
- def __delitem__(self, key: str) -> None:
88
- del self.additional_properties[key]
89
-
90
- def __contains__(self, key: str) -> bool:
91
- return key in self.additional_properties
@@ -1,101 +0,0 @@
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="BudgetaryImpact")
10
-
11
-
12
- @_attrs_define
13
- class BudgetaryImpact:
14
- """
15
- Attributes:
16
- budgetary_impact (float):
17
- tax_revenue_impact (float):
18
- state_tax_revenue_impact (float):
19
- benefit_spending_impact (float):
20
- households (float):
21
- baseline_net_income (float):
22
- """
23
-
24
- budgetary_impact: float
25
- tax_revenue_impact: float
26
- state_tax_revenue_impact: float
27
- benefit_spending_impact: float
28
- households: float
29
- baseline_net_income: float
30
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
-
32
- def to_dict(self) -> dict[str, Any]:
33
- budgetary_impact = self.budgetary_impact
34
-
35
- tax_revenue_impact = self.tax_revenue_impact
36
-
37
- state_tax_revenue_impact = self.state_tax_revenue_impact
38
-
39
- benefit_spending_impact = self.benefit_spending_impact
40
-
41
- households = self.households
42
-
43
- baseline_net_income = self.baseline_net_income
44
-
45
- field_dict: dict[str, Any] = {}
46
- field_dict.update(self.additional_properties)
47
- field_dict.update(
48
- {
49
- "budgetary_impact": budgetary_impact,
50
- "tax_revenue_impact": tax_revenue_impact,
51
- "state_tax_revenue_impact": state_tax_revenue_impact,
52
- "benefit_spending_impact": benefit_spending_impact,
53
- "households": households,
54
- "baseline_net_income": baseline_net_income,
55
- }
56
- )
57
-
58
- return field_dict
59
-
60
- @classmethod
61
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
62
- d = dict(src_dict)
63
- budgetary_impact = d.pop("budgetary_impact")
64
-
65
- tax_revenue_impact = d.pop("tax_revenue_impact")
66
-
67
- state_tax_revenue_impact = d.pop("state_tax_revenue_impact")
68
-
69
- benefit_spending_impact = d.pop("benefit_spending_impact")
70
-
71
- households = d.pop("households")
72
-
73
- baseline_net_income = d.pop("baseline_net_income")
74
-
75
- budgetary_impact = cls(
76
- budgetary_impact=budgetary_impact,
77
- tax_revenue_impact=tax_revenue_impact,
78
- state_tax_revenue_impact=state_tax_revenue_impact,
79
- benefit_spending_impact=benefit_spending_impact,
80
- households=households,
81
- baseline_net_income=baseline_net_income,
82
- )
83
-
84
- budgetary_impact.additional_properties = d
85
- return budgetary_impact
86
-
87
- @property
88
- def additional_keys(self) -> list[str]:
89
- return list(self.additional_properties.keys())
90
-
91
- def __getitem__(self, key: str) -> Any:
92
- return self.additional_properties[key]
93
-
94
- def __setitem__(self, key: str, value: Any) -> None:
95
- self.additional_properties[key] = value
96
-
97
- def __delitem__(self, key: str) -> None:
98
- del self.additional_properties[key]
99
-
100
- def __contains__(self, key: str) -> bool:
101
- return key in self.additional_properties
@@ -1,75 +0,0 @@
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.cliff_impact_in_simulation import CliffImpactInSimulation
11
-
12
-
13
- T = TypeVar("T", bound="CliffImpact")
14
-
15
-
16
- @_attrs_define
17
- class CliffImpact:
18
- """
19
- Attributes:
20
- baseline (CliffImpactInSimulation):
21
- reform (CliffImpactInSimulation):
22
- """
23
-
24
- baseline: CliffImpactInSimulation
25
- reform: CliffImpactInSimulation
26
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
-
28
- def to_dict(self) -> dict[str, Any]:
29
- baseline = self.baseline.to_dict()
30
-
31
- reform = self.reform.to_dict()
32
-
33
- field_dict: dict[str, Any] = {}
34
- field_dict.update(self.additional_properties)
35
- field_dict.update(
36
- {
37
- "baseline": baseline,
38
- "reform": reform,
39
- }
40
- )
41
-
42
- return field_dict
43
-
44
- @classmethod
45
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
46
- from ..models.cliff_impact_in_simulation import CliffImpactInSimulation
47
-
48
- d = dict(src_dict)
49
- baseline = CliffImpactInSimulation.from_dict(d.pop("baseline"))
50
-
51
- reform = CliffImpactInSimulation.from_dict(d.pop("reform"))
52
-
53
- cliff_impact = cls(
54
- baseline=baseline,
55
- reform=reform,
56
- )
57
-
58
- cliff_impact.additional_properties = d
59
- return cliff_impact
60
-
61
- @property
62
- def additional_keys(self) -> list[str]:
63
- return list(self.additional_properties.keys())
64
-
65
- def __getitem__(self, key: str) -> Any:
66
- return self.additional_properties[key]
67
-
68
- def __setitem__(self, key: str, value: Any) -> None:
69
- self.additional_properties[key] = value
70
-
71
- def __delitem__(self, key: str) -> None:
72
- del self.additional_properties[key]
73
-
74
- def __contains__(self, key: str) -> bool:
75
- return key in self.additional_properties
@@ -1,69 +0,0 @@
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="CliffImpactInSimulation")
10
-
11
-
12
- @_attrs_define
13
- class CliffImpactInSimulation:
14
- """
15
- Attributes:
16
- cliff_gap (float):
17
- cliff_share (float):
18
- """
19
-
20
- cliff_gap: float
21
- cliff_share: float
22
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
-
24
- def to_dict(self) -> dict[str, Any]:
25
- cliff_gap = self.cliff_gap
26
-
27
- cliff_share = self.cliff_share
28
-
29
- field_dict: dict[str, Any] = {}
30
- field_dict.update(self.additional_properties)
31
- field_dict.update(
32
- {
33
- "cliff_gap": cliff_gap,
34
- "cliff_share": cliff_share,
35
- }
36
- )
37
-
38
- return field_dict
39
-
40
- @classmethod
41
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
- d = dict(src_dict)
43
- cliff_gap = d.pop("cliff_gap")
44
-
45
- cliff_share = d.pop("cliff_share")
46
-
47
- cliff_impact_in_simulation = cls(
48
- cliff_gap=cliff_gap,
49
- cliff_share=cliff_share,
50
- )
51
-
52
- cliff_impact_in_simulation.additional_properties = d
53
- return cliff_impact_in_simulation
54
-
55
- @property
56
- def additional_keys(self) -> list[str]:
57
- return list(self.additional_properties.keys())
58
-
59
- def __getitem__(self, key: str) -> Any:
60
- return self.additional_properties[key]
61
-
62
- def __setitem__(self, key: str, value: Any) -> None:
63
- self.additional_properties[key] = value
64
-
65
- def __delitem__(self, key: str) -> None:
66
- del self.additional_properties[key]
67
-
68
- def __contains__(self, key: str) -> bool:
69
- return key in self.additional_properties