openapi-python-client 0.28.4__py3-none-any.whl → 0.29.1__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 (92) hide show
  1. openapi_python_client/__init__.py +26 -17
  2. openapi_python_client/cli.py +1 -2
  3. openapi_python_client/config.py +5 -3
  4. openapi_python_client/parser/bodies.py +14 -23
  5. openapi_python_client/parser/openapi.py +58 -48
  6. openapi_python_client/parser/properties/__init__.py +34 -33
  7. openapi_python_client/parser/properties/any.py +11 -10
  8. openapi_python_client/parser/properties/boolean.py +13 -13
  9. openapi_python_client/parser/properties/const.py +11 -10
  10. openapi_python_client/parser/properties/date.py +15 -14
  11. openapi_python_client/parser/properties/datetime.py +15 -14
  12. openapi_python_client/parser/properties/enum_property.py +23 -20
  13. openapi_python_client/parser/properties/file.py +11 -10
  14. openapi_python_client/parser/properties/float.py +13 -13
  15. openapi_python_client/parser/properties/int.py +11 -11
  16. openapi_python_client/parser/properties/list_property.py +22 -22
  17. openapi_python_client/parser/properties/literal_enum_property.py +20 -20
  18. openapi_python_client/parser/properties/merge_properties.py +9 -6
  19. openapi_python_client/parser/properties/model_property.py +34 -33
  20. openapi_python_client/parser/properties/none.py +11 -11
  21. openapi_python_client/parser/properties/protocol.py +42 -32
  22. openapi_python_client/parser/properties/schemas.py +30 -23
  23. openapi_python_client/parser/properties/string.py +10 -11
  24. openapi_python_client/parser/properties/union.py +24 -22
  25. openapi_python_client/parser/properties/uuid.py +11 -11
  26. openapi_python_client/parser/responses.py +30 -23
  27. openapi_python_client/schema/__init__.py +2 -1
  28. openapi_python_client/schema/data_type.py +2 -2
  29. openapi_python_client/schema/openapi_schema_pydantic/callback.py +3 -1
  30. openapi_python_client/schema/openapi_schema_pydantic/components.py +10 -9
  31. openapi_python_client/schema/openapi_schema_pydantic/contact.py +5 -3
  32. openapi_python_client/schema/openapi_schema_pydantic/discriminator.py +4 -2
  33. openapi_python_client/schema/openapi_schema_pydantic/encoding.py +4 -3
  34. openapi_python_client/schema/openapi_schema_pydantic/example.py +5 -3
  35. openapi_python_client/schema/openapi_schema_pydantic/external_documentation.py +4 -2
  36. openapi_python_client/schema/openapi_schema_pydantic/header.py +20 -6
  37. openapi_python_client/schema/openapi_schema_pydantic/info.py +5 -4
  38. openapi_python_client/schema/openapi_schema_pydantic/license.py +4 -2
  39. openapi_python_client/schema/openapi_schema_pydantic/link.py +5 -4
  40. openapi_python_client/schema/openapi_schema_pydantic/media_type.py +3 -2
  41. openapi_python_client/schema/openapi_schema_pydantic/oauth_flow.py +6 -4
  42. openapi_python_client/schema/openapi_schema_pydantic/open_api.py +5 -3
  43. openapi_python_client/schema/openapi_schema_pydantic/operation.py +6 -5
  44. openapi_python_client/schema/openapi_schema_pydantic/parameter.py +6 -5
  45. openapi_python_client/schema/openapi_schema_pydantic/path_item.py +5 -3
  46. openapi_python_client/schema/openapi_schema_pydantic/paths.py +2 -1
  47. openapi_python_client/schema/openapi_schema_pydantic/reference.py +3 -1
  48. openapi_python_client/schema/openapi_schema_pydantic/request_body.py +3 -2
  49. openapi_python_client/schema/openapi_schema_pydantic/response.py +5 -4
  50. openapi_python_client/schema/openapi_schema_pydantic/responses.py +2 -1
  51. openapi_python_client/schema/openapi_schema_pydantic/schema.py +7 -6
  52. openapi_python_client/schema/openapi_schema_pydantic/security_requirement.py +3 -1
  53. openapi_python_client/schema/openapi_schema_pydantic/security_scheme.py +8 -7
  54. openapi_python_client/schema/openapi_schema_pydantic/server.py +4 -3
  55. openapi_python_client/schema/openapi_schema_pydantic/server_variable.py +5 -3
  56. openapi_python_client/schema/openapi_schema_pydantic/tag.py +3 -2
  57. openapi_python_client/schema/openapi_schema_pydantic/xml.py +5 -3
  58. openapi_python_client/schema/parameter_location.py +7 -22
  59. openapi_python_client/schema/ref.py +52 -0
  60. openapi_python_client/schema/untrusted_string.py +56 -0
  61. openapi_python_client/strings.py +245 -0
  62. openapi_python_client/templates/README.md.jinja +3 -3
  63. openapi_python_client/templates/client.py.jinja +5 -5
  64. openapi_python_client/templates/endpoint_macros.py.jinja +18 -18
  65. openapi_python_client/templates/endpoint_module.py.jinja +20 -14
  66. openapi_python_client/templates/helpers.jinja +3 -7
  67. openapi_python_client/templates/literal_enum.py.jinja +3 -3
  68. openapi_python_client/templates/model.py.jinja +18 -18
  69. openapi_python_client/templates/package_init.py.jinja +2 -2
  70. openapi_python_client/templates/property_templates/const_property.py.jinja +3 -3
  71. openapi_python_client/templates/property_templates/date_property.py.jinja +2 -2
  72. openapi_python_client/templates/property_templates/datetime_property.py.jinja +2 -2
  73. openapi_python_client/templates/property_templates/enum_property.py.jinja +1 -1
  74. openapi_python_client/templates/property_templates/file_property.py.jinja +1 -1
  75. openapi_python_client/templates/property_templates/list_property.py.jinja +3 -3
  76. openapi_python_client/templates/property_templates/literal_enum_property.py.jinja +2 -2
  77. openapi_python_client/templates/property_templates/model_property.py.jinja +1 -1
  78. openapi_python_client/templates/property_templates/property_macros.py.jinja +1 -1
  79. openapi_python_client/templates/property_templates/union_property.py.jinja +9 -9
  80. openapi_python_client/templates/property_templates/uuid_property.py.jinja +1 -1
  81. openapi_python_client/templates/pyproject_pdm.toml.jinja +4 -5
  82. openapi_python_client/templates/pyproject_poetry.toml.jinja +4 -5
  83. openapi_python_client/templates/pyproject_uv.toml.jinja +5 -6
  84. openapi_python_client/templates/setup.py.jinja +4 -4
  85. openapi_python_client/templates/str_enum.py.jinja +2 -2
  86. {openapi_python_client-0.28.4.dist-info → openapi_python_client-0.29.1.dist-info}/METADATA +6 -9
  87. openapi_python_client-0.29.1.dist-info/RECORD +115 -0
  88. {openapi_python_client-0.28.4.dist-info → openapi_python_client-0.29.1.dist-info}/WHEEL +1 -1
  89. openapi_python_client/utils.py +0 -122
  90. openapi_python_client-0.28.4.dist-info/RECORD +0 -113
  91. {openapi_python_client-0.28.4.dist-info → openapi_python_client-0.29.1.dist-info}/entry_points.txt +0 -0
  92. {openapi_python_client-0.28.4.dist-info → openapi_python_client-0.29.1.dist-info}/licenses/LICENSE +0 -0
@@ -25,21 +25,21 @@ if TYPE_CHECKING:
25
25
 
26
26
 
27
27
  {% if model.additional_properties %}
28
- {% set additional_property_type = 'Any' if model.additional_properties == True else model.additional_properties.get_type_string() %}
28
+ {% set additional_property_type = 'Any' if model.additional_properties == True else model.additional_properties.get_type_string() | as_unembedded_code %}
29
29
  {% endif %}
30
30
 
31
31
  {% set class_name = model.class_info.name %}
32
32
  {% set module_name = model.class_info.module_name %}
33
33
 
34
- {% from "helpers.jinja" import safe_docstring %}
34
+ {% from "helpers.jinja" import docstring %}
35
35
 
36
36
  T = TypeVar("T", bound="{{ class_name }}")
37
37
 
38
38
  {% macro class_docstring_content(model) %}
39
- {% if model.title %}{{ model.title | wordwrap(116) }}
39
+ {% if model.title %}{{ model.title | safe_for_docstring | wordwrap(116) }}
40
40
 
41
41
  {% endif -%}
42
- {%- if model.description %}{{ model.description | wordwrap(116) }}
42
+ {%- if model.description %}{{ model.description | safe_for_docstring | wordwrap(116) }}
43
43
 
44
44
  {% endif %}
45
45
  {% if not model.title and not model.description %}
@@ -48,7 +48,7 @@ T = TypeVar("T", bound="{{ class_name }}")
48
48
  {% endif %}
49
49
  {% if model.example %}
50
50
  Example:
51
- {{ model.example | string | wordwrap(112) | indent(12) }}
51
+ {{ model.example | safe_for_docstring | wordwrap(112) | indent(12) }}
52
52
 
53
53
  {% endif %}
54
54
  {% if (not config.docstrings_on_attributes) and (model.required_properties or model.optional_properties) %}
@@ -60,16 +60,16 @@ T = TypeVar("T", bound="{{ class_name }}")
60
60
 
61
61
  {% macro declare_property(property) %}
62
62
  {%- if config.docstrings_on_attributes and property.description -%}
63
- {{ property.to_string() }}
64
- {{ safe_docstring(property.description, omit_if_empty=True) | wordwrap(112) }}
63
+ {{ property.to_string() | as_unembedded_code }}
64
+ {{ docstring(property.description | safe_for_docstring) | wordwrap(112) }}
65
65
  {%- else -%}
66
- {{ property.to_string() }}
66
+ {{ property.to_string() | as_unembedded_code }}
67
67
  {%- endif -%}
68
68
  {% endmacro %}
69
69
 
70
70
  @_attrs_define
71
71
  class {{ class_name }}:
72
- {{ safe_docstring(class_docstring_content(model), omit_if_empty=config.docstrings_on_attributes) | indent(4) }}
72
+ {{ docstring(class_docstring_content(model)) | indent(4) }}
73
73
 
74
74
  {% for property in model.required_properties + model.optional_properties %}
75
75
  {% if property.default is none and property.required %}
@@ -128,7 +128,7 @@ field_dict.update(self.additional_properties)
128
128
  field_dict.update({
129
129
  {% for property in model.required_properties + model.optional_properties %}
130
130
  {% if property.required %}
131
- "{{ property.name }}": {{ property.python_name }},
131
+ "{{ property.name | in_double_quote_literal }}": {{ property.python_name }},
132
132
  {% endif %}
133
133
  {% endfor %}
134
134
  })
@@ -136,7 +136,7 @@ field_dict.update({
136
136
  {% for property in model.optional_properties %}
137
137
  {% if not property.required %}
138
138
  if {{ property.python_name }} is not UNSET:
139
- field_dict["{{ property.name }}"] = {{ property.python_name }}
139
+ field_dict["{{ property.name | in_double_quote_literal }}"] = {{ property.python_name }}
140
140
  {% endif %}
141
141
  {% endfor %}
142
142
 
@@ -145,19 +145,19 @@ return field_dict
145
145
 
146
146
  def to_dict(self) -> dict[str, Any]:
147
147
  {% for lazy_import in model.lazy_imports | sort %}
148
- {{ lazy_import }}
148
+ {{ lazy_import }} # noqa: PLC0415
149
149
  {% endfor %}
150
150
  {{ _to_dict() | indent(8) }}
151
151
 
152
152
  {% if model.is_multipart_body %}
153
153
  def to_multipart(self) -> types.RequestFiles:
154
154
  {% for lazy_import in model.lazy_imports | sort %}
155
- {{ lazy_import }}
155
+ {{ lazy_import }} # noqa: PLC0415
156
156
  {% endfor %}
157
157
  files: types.RequestFiles = []
158
158
 
159
159
  {% for property in model.required_properties + model.optional_properties %}
160
- {% set destination = "\"" + property.name + "\"" %}
160
+ {% set destination = "\"" + (property.name | in_double_quote_literal) + "\"" %}
161
161
  {{ multipart(property, "self." + property.python_name, destination) | indent(8) }}
162
162
 
163
163
  {% endfor %}
@@ -174,15 +174,15 @@ return field_dict
174
174
  @classmethod
175
175
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
176
176
  {% for lazy_import in model.lazy_imports | sort %}
177
- {{ lazy_import }}
177
+ {{ lazy_import }} # noqa: PLC0415
178
178
  {% endfor %}
179
179
  {% if (model.required_properties or model.optional_properties or model.additional_properties) %}
180
180
  d = dict(src_dict)
181
181
  {% for property in model.required_properties + model.optional_properties %}
182
182
  {% if property.required %}
183
- {% set property_source = 'd.pop("' + property.name + '")' %}
183
+ {% set property_source = 'd.pop("' + (property.name | in_double_quote_literal) + '")' %}
184
184
  {% else %}
185
- {% set property_source = 'd.pop("' + property.name + '", UNSET)' %}
185
+ {% set property_source = 'd.pop("' + (property.name | in_double_quote_literal) + '", UNSET)' %}
186
186
  {% endif %}
187
187
  {% import "property_templates/" + property.template as prop_template %}
188
188
  {% if prop_template.construct %}
@@ -205,7 +205,7 @@ return field_dict
205
205
 
206
206
  {% if model.additional_properties.lazy_imports %}
207
207
  {% for lazy_import in model.additional_properties.lazy_imports | sort %}
208
- {{ lazy_import }}
208
+ {{ lazy_import }} # noqa: PLC0415
209
209
  {% endfor %}
210
210
  {% endif %}
211
211
  {% else %}
@@ -1,6 +1,6 @@
1
- {% from "helpers.jinja" import safe_docstring %}
1
+ {% from "helpers.jinja" import docstring %}
2
2
 
3
- {{ safe_docstring(package_description) }}
3
+ {{ docstring(package_description | safe_for_docstring) }}
4
4
  from .client import AuthenticatedClient, Client
5
5
 
6
6
  __all__ = (
@@ -1,7 +1,7 @@
1
1
  {% macro construct(property, source) %}
2
- {{ property.python_name }} = cast({{ property.get_type_string() }} , {{ source }})
3
- if {{ property.python_name }} != {{ property.value.python_code }}{% if not property.required %}and not isinstance({{ property.python_name }}, Unset){% endif %}:
4
- raise ValueError(f"{{ property.name }} must match const {{ property.value.python_code }}, got '{{'{' + property.python_name + '}' }}'")
2
+ {{ property.python_name }} = cast({{ property.get_type_string() | as_unembedded_code }} , {{ source }})
3
+ if {{ property.python_name }} != {{ property.value.python_code | as_unembedded_code }}{% if not property.required %}and not isinstance({{ property.python_name }}, Unset){% endif %}:
4
+ raise ValueError(f"{{ property.name | in_f_string_literal }} must match const {{ property.value.python_code | in_f_string_literal }}, got '{{'{' + property.python_name + '}' }}'")
5
5
  {%- endmacro %}
6
6
 
7
7
  {% macro multipart(property, source, name) %}
@@ -1,5 +1,5 @@
1
1
  {% macro construct_function(property, source) %}
2
- isoparse({{ source }}).date()
2
+ datetime.date.fromisoformat({{ source }})
3
3
  {% endmacro %}
4
4
 
5
5
  {% from "property_templates/property_macros.py.jinja" import construct_template %}
@@ -17,7 +17,7 @@ isoparse({{ source }}).date()
17
17
  {%- else %}
18
18
  {% if not skip_unset %}
19
19
  {% if declare_type %}
20
- {% set type_annotation = property.get_type_string(json=True) %}
20
+ {% set type_annotation = property.get_type_string(json=True) | as_unembedded_code %}
21
21
  {{ destination }}: {{ type_annotation }} = UNSET
22
22
  {% else %}
23
23
  {{ destination }} = UNSET
@@ -1,5 +1,5 @@
1
1
  {% macro construct_function(property, source) %}
2
- isoparse({{ source }})
2
+ datetime.datetime.fromisoformat({{ source }})
3
3
  {% endmacro %}
4
4
 
5
5
  {% from "property_templates/property_macros.py.jinja" import construct_template %}
@@ -17,7 +17,7 @@ isoparse({{ source }})
17
17
  {%- else %}
18
18
  {% if not skip_unset %}
19
19
  {% if declare_type %}
20
- {% set type_annotation = property.get_type_string(json=True) %}
20
+ {% set type_annotation = property.get_type_string(json=True) | as_unembedded_code %}
21
21
  {{ destination }}: {{ type_annotation }} = UNSET
22
22
  {% else %}
23
23
  {{ destination }} = UNSET
@@ -12,7 +12,7 @@
12
12
 
13
13
  {% macro transform(property, source, destination, declare_type=True, skip_unset=False) %}
14
14
  {% set transformed = source + ".value" %}
15
- {% set type_string = property.get_type_string(json=True) %}
15
+ {% set type_string = property.get_type_string(json=True) | as_unembedded_code %}
16
16
  {% if property.required %}
17
17
  {{ destination }} = {{ transformed }}
18
18
  {%- else %}
@@ -16,7 +16,7 @@ File(
16
16
  {% if property.required %}
17
17
  {{ destination }} = {{ source }}.to_tuple()
18
18
  {% else %}
19
- {% if not skip_unset %}{{ destination }}{% if declare_type %}: {{ property.get_type_string(json=True) }}{% endif %} = UNSET{% endif +%}
19
+ {% if not skip_unset %}{{ destination }}{% if declare_type %}: {{ property.get_type_string(json=True) | as_unembedded_code }}{% endif %} = UNSET{% endif +%}
20
20
  if not isinstance({{ source }}, Unset):
21
21
  {{ destination }} = {{ source }}.to_tuple()
22
22
  {% endif %}
@@ -11,7 +11,7 @@ for {{ inner_source }} in (_{{ property.python_name }}):
11
11
  {{ property.python_name }}.append({{ inner_property.python_name }})
12
12
  {% else %}
13
13
  _{{ property.python_name }} = {{ source }}
14
- {{ property.python_name }}: {{ property.get_type_string() }} = UNSET
14
+ {{ property.python_name }}: {{ property.get_type_string() | as_unembedded_code }} = UNSET
15
15
  if _{{ property.python_name }} is not UNSET:
16
16
  {{ property.python_name }} = []
17
17
  for {{ inner_source }} in _{{ property.python_name }}:
@@ -19,7 +19,7 @@ if _{{ property.python_name }} is not UNSET:
19
19
  {{ property.python_name }}.append({{ inner_property.python_name }})
20
20
  {% endif %}
21
21
  {% else %}
22
- {{ property.python_name }} = cast({{ property.get_type_string(no_optional=True) }}, {{ source }})
22
+ {{ property.python_name }} = cast({{ property.get_type_string(no_optional=True) | as_unembedded_code }}, {{ source }})
23
23
  {% endif %}
24
24
  {% endmacro %}
25
25
 
@@ -41,7 +41,7 @@ for {{ inner_source }} in {{ source }}:
41
41
 
42
42
  {% macro transform(property, source, destination, declare_type=True, skip_unset=False) %}
43
43
  {% set inner_property = property.inner_property %}
44
- {% set type_string = property.get_type_string(json=True) %}
44
+ {% set type_string = property.get_type_string(json=True) | as_unembedded_code %}
45
45
  {% if property.required %}
46
46
  {{ _transform(property, source, destination, "to_dict") }}
47
47
  {% else %}
@@ -8,10 +8,10 @@ check_{{ property.get_class_name_snake_case() }}({{ source }})
8
8
  {{ construct_template(construct_function, property, source) }}
9
9
  {% endmacro %}
10
10
 
11
- {% macro check_type_for_construct(property, source) %}isinstance({{ source }}, {{ property.get_instance_type_string() }}){% endmacro %}
11
+ {% macro check_type_for_construct(property, source) %}isinstance({{ source }}, {{ property.get_instance_type_string() | as_unembedded_code }}){% endmacro %}
12
12
 
13
13
  {% macro transform(property, source, destination, declare_type=True, skip_unset=False) %}
14
- {% set type_string = property.get_type_string(json=True) %}
14
+ {% set type_string = property.get_type_string(json=True) | as_unembedded_code %}
15
15
  {% if property.required %}
16
16
  {{ destination }}{% if declare_type %}: {{ type_string }}{% endif %} = {{ source }}
17
17
  {%- else %}
@@ -12,7 +12,7 @@
12
12
 
13
13
  {% macro transform(property, source, destination, declare_type=True, skip_unset=False) %}
14
14
  {% set transformed = source + ".to_dict()" %}
15
- {% set type_string = property.get_type_string(json=True) %}
15
+ {% set type_string = property.get_type_string(json=True) | as_unembedded_code %}
16
16
  {% if property.required %}
17
17
  {{ destination }} = {{ transformed }}
18
18
  {%- else %}
@@ -3,7 +3,7 @@
3
3
  {{ property.python_name }} = {{ construct_function(property, source) }}
4
4
  {% else %}{# Must be non-required #}
5
5
  _{{ property.python_name }} = {{ source }}
6
- {{ property.python_name }}: {{ property.get_type_string() }}
6
+ {{ property.python_name }}: {{ property.get_type_string() | as_unembedded_code }}
7
7
  {% if not property.required %}
8
8
  if isinstance(_{{ property.python_name }}, Unset):
9
9
  {{ property.python_name }} = UNSET
@@ -1,10 +1,10 @@
1
1
  {% macro construct(property, source) %}
2
- def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_string() }}:
3
- {% if "None" in property.get_type_strings_in_union(json=True) %}
2
+ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_string() | as_unembedded_code }}:
3
+ {% if PythonCode("None") in property.get_type_strings_in_union(json=True) %}
4
4
  if data is None:
5
5
  return data
6
6
  {% endif %}
7
- {% if "Unset" in property.get_type_strings_in_union(json=True) %}
7
+ {% if PythonCode("Unset") in property.get_type_strings_in_union(json=True) %}
8
8
  if isinstance(data, Unset):
9
9
  return data
10
10
  {% endif %}
@@ -33,7 +33,7 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri
33
33
  {% endif %}
34
34
  {% endfor %}
35
35
  {% if ns.contains_unmodified_properties %}
36
- return cast({{ property.get_type_string() }}, data)
36
+ return cast({{ property.get_type_string() | as_unembedded_code }}, data)
37
37
  {% endif %}
38
38
 
39
39
  {{ property.python_name }} = _parse_{{ property.python_name }}({{ source }})
@@ -41,7 +41,7 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri
41
41
 
42
42
  {% macro transform(property, source, destination, declare_type=True, skip_unset=False) %}
43
43
  {% set ns = namespace(contains_properties_without_transform = false, contains_modified_properties = not property.required, has_if = false) %}
44
- {% if declare_type %}{{ destination }}: {{ property.get_type_string(json=True) }}{% endif %}
44
+ {% if declare_type %}{{ destination }}: {{ property.get_type_string(json=True) | as_unembedded_code }}{% endif %}
45
45
 
46
46
  {% if not property.required and not skip_unset %}
47
47
  if isinstance({{ source }}, Unset):
@@ -57,10 +57,10 @@ if isinstance({{ source }}, Unset):
57
57
  {% set ns.contains_modified_properties = true %}
58
58
  {% endif %}
59
59
  {% if not ns.has_if %}
60
- if isinstance({{ source }}, {{ inner_property.get_instance_type_string() }}):
60
+ if isinstance({{ source }}, {{ inner_property.get_instance_type_string() | as_unembedded_code }}):
61
61
  {% set ns.has_if = true %}
62
62
  {% elif not loop.last or ns.contains_properties_without_transform %}
63
- elif isinstance({{ source }}, {{ inner_property.get_instance_type_string() }}):
63
+ elif isinstance({{ source }}, {{ inner_property.get_instance_type_string() | as_unembedded_code }}):
64
64
  {% else %}
65
65
  else:
66
66
  {% endif %}
@@ -76,10 +76,10 @@ else:
76
76
 
77
77
 
78
78
  {% macro instance_check(inner_property, source) %}
79
- {% if inner_property.get_instance_type_string() == "None" %}
79
+ {% if inner_property.get_instance_type_string() == PythonCode("None") %}
80
80
  if {{ source }} is None:
81
81
  {% else %}
82
- if isinstance({{ source }}, {{ inner_property.get_instance_type_string() }}):
82
+ if isinstance({{ source }}, {{ inner_property.get_instance_type_string() | as_unembedded_code }}):
83
83
  {% endif %}
84
84
  {% endmacro %}
85
85
 
@@ -17,7 +17,7 @@ UUID({{ source }})
17
17
  {%- else %}
18
18
  {% if not skip_unset %}
19
19
  {% if declare_type %}
20
- {% set type_annotation = property.get_type_string(json=True) %}
20
+ {% set type_annotation = property.get_type_string(json=True) | as_unembedded_code %}
21
21
  {{ destination }}: {{ type_annotation }} = UNSET
22
22
  {% else %}
23
23
  {{ destination }} = UNSET
@@ -1,14 +1,13 @@
1
1
  [project]
2
2
  name = "{{ project_name }}"
3
- version = "{{ package_version }}"
4
- description = "{{ package_description }}"
3
+ version = "{{ package_version | in_double_quote_literal }}"
4
+ description = "{{ package_description | in_double_quote_literal }}"
5
5
  authors = []
6
6
  readme = "README.md"
7
- requires-python = ">=3.10"
7
+ requires-python = ">=3.11"
8
8
  dependencies = [
9
- "httpx>=0.23.0,<0.29.0",
9
+ "httpx>=0.23.1,<0.29.0",
10
10
  "attrs>=22.2.0",
11
- "python-dateutil>=2.8.0",
12
11
  ]
13
12
 
14
13
  [tool.pdm]
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "{{ project_name }}"
3
- version = "{{ package_version }}"
4
- description = "{{ package_description }}"
3
+ version = "{{ package_version | in_double_quote_literal }}"
4
+ description = "{{ package_description | in_double_quote_literal }}"
5
5
  authors = []
6
6
  readme = "README.md"
7
7
  packages = [
@@ -10,10 +10,9 @@ packages = [
10
10
  include = ["{{ package_name }}/py.typed"]
11
11
 
12
12
  [tool.poetry.dependencies]
13
- python = "^3.10"
14
- httpx = ">=0.23.0,<0.29.0"
13
+ python = "^3.11"
14
+ httpx = ">=0.23.1,<0.29.0"
15
15
  attrs = ">=22.2.0"
16
- python-dateutil = "^2.8.0"
17
16
 
18
17
  [build-system]
19
18
  requires = ["poetry-core>=2.0.0,<3.0.0"]
@@ -1,14 +1,13 @@
1
1
  [project]
2
2
  name = "{{ project_name }}"
3
- version = "{{ package_version }}"
4
- description = "{{ package_description }}"
3
+ version = "{{ package_version | in_double_quote_literal }}"
4
+ description = "{{ package_description | in_double_quote_literal }}"
5
5
  authors = []
6
- requires-python = ">=3.10"
6
+ requires-python = ">=3.11"
7
7
  readme = "README.md"
8
8
  dependencies = [
9
- "httpx>=0.23.0,<0.29.0",
9
+ "httpx>=0.23.1,<0.29.0",
10
10
  "attrs>=22.2.0",
11
- "python-dateutil>=2.8.0,<3",
12
11
  ]
13
12
 
14
13
  [tool.uv.build-backend]
@@ -16,5 +15,5 @@ module-name = "{{ package_name }}"
16
15
  module-root = ""
17
16
 
18
17
  [build-system]
19
- requires = ["uv_build>=0.11.0,<0.12.0"]
18
+ requires = ["uv_build>=0.12.0,<0.13.0"]
20
19
  build-backend = "uv_build"
@@ -7,12 +7,12 @@ long_description = (here / "README.md").read_text(encoding="utf-8")
7
7
 
8
8
  setup(
9
9
  name="{{ project_name }}",
10
- version="{{ package_version }}",
11
- description="{{ package_description }}",
10
+ version="{{ package_version | in_double_quote_literal }}",
11
+ description="{{ package_description | in_double_quote_literal }}",
12
12
  long_description=long_description,
13
13
  long_description_content_type="text/markdown",
14
14
  packages=find_packages(),
15
- python_requires=">=3.10, <4",
16
- install_requires=["httpx >= 0.23.0, < 0.29.0", "attrs >= 22.2.0", "python-dateutil >= 2.8.0, < 3"],
15
+ python_requires=">=3.11, <4",
16
+ install_requires=["httpx >= 0.23.1, < 0.29.0", "attrs >= 22.2.0"],
17
17
  package_data={"{{ package_name }}": ["py.typed"]},
18
18
  )
@@ -1,6 +1,6 @@
1
- from enum import Enum
1
+ from enum import StrEnum
2
2
 
3
- class {{ enum.class_info.name }}(str, Enum):
3
+ class {{ enum.class_info.name }}(StrEnum):
4
4
  {% for key, value in enum.values|dictsort(true) %}
5
5
  {{ key }} = "{{ value }}"
6
6
  {% endfor %}
@@ -1,34 +1,31 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: openapi-python-client
3
- Version: 0.28.4
3
+ Version: 0.29.1
4
4
  Summary: Generate modern Python clients from OpenAPI
5
5
  Project-URL: repository, https://github.com/openapi-generators/openapi-python-client
6
6
  Author-email: Dylan Anthony <contact@dylananthony.com>
7
- License: MIT
7
+ License-Expression: MIT
8
8
  License-File: LICENSE
9
9
  Keywords: Client,Generator,OpenAPI
10
10
  Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: MIT License
13
12
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
13
  Classifier: Programming Language :: Python :: 3.11
16
14
  Classifier: Programming Language :: Python :: 3.12
17
15
  Classifier: Programming Language :: Python :: 3.13
18
16
  Classifier: Programming Language :: Python :: 3.14
19
17
  Classifier: Topic :: Software Development :: Code Generators
20
18
  Classifier: Typing :: Typed
21
- Requires-Python: <4.0,>=3.10
19
+ Requires-Python: <4.0,>=3.11
22
20
  Requires-Dist: attrs>=22.2.0
23
21
  Requires-Dist: colorama>=0.4.3; sys_platform == 'win32'
24
- Requires-Dist: httpx<0.29.0,>=0.23.0
22
+ Requires-Dist: httpx<0.29.0,>=0.23.1
25
23
  Requires-Dist: jinja2<4.0.0,>=3.0.0
26
24
  Requires-Dist: pydantic<3.0.0,>=2.10
27
- Requires-Dist: python-dateutil<3.0.0,>=2.8.1
28
25
  Requires-Dist: ruamel-yaml<0.20.0,>=0.18.6
29
26
  Requires-Dist: ruff>=0.2
30
27
  Requires-Dist: shellingham<2.0.0,>=1.3.2
31
- Requires-Dist: typer<0.26,>0.16
28
+ Requires-Dist: typer<0.28,>0.16
32
29
  Description-Content-Type: text/markdown
33
30
 
34
31
  ![Run Checks](https://github.com/openapi-generators/openapi-python-client/workflows/Run%20Checks/badge.svg)
@@ -0,0 +1,115 @@
1
+ openapi_python_client/__init__.py,sha256=AFRoY0c5ZOt73eX1oXjNcPYi_c7XBGI6JvShLH-_8x4,14557
2
+ openapi_python_client/__main__.py,sha256=wcCrL4PjG51r5wVKqJhcoJPTLfHW0wNbD31DrUN0MWI,28
3
+ openapi_python_client/cli.py,sha256=573RDIB1-FDk3hm8tGykfYusl6GrdtqlNjo29iiOxRk,5513
4
+ openapi_python_client/config.py,sha256=fd_kyBWtPl77rVvpiTrSwJ6z8OJhEILKBhHggLvjY8A,4236
5
+ openapi_python_client/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
6
+ openapi_python_client/strings.py,sha256=1Oo4Y7bgDw-Y8v8BSpbHiSMV-kWcs1XXhp-5pGS1F-U,9702
7
+ openapi_python_client/parser/__init__.py,sha256=dpY1jYmWFPBubtjKCZIlg2uHC_DLC-KpfuMNdQF8RUc,177
8
+ openapi_python_client/parser/bodies.py,sha256=M2uRhnyfK904mzsAb6bxDb6fE1oCDYGgc9HLU_a6FDY,4664
9
+ openapi_python_client/parser/errors.py,sha256=COPpNRWjPGUWlgebwJetBhuVy2NkHQ63WWKJ9Skcimw,1191
10
+ openapi_python_client/parser/openapi.py,sha256=Up0JwnFHNU-v78BHZ9OwR1nwfAWabiNGqtsnhY6jzLU,23877
11
+ openapi_python_client/parser/responses.py,sha256=3sRpb5bZnkPvzqjWVFOiiMBDa7bObDINll_VfwFiocI,9016
12
+ openapi_python_client/parser/properties/__init__.py,sha256=IGxFol11Y_cX9JyfdDjBnSmAnklqWFAjikMzJ3EMt6w,17551
13
+ openapi_python_client/parser/properties/any.py,sha256=_O4Ku6UhGkgRekkso6xxl9GyajjVPjHNpL7f4GgEaBI,1532
14
+ openapi_python_client/parser/properties/boolean.py,sha256=fTvw8XJ_RPiDeRoQZ_TvMEJK7u_Jjb1y4VVxt8jnlFw,2224
15
+ openapi_python_client/parser/properties/const.py,sha256=saY5coCj49gNmUKc3-NmFZtCJG0uny0zovtseyaORLw,3910
16
+ openapi_python_client/parser/properties/date.py,sha256=dEQsjbdiRnRvd0iL47NW3pDlQpWwqaFppaRvRylQ_ZY,2505
17
+ openapi_python_client/parser/properties/datetime.py,sha256=p63RPd-V_3xHkoQbtpzWPwnL3KyY0oJ2WwjSYyyzAeA,2555
18
+ openapi_python_client/parser/properties/enum_property.py,sha256=6uScve1WE10yl1Jb15TUtLohsm_NZlqi4FM5-4Ix8Jc,9107
19
+ openapi_python_client/parser/properties/file.py,sha256=iZGU0hBVLodl1nHbYCneV1JJzeS8-Rzt57Z0rPxeX60,2158
20
+ openapi_python_client/parser/properties/float.py,sha256=jjQKAOZyUwvZwz3nF_ellwHrYq6HtTM-inL0LuSVMB8,2383
21
+ openapi_python_client/parser/properties/int.py,sha256=ZVVm1had2iOXaro9ASlCfO88RZogrPKGQYWZQwxVU5U,2358
22
+ openapi_python_client/parser/properties/list_property.py,sha256=z2N2rS_08f_AsSL3KO7gMv8l7HzZkNVqkgtuMlJRYys,5967
23
+ openapi_python_client/parser/properties/literal_enum_property.py,sha256=QfALmZ3Q05uoHl68aYyQ0TJXsv7p7QkF0RxfwNeKTw8,7712
24
+ openapi_python_client/parser/properties/merge_properties.py,sha256=x4TDQUXB6D6Ae1r27yZldN9q-lz56tEnObHlnZiEY0E,9773
25
+ openapi_python_client/parser/properties/model_property.py,sha256=m7cFzHCOKBP4evnps6XpHdBO4-HFLT9ZrSlTTfCWgFg,17349
26
+ openapi_python_client/parser/properties/none.py,sha256=8jG-73Hhbk0Leav94HdEDAHTiLL5nQQy6rd9qruIY6Y,1912
27
+ openapi_python_client/parser/properties/property.py,sha256=tUNaC-96EKSqpuqW_4NeEp9LG7_PMUeE0DOkIXU89M0,971
28
+ openapi_python_client/parser/properties/protocol.py,sha256=rY2QbKysLiOrmODoh76gcMmZxxanj8BrCFMtv4yzBQk,7181
29
+ openapi_python_client/parser/properties/schemas.py,sha256=Ohhw3YsluuO-VKOBjMj-uk0GoJJXDWmfX-UWLLrODLM,9129
30
+ openapi_python_client/parser/properties/string.py,sha256=-ocGBWrWRKT7HR8GkSm-lU2ygJcQeKIXnYFEsq7LlRk,2048
31
+ openapi_python_client/parser/properties/union.py,sha256=4VTvSwgXXaWQdjkVZkB_FpktpQh3BI826DiOs7Wgx9s,9097
32
+ openapi_python_client/parser/properties/uuid.py,sha256=msBsFK4xp8AeTMrBA4nt7FkqTO0R2BbE-VjVQE-bnOE,2610
33
+ openapi_python_client/schema/3.0.3.md,sha256=0a25-q_HFDVcsxOnMOGeTo67K4FtLHqMfI5U8VwneJg,126244
34
+ openapi_python_client/schema/3.1.0.md,sha256=O4SlQ2wux5Sa68Q9jrCcZYEJ5RcqXniJ9pSixtR15Rc,131397
35
+ openapi_python_client/schema/__init__.py,sha256=BR4j82a9atqOI14sUEvO27CtcO8e-O4MKj5z2cbl8DY,559
36
+ openapi_python_client/schema/data_type.py,sha256=-YJVw_47psCr57Jd-A2o20zltksb-gNJBBwjXz6SYdU,452
37
+ openapi_python_client/schema/parameter_location.py,sha256=JhMzMAIwDWsQ7nzYLUhIZCZ666Z8bdhYXzsjV01jAos,212
38
+ openapi_python_client/schema/ref.py,sha256=7qMjQDwESS-2NgFkE3loNuKe4KFesyoqUQ-D0V8ESsg,1805
39
+ openapi_python_client/schema/untrusted_string.py,sha256=Bn_9SvLUNwOp520GXjj1XH7ALMKoS9tldl6_wVxFXQ4,1994
40
+ openapi_python_client/schema/openapi_schema_pydantic/LICENSE,sha256=yoy6owJ7bArVSVjpCNoU0zuGiN3LAxqNVQ1_ZAumOf8,1064
41
+ openapi_python_client/schema/openapi_schema_pydantic/README.md,sha256=LamzQvAYwLzJxutVBn1hffpquePeKoJdqZSXKfzwE_s,1996
42
+ openapi_python_client/schema/openapi_schema_pydantic/__init__.py,sha256=n06seSNejSl9FhIBZ-RGUp0hLEz9adX1Hdbhjg3OqJY,2076
43
+ openapi_python_client/schema/openapi_schema_pydantic/callback.py,sha256=5dB6pDrZjJSYI2gAEOOm76qQO7GyJPCaRueKPJiG9Os,628
44
+ openapi_python_client/schema/openapi_schema_pydantic/components.py,sha256=gfVGNfBh5aduiVOXWr-RRLi0mzSgpLECS_MYjhODnqU,4666
45
+ openapi_python_client/schema/openapi_schema_pydantic/contact.py,sha256=_ZILAjFbZfdGmVl11JpbOaQvk2aFFwkZpawugu1SFEs,692
46
+ openapi_python_client/schema/openapi_schema_pydantic/discriminator.py,sha256=n7w3U48A7AlCWlq2OX_suJhXCIwNpkvPQUaPswmgHN0,1330
47
+ openapi_python_client/schema/openapi_schema_pydantic/encoding.py,sha256=DIBc5W88LVaAZdrquLy7061x7lmPqGwAQtau4evKyLA,1384
48
+ openapi_python_client/schema/openapi_schema_pydantic/example.py,sha256=U5Tu0IVtBEed75i7UqlVZnpwhYv7BzYBUx5yZsVBRqc,1085
49
+ openapi_python_client/schema/openapi_schema_pydantic/external_documentation.py,sha256=r9bthU1OCCgeNG7cx_CqyOjqcgdQK6Ki6J3ZTI2YrXU,616
50
+ openapi_python_client/schema/openapi_schema_pydantic/header.py,sha256=t1i4x_XUXPgBhC1CXkXA-0rd5nAaRhRp372SecKAiWI,1775
51
+ openapi_python_client/schema/openapi_schema_pydantic/info.py,sha256=seExa-tTSYnt5mxnMQurS0DuiC2Psiqqe_YYFSQB1ag,1532
52
+ openapi_python_client/schema/openapi_schema_pydantic/license.py,sha256=jl6EiBj7cnV2do_MQuOsYMF0pDswQiDsk4OgZ13zXD8,567
53
+ openapi_python_client/schema/openapi_schema_pydantic/link.py,sha256=TlrTy7U8mQc208_GFsJCjAZBXVILyWEUulgQ7At6wSg,1742
54
+ openapi_python_client/schema/openapi_schema_pydantic/media_type.py,sha256=CqZU2j0NJKelWVkK86kfEtFEiGczrewbHM6WsEZMz_o,2143
55
+ openapi_python_client/schema/openapi_schema_pydantic/oauth_flow.py,sha256=Lujk-yjueT6l7RH9gY3lLqRSuZ9w3Wi-wMBJWYOX7U8,1231
56
+ openapi_python_client/schema/openapi_schema_pydantic/oauth_flows.py,sha256=GpK7P2q8ttCDqqqopGSqNEmUVpQbHMRZdibNMNxfAnE,584
57
+ openapi_python_client/schema/openapi_schema_pydantic/open_api.py,sha256=ladRUDYu9ruUcK7npyASOfDyX-XlL5Iq8iT89-JjpTA,1754
58
+ openapi_python_client/schema/openapi_schema_pydantic/operation.py,sha256=-JmCK2odofOHFzmcDQsm6bJC35Wz39IKlXu-uyUaEzc,3672
59
+ openapi_python_client/schema/openapi_schema_pydantic/parameter.py,sha256=DcqzRplOUTbwUWNVAFCw4x8TdoB59PGinrANJskG9o0,3317
60
+ openapi_python_client/schema/openapi_schema_pydantic/path_item.py,sha256=U1ImA6thYxkX9ZAJP1Q7X8WHA-4NRuQHNHfMW_wwBgQ,3001
61
+ openapi_python_client/schema/openapi_schema_pydantic/paths.py,sha256=JMsWkjxkKgU1tUUr2vqG5lbL1OxKOMytsmiNyXiEimE,554
62
+ openapi_python_client/schema/openapi_schema_pydantic/reference.py,sha256=V_cJ60q8t-fcIZih0xL4pWQeuUFIV_JuawXt-ceI6DY,1504
63
+ openapi_python_client/schema/openapi_schema_pydantic/request_body.py,sha256=DOVbvez6UXjwKXpMb9gVPpxfzWVYnMA8Wq7qv4JozJw,2821
64
+ openapi_python_client/schema/openapi_schema_pydantic/response.py,sha256=AQYlgdDnqUpLWk4Gu73oiL8TpGrbgDqfq-PO0EGuyXE,2517
65
+ openapi_python_client/schema/openapi_schema_pydantic/responses.py,sha256=VlnFD1Uz8DWbdNVO-DxDyv8EI-7O5_D6RTda2Btv-Y8,868
66
+ openapi_python_client/schema/openapi_schema_pydantic/schema.py,sha256=Syyjiu9S4msShQFzLy9x7sF3F7TUeOaeE466prGQ5uI,8954
67
+ openapi_python_client/schema/openapi_schema_pydantic/security_requirement.py,sha256=89WK-8Zlfyx4P_-ySSXdzsOMqqDFWCwt-UitCt-EZ90,942
68
+ openapi_python_client/schema/openapi_schema_pydantic/security_scheme.py,sha256=5i4o0Kky-5qpVQf9CweHGondjFoprTgDj68HkXh4_pc,1952
69
+ openapi_python_client/schema/openapi_schema_pydantic/server.py,sha256=NX_0Dqp51OFjRroMj6vJxA0TW2DE2Kt1zn2ny64tkps,1436
70
+ openapi_python_client/schema/openapi_schema_pydantic/server_variable.py,sha256=6c-h_HB28HqCZ0lBFOyex3SBTKVFL_TAcaU-EhMYdsc,581
71
+ openapi_python_client/schema/openapi_schema_pydantic/tag.py,sha256=99HECCPoDxgHvvD1_7s5lnCrJnaXy9eUO1UJv6eZHc0,829
72
+ openapi_python_client/schema/openapi_schema_pydantic/xml.py,sha256=8OePi0SrUiv9PhJqiVS34RgvhoeFWjECsc9XPECHJYE,1054
73
+ openapi_python_client/templates/.gitignore.jinja,sha256=SwZvl9qyKaHN9YjwaQrBsmpAclN11usf9Gohz1SFVg8,195
74
+ openapi_python_client/templates/README.md.jinja,sha256=21eRjE07I9Km8ZBLEk_euQ-tC68qeL7Hv6BhfUj9Yjw,5976
75
+ openapi_python_client/templates/api_init.py.jinja,sha256=87ApBzKyGb5zsgTMOkQXDqsLZCmaSFoJMwbGzCDQZMw,47
76
+ openapi_python_client/templates/client.py.jinja,sha256=Tqxldi8hAUp_v1nnMPG-bSjJyF3cHEC0WLb_X2emTJ4,8295
77
+ openapi_python_client/templates/endpoint_init.py.jinja,sha256=wYN6A3_bvYW13B1J9YvYCmcv5Els-q-E07kZJwJ7Vto,58
78
+ openapi_python_client/templates/endpoint_macros.py.jinja,sha256=WO24tJE9tu1IY8Yz-zk2U2RJQ5jIFWx3FRxmdvGyj-4,7708
79
+ openapi_python_client/templates/endpoint_module.py.jinja,sha256=wbJigFPrSHW6WVZrqlrpB2ZvnL-vowjZP5cKRAS3zVI,5319
80
+ openapi_python_client/templates/errors.py.jinja,sha256=trp-p5qn1_JLRxGZhdHtICaNPaCrcDCe4TgIihBravk,546
81
+ openapi_python_client/templates/helpers.jinja,sha256=Tmrae3qIBuc5-qex8zDB2yuSQYCjAD3wpOBI7ctUnwI,210
82
+ openapi_python_client/templates/int_enum.py.jinja,sha256=z4d2hVsdgmlxUB1fbVs4w8tJaq2SdmhLjs4mjbZ5GLw,224
83
+ openapi_python_client/templates/literal_enum.py.jinja,sha256=BPLrkzTdVDq3-pGh_jpz59Xyz1DgnYZEKd21jlBsi2g,641
84
+ openapi_python_client/templates/model.py.jinja,sha256=_Rx5aA1RwGz7uJgJrRI3ULqa3Zi2iANsBMq78fi6QKA,8689
85
+ openapi_python_client/templates/models_init.py.jinja,sha256=T2Sj1uGxWlYb5Vc8G3cC65KMDk-mtnEH0g5Xp0xE1Ro,233
86
+ openapi_python_client/templates/package_init.py.jinja,sha256=rBWQfjLcOb2bg-pvIAL7h1FPIYK5f4gjG1qcRzIfYhA,207
87
+ openapi_python_client/templates/pyproject.toml.jinja,sha256=rBaFq0oqlGeW-NesqPeF_BGCnEEB4P2Qq95vIrGOFQQ,255
88
+ openapi_python_client/templates/pyproject_pdm.toml.jinja,sha256=BDTI3pY2DaDiKaWspfEVWS1v8hXBzLetifQLKWciXxs,401
89
+ openapi_python_client/templates/pyproject_poetry.toml.jinja,sha256=BJJNN3-fDA3n6ccnQpNwUu7uCc7CvsjL-u02-6SjaJM,491
90
+ openapi_python_client/templates/pyproject_ruff.toml.jinja,sha256=OgFfCd9Ca3YsU8WdCxqJoJdCJEtzADpxAxfMghqzn80,74
91
+ openapi_python_client/templates/pyproject_uv.toml.jinja,sha256=_kUJMCl75NweMM_3P7xzQmSgR9q5hMslbtr8WqHcMDM,456
92
+ openapi_python_client/templates/setup.py.jinja,sha256=kTXHYDiGgjE2sRTqCGLLqwpJgNwpBQQcmsW3hDR8RKY,631
93
+ openapi_python_client/templates/str_enum.py.jinja,sha256=5JeaXmszg1HtqL2sU0AXz761GoCbSU_TxjLbOUFIF_w,233
94
+ openapi_python_client/templates/types.py.jinja,sha256=k9-ddYg6Tq-sd90hvGkH8-9hLj94QeCGVmGNz2xM5JQ,1350
95
+ openapi_python_client/templates/property_templates/any_property.py.jinja,sha256=H1-aMl9Mxs9z-gXQUw9MCNNrGYewG1p0s43flY4YHtA,135
96
+ openapi_python_client/templates/property_templates/boolean_property.py.jinja,sha256=3xghrbqSeUh-Qk1vdaWb_RxGOBNjhfKFf9EBOmMOBzU,225
97
+ openapi_python_client/templates/property_templates/const_property.py.jinja,sha256=0paITBHzqvrWdy2Mtx3go9CK02ya0ZfA5ycIL4bzJlk,651
98
+ openapi_python_client/templates/property_templates/date_property.py.jinja,sha256=knWVwF18qoAE3D8OydjxLXncavudCrKtUr8fioSkXhc,1141
99
+ openapi_python_client/templates/property_templates/datetime_property.py.jinja,sha256=x4nRHY6ibLWrY3RwscEQSWUr9kOENONjJSEuQDBNf_k,1165
100
+ openapi_python_client/templates/property_templates/enum_property.py.jinja,sha256=KPEHS91fDX5mYYx-PltuO3VGet8lqXGSKQXfC_Pc8SY,1171
101
+ openapi_python_client/templates/property_templates/file_property.py.jinja,sha256=x-SnVrFRCIha49rBDDMKjQk79CIV-AzvsBL6X3XboKo,972
102
+ openapi_python_client/templates/property_templates/float_property.py.jinja,sha256=vMZbRtomIEPvnKy95fT4QNQRrufv5xgdSnZ97xSN38U,207
103
+ openapi_python_client/templates/property_templates/helpers.jinja,sha256=oyHJU9cQGhsY7Xf1Q7OapX6G4mW3qRNUX2wFKhK2Mxs,395
104
+ openapi_python_client/templates/property_templates/int_property.py.jinja,sha256=vMZbRtomIEPvnKy95fT4QNQRrufv5xgdSnZ97xSN38U,207
105
+ openapi_python_client/templates/property_templates/list_property.py.jinja,sha256=Q5C19nP9sQ0a5_R_0nIKiNzlOkxkphN1SVWVZvkQeiw,2870
106
+ openapi_python_client/templates/property_templates/literal_enum_property.py.jinja,sha256=GzCWtxhyRs9COD255lkmnhhhsqVLJsuDfpvct4hpNjA,1209
107
+ openapi_python_client/templates/property_templates/model_property.py.jinja,sha256=n279v7YhLuTLryUUnCddBLJiywPcacMbwwEoKlgWf2g,1412
108
+ openapi_python_client/templates/property_templates/property_macros.py.jinja,sha256=x5qZVFeZAqIU18rs9bfACRLR8guUEjjSkAmfywJyM_k,601
109
+ openapi_python_client/templates/property_templates/union_property.py.jinja,sha256=A3kPJxDerrIZwY5RiuGDrUpB7aH3jPYl0Tnt_3VGzSY,4324
110
+ openapi_python_client/templates/property_templates/uuid_property.py.jinja,sha256=5WURNZ-NPGiFjH-AcYKZzMS8lmO1zLgCtf1HLMiD2aI,1096
111
+ openapi_python_client-0.29.1.dist-info/METADATA,sha256=Jx0RNtkQxQ3rMMEpEBbt5Bhjd25z-XcigeyCB0ozuCc,11551
112
+ openapi_python_client-0.29.1.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
113
+ openapi_python_client-0.29.1.dist-info/entry_points.txt,sha256=iRfSdN2foASZXr8GghkYa6KRXkDgO0EFfLut5IXoBTU,72
114
+ openapi_python_client-0.29.1.dist-info/licenses/LICENSE,sha256=4dpxQYqY0DB3aTauRrqYRuu6BVNsPSJdYeUT3sH6pQY,1075
115
+ openapi_python_client-0.29.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.29.0
2
+ Generator: hatchling 1.32.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any