@autorest/python 6.27.4 → 6.28.0

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 (114) hide show
  1. package/generator/build/lib/pygen/black.py +3 -3
  2. package/generator/build/lib/pygen/codegen/__init__.py +2 -0
  3. package/generator/build/lib/pygen/codegen/_utils.py +4 -0
  4. package/generator/build/lib/pygen/codegen/models/base.py +2 -3
  5. package/generator/build/lib/pygen/codegen/models/base_builder.py +5 -3
  6. package/generator/build/lib/pygen/codegen/models/client.py +28 -19
  7. package/generator/build/lib/pygen/codegen/models/code_model.py +200 -33
  8. package/generator/build/lib/pygen/codegen/models/combined_type.py +8 -5
  9. package/generator/build/lib/pygen/codegen/models/constant_type.py +2 -3
  10. package/generator/build/lib/pygen/codegen/models/credential_types.py +2 -3
  11. package/generator/build/lib/pygen/codegen/models/dictionary_type.py +2 -3
  12. package/generator/build/lib/pygen/codegen/models/enum_type.py +47 -24
  13. package/generator/build/lib/pygen/codegen/models/imports.py +14 -12
  14. package/generator/build/lib/pygen/codegen/models/list_type.py +2 -3
  15. package/generator/build/lib/pygen/codegen/models/lro_operation.py +8 -4
  16. package/generator/build/lib/pygen/codegen/models/lro_paging_operation.py +2 -2
  17. package/generator/build/lib/pygen/codegen/models/model_type.py +34 -19
  18. package/generator/build/lib/pygen/codegen/models/operation.py +66 -29
  19. package/generator/build/lib/pygen/codegen/models/operation_group.py +56 -11
  20. package/generator/build/lib/pygen/codegen/models/paging_operation.py +9 -6
  21. package/generator/build/lib/pygen/codegen/models/parameter.py +10 -10
  22. package/generator/build/lib/pygen/codegen/models/parameter_list.py +7 -7
  23. package/generator/build/lib/pygen/codegen/models/primitive_types.py +23 -43
  24. package/generator/build/lib/pygen/codegen/models/property.py +7 -7
  25. package/generator/build/lib/pygen/codegen/models/request_builder.py +9 -15
  26. package/generator/build/lib/pygen/codegen/models/response.py +6 -8
  27. package/generator/build/lib/pygen/codegen/models/utils.py +11 -0
  28. package/generator/build/lib/pygen/codegen/serializers/__init__.py +219 -244
  29. package/generator/build/lib/pygen/codegen/serializers/base_serializer.py +19 -1
  30. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +53 -35
  31. package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +9 -5
  32. package/generator/build/lib/pygen/codegen/serializers/enum_serializer.py +17 -3
  33. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +26 -14
  34. package/generator/build/lib/pygen/codegen/serializers/metadata_serializer.py +26 -8
  35. package/generator/build/lib/pygen/codegen/serializers/model_init_serializer.py +9 -4
  36. package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +63 -23
  37. package/generator/build/lib/pygen/codegen/serializers/operation_groups_serializer.py +19 -16
  38. package/generator/build/lib/pygen/codegen/serializers/operations_init_serializer.py +5 -10
  39. package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +10 -7
  40. package/generator/build/lib/pygen/codegen/serializers/request_builders_serializer.py +10 -1
  41. package/generator/build/lib/pygen/codegen/serializers/sample_serializer.py +7 -10
  42. package/generator/build/lib/pygen/codegen/serializers/test_serializer.py +24 -28
  43. package/generator/build/lib/pygen/codegen/serializers/types_serializer.py +6 -1
  44. package/generator/build/lib/pygen/codegen/serializers/utils.py +1 -15
  45. package/generator/build/lib/pygen/codegen/templates/client_container.py.jinja2 +1 -1
  46. package/generator/build/lib/pygen/codegen/templates/config_container.py.jinja2 +1 -1
  47. package/generator/build/lib/pygen/codegen/templates/enum_container.py.jinja2 +1 -1
  48. package/generator/build/lib/pygen/codegen/templates/init.py.jinja2 +1 -1
  49. package/generator/build/lib/pygen/codegen/templates/model_container.py.jinja2 +1 -1
  50. package/generator/build/lib/pygen/codegen/templates/operations_folder_init.py.jinja2 +2 -4
  51. package/generator/build/lib/pygen/codegen/templates/test.py.jinja2 +3 -3
  52. package/generator/build/lib/pygen/codegen/templates/testpreparer.py.jinja2 +2 -2
  53. package/generator/build/lib/pygen/codegen/templates/vendor.py.jinja2 +4 -4
  54. package/generator/build/lib/pygen/preprocess/__init__.py +0 -4
  55. package/generator/component-detection-pip-report.json +2 -2
  56. package/generator/dev_requirements.txt +2 -2
  57. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  58. package/generator/pygen/black.py +3 -3
  59. package/generator/pygen/codegen/__init__.py +2 -0
  60. package/generator/pygen/codegen/_utils.py +4 -0
  61. package/generator/pygen/codegen/models/base.py +2 -3
  62. package/generator/pygen/codegen/models/base_builder.py +5 -3
  63. package/generator/pygen/codegen/models/client.py +28 -19
  64. package/generator/pygen/codegen/models/code_model.py +200 -33
  65. package/generator/pygen/codegen/models/combined_type.py +8 -5
  66. package/generator/pygen/codegen/models/constant_type.py +2 -3
  67. package/generator/pygen/codegen/models/credential_types.py +2 -3
  68. package/generator/pygen/codegen/models/dictionary_type.py +2 -3
  69. package/generator/pygen/codegen/models/enum_type.py +47 -24
  70. package/generator/pygen/codegen/models/imports.py +14 -12
  71. package/generator/pygen/codegen/models/list_type.py +2 -3
  72. package/generator/pygen/codegen/models/lro_operation.py +8 -4
  73. package/generator/pygen/codegen/models/lro_paging_operation.py +2 -2
  74. package/generator/pygen/codegen/models/model_type.py +34 -19
  75. package/generator/pygen/codegen/models/operation.py +66 -29
  76. package/generator/pygen/codegen/models/operation_group.py +56 -11
  77. package/generator/pygen/codegen/models/paging_operation.py +9 -6
  78. package/generator/pygen/codegen/models/parameter.py +10 -10
  79. package/generator/pygen/codegen/models/parameter_list.py +7 -7
  80. package/generator/pygen/codegen/models/primitive_types.py +23 -43
  81. package/generator/pygen/codegen/models/property.py +7 -7
  82. package/generator/pygen/codegen/models/request_builder.py +9 -15
  83. package/generator/pygen/codegen/models/response.py +6 -8
  84. package/generator/pygen/codegen/models/utils.py +11 -0
  85. package/generator/pygen/codegen/serializers/__init__.py +219 -244
  86. package/generator/pygen/codegen/serializers/base_serializer.py +19 -1
  87. package/generator/pygen/codegen/serializers/builder_serializer.py +53 -35
  88. package/generator/pygen/codegen/serializers/client_serializer.py +9 -5
  89. package/generator/pygen/codegen/serializers/enum_serializer.py +17 -3
  90. package/generator/pygen/codegen/serializers/general_serializer.py +26 -14
  91. package/generator/pygen/codegen/serializers/metadata_serializer.py +26 -8
  92. package/generator/pygen/codegen/serializers/model_init_serializer.py +9 -4
  93. package/generator/pygen/codegen/serializers/model_serializer.py +63 -23
  94. package/generator/pygen/codegen/serializers/operation_groups_serializer.py +19 -16
  95. package/generator/pygen/codegen/serializers/operations_init_serializer.py +5 -10
  96. package/generator/pygen/codegen/serializers/parameter_serializer.py +10 -7
  97. package/generator/pygen/codegen/serializers/request_builders_serializer.py +10 -1
  98. package/generator/pygen/codegen/serializers/sample_serializer.py +7 -10
  99. package/generator/pygen/codegen/serializers/test_serializer.py +24 -28
  100. package/generator/pygen/codegen/serializers/types_serializer.py +6 -1
  101. package/generator/pygen/codegen/serializers/utils.py +1 -15
  102. package/generator/pygen/codegen/templates/client_container.py.jinja2 +1 -1
  103. package/generator/pygen/codegen/templates/config_container.py.jinja2 +1 -1
  104. package/generator/pygen/codegen/templates/enum_container.py.jinja2 +1 -1
  105. package/generator/pygen/codegen/templates/init.py.jinja2 +1 -1
  106. package/generator/pygen/codegen/templates/model_container.py.jinja2 +1 -1
  107. package/generator/pygen/codegen/templates/operations_folder_init.py.jinja2 +2 -4
  108. package/generator/pygen/codegen/templates/test.py.jinja2 +3 -3
  109. package/generator/pygen/codegen/templates/testpreparer.py.jinja2 +2 -2
  110. package/generator/pygen/codegen/templates/vendor.py.jinja2 +4 -4
  111. package/generator/pygen/preprocess/__init__.py +0 -4
  112. package/generator/pygen.egg-info/PKG-INFO +10 -1
  113. package/package.json +2 -2
  114. package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
@@ -11,6 +11,6 @@ VERSION = "unknown"
11
11
  {% endif %}
12
12
 
13
13
  {% for client in clients %}
14
- {% set serializer = get_serializer(client) %}
14
+ {% set serializer = get_serializer(client, serialize_namespace) %}
15
15
  {% include "config.py.jinja2" %}
16
16
  {% endfor %}
@@ -5,6 +5,6 @@
5
5
  from enum import Enum
6
6
  from {{ code_model.core_library }}{{ "" if code_model.is_azure_flavor else ".utils" }} import CaseInsensitiveEnumMeta
7
7
 
8
- {% for enum in code_model.enums | sort %}
8
+ {% for enum in enums | sort %}
9
9
  {% include "enum.py.jinja2" %}
10
10
  {% endfor %}
@@ -8,7 +8,7 @@ from .{{ client.filename }} import {{ client.name }} # type: ignore
8
8
  {% endfor %}
9
9
  {% endif %}
10
10
  {% if not async_mode and code_model.options['package_version']%}
11
- from ._version import VERSION
11
+ from {{ code_model.get_relative_import_path(serialize_namespace, module_name="_version") }} import VERSION
12
12
 
13
13
  __version__ = VERSION
14
14
  {% endif %}
@@ -6,7 +6,7 @@
6
6
  {% endif %}
7
7
 
8
8
  {{ imports }}
9
- {% for model in code_model.model_types %}
9
+ {% for model in models %}
10
10
  {% if model.base == "dpg" %}
11
11
  {% include "model_dpg.py.jinja2" %}
12
12
  {% elif model.base == "msrest" %}
@@ -7,11 +7,9 @@
7
7
  {{ op_tools.serialize(operation_group_imports()) }}
8
8
  {{ keywords.patch_imports() }}
9
9
  __all__ = [
10
- {% for client in clients %}
11
- {% for operation_group in client.operation_groups %}
10
+ {% for operation_group in operation_groups %}
12
11
  '{{ operation_group.class_name }}',
13
- {% endfor %}
14
- {% endfor %}
12
+ {% endfor %}
15
13
  ]
16
14
  {{ keywords.extend_all }}
17
15
  _patch_sdk()
@@ -1,7 +1,7 @@
1
1
  {% set prefix_lower = test.prefix|lower %}
2
2
  {% set client_var = "self.client" if code_model.options["azure_arm"] else "client" %}
3
- {% set async = "async " if test.is_async else "" %}
4
- {% set async_suffix = "_async" if test.is_async else "" %}
3
+ {% set async = "async " if test.async_mode else "" %}
4
+ {% set async_suffix = "_async" if test.async_mode else "" %}
5
5
  # coding=utf-8
6
6
  {{ code_model.options['license_header'] }}
7
7
  import pytest
@@ -15,7 +15,7 @@ AZURE_LOCATION = "eastus"
15
15
  class {{ test.test_class_name }}({{ test.base_test_class_name }}):
16
16
  {% if code_model.options["azure_arm"] %}
17
17
  def setup_method(self, method):
18
- {% if test.is_async %}
18
+ {% if test.async_mode %}
19
19
  self.client = self.create_mgmt_client({{ test.client_name }}, is_async=True)
20
20
  {% else %}
21
21
  self.client = self.create_mgmt_client({{ test.client_name }})
@@ -3,7 +3,7 @@
3
3
  {{ imports }}
4
4
 
5
5
  {% for test_name in test_names %}
6
- {% set extra_async = ", is_async=True" if test_name.is_async else ""%}
6
+ {% set extra_async = ", is_async=True" if test_name.async_mode else ""%}
7
7
  {% set prefix_lower = test_name.prefix|lower %}
8
8
  class {{ test_name.base_test_class_name }}(AzureRecordedTestCase):
9
9
 
@@ -15,7 +15,7 @@ class {{ test_name.base_test_class_name }}(AzureRecordedTestCase):
15
15
  endpoint=endpoint,
16
16
  )
17
17
 
18
- {% if not test_name.is_async %}
18
+ {% if not test_name.async_mode %}
19
19
  {{ test_name.preparer_name }} = functools.partial(
20
20
  PowerShellPreparer,
21
21
  "{{ prefix_lower }}",
@@ -3,7 +3,7 @@
3
3
 
4
4
  {{ imports }}
5
5
 
6
- {% if code_model.need_mixin_abc %}
6
+ {% if code_model.need_vendored_mixin(client_namespace) %}
7
7
  {% for client in clients | selectattr("has_mixin") %}
8
8
  {% set pylint_disable = "# pylint: disable=name-too-long" if (client.name | length) + ("MixinABC" | length) > 40 else "" %}
9
9
  class {{ client.name }}MixinABC( {{ pylint_disable }}
@@ -16,7 +16,7 @@ class {{ client.name }}MixinABC( {{ pylint_disable }}
16
16
  _deserialize: "Deserializer"
17
17
  {% endfor %}
18
18
  {% endif %}
19
- {% if code_model.has_abstract_operations %}
19
+ {% if code_model.need_vendored_abstract(client_namespace) %}
20
20
 
21
21
  def raise_if_not_implemented(cls, abstract_methods):
22
22
  not_implemented = [f for f in abstract_methods if not callable(getattr(cls, f, None))]
@@ -27,7 +27,7 @@ def raise_if_not_implemented(cls, abstract_methods):
27
27
  )
28
28
  {% endif %}
29
29
 
30
- {% if code_model.has_etag %}
30
+ {% if code_model.need_vendored_etag(client_namespace) %}
31
31
  def quote_etag(etag: Optional[str]) -> Optional[str]:
32
32
  if not etag or etag == "*":
33
33
  return etag
@@ -57,7 +57,7 @@ def prep_if_none_match(etag: Optional[str], match_condition: Optional[MatchCondi
57
57
  return "*"
58
58
  return None
59
59
  {% endif %}
60
- {% if code_model.has_form_data and code_model.options["models_mode"] == "dpg" and not async_mode %}
60
+ {% if code_model.need_vendored_form_data(async_mode, client_namespace) %}
61
61
  # file-like tuple could be `(filename, IO (or bytes))` or `(filename, IO (or bytes), content_type)`
62
62
  FileContent = Union[str, bytes, IO[str], IO[bytes]]
63
63
 
@@ -501,10 +501,6 @@ class PreProcessPlugin(YamlUpdatePlugin):
501
501
  for client in yaml_data["clients"]:
502
502
  self.update_client(client)
503
503
  self.update_operation_groups(yaml_data, client)
504
- for clients in yaml_data["subnamespaceToClients"].values():
505
- for client in clients:
506
- self.update_client(client)
507
- self.update_operation_groups(yaml_data, client)
508
504
  if yaml_data.get("namespace"):
509
505
  yaml_data["namespace"] = pad_builtin_namespaces(yaml_data["namespace"])
510
506
 
@@ -1,4 +1,4 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pygen
3
3
  Version: 0.1.0
4
4
  Summary: Core Library for Python Generation
@@ -24,5 +24,14 @@ Requires-Dist: m2r2==0.3.3.post2
24
24
  Requires-Dist: PyYAML==6.0.1
25
25
  Requires-Dist: tomli==2.0.1
26
26
  Requires-Dist: setuptools==69.5.1
27
+ Dynamic: author
28
+ Dynamic: author-email
29
+ Dynamic: classifier
30
+ Dynamic: description
31
+ Dynamic: description-content-type
32
+ Dynamic: home-page
33
+ Dynamic: license
34
+ Dynamic: requires-dist
35
+ Dynamic: summary
27
36
 
28
37
  # Core Library for Python Generation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autorest/python",
3
- "version": "6.27.4",
3
+ "version": "6.28.0",
4
4
  "description": "The Python extension for generators in AutoRest.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md",
21
21
  "dependencies": {
22
- "@typespec/http-client-python": "~0.5.1",
22
+ "@typespec/http-client-python": "~0.6.2",
23
23
  "@autorest/system-requirements": "~1.0.2",
24
24
  "fs-extra": "~11.2.0",
25
25
  "tsx": "~4.19.1"