@autorest/python 6.38.1 → 6.38.2

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.
@@ -46,7 +46,7 @@ class OptionsDict(MutableMapping):
46
46
  self._data = options.copy() if options else {}
47
47
  self._validate_combinations()
48
48
 
49
- def __getitem__(self, key: str) -> Any: # pylint: disable=too-many-return-statements
49
+ def __getitem__(self, key: str) -> Any: # pylint: disable=too-many-return-statements
50
50
  if key == "head-as-boolean" and self.get("azure-arm"):
51
51
  # override to always true if azure-arm is set
52
52
  return True
@@ -109,7 +109,12 @@ class OptionsDict(MutableMapping):
109
109
  if key == "combine-operation-files":
110
110
  return self.get("version-tolerant")
111
111
  if key == "package-pprint-name":
112
- return " ".join([i.capitalize() for i in str(self.get("package-name", "")).split("-")])
112
+ package_names = self.get("package-name", "").split("-")
113
+ return (
114
+ (package_names[-1].capitalize() + " Management")
115
+ if self.get("azure-arm")
116
+ else " ".join([i.capitalize() for i in package_names])
117
+ )
113
118
  if key == "builders-visibility":
114
119
  # Default to public if low-level client is not set, otherwise embedded
115
120
  return "embedded" if not self.get("low-level-client") else "public"
@@ -149,9 +149,12 @@ class JinjaSerializer(ReaderAndWriter):
149
149
  self._serialize_and_write_package_files()
150
150
 
151
151
  # write apiview-properties.json
152
- if self.code_model.options.get("emit-cross-language-definition-file"):
152
+ if (
153
+ self.code_model.options.get("emit-cross-language-definition-file")
154
+ and not self.code_model.options["multiapi"]
155
+ ):
153
156
  self.write_file(
154
- generation_path / Path("apiview-properties.json"),
157
+ self._root_of_sdk / Path("apiview-properties.json"),
155
158
  general_serializer.serialize_cross_language_definition_file(),
156
159
  )
157
160
 
@@ -165,7 +168,7 @@ class JinjaSerializer(ReaderAndWriter):
165
168
  # add _metadata.json
166
169
  if self.code_model.metadata:
167
170
  self.write_file(
168
- Path("./_metadata.json"),
171
+ self._root_of_sdk / "_metadata.json",
169
172
  json.dumps(self.code_model.metadata, indent=2),
170
173
  )
171
174
  elif client_namespace_type.clients:
@@ -216,11 +219,17 @@ class JinjaSerializer(ReaderAndWriter):
216
219
  general_serializer.serialize_pkgutil_init_file(),
217
220
  )
218
221
 
219
- def _serialize_and_write_package_files(self) -> None:
222
+ # path where README.md is
223
+ @property
224
+ def _root_of_sdk(self) -> Path:
220
225
  root_of_sdk = Path(".")
221
226
  if self.code_model.options["no-namespace-folders"]:
222
227
  compensation = Path("../" * (self.code_model.namespace.count(".") + 1))
223
228
  root_of_sdk = root_of_sdk / compensation
229
+ return root_of_sdk
230
+
231
+ def _serialize_and_write_package_files(self) -> None:
232
+ root_of_sdk = self._root_of_sdk
224
233
  if self.code_model.options["package-mode"] in VALID_PACKAGE_MODE:
225
234
  env = Environment(
226
235
  loader=PackageLoader("pygen.codegen", "templates/packaging_templates"),
@@ -520,14 +529,14 @@ class JinjaSerializer(ReaderAndWriter):
520
529
  namespace_config = get_namespace_config(self.code_model.namespace, self.code_model.options["multiapi"])
521
530
  num_of_namespace = namespace_config.count(".") + 1
522
531
  num_of_package_namespace = (
523
- get_namespace_from_package_name(self.code_model.options.get("namespace", "")).count(".") + 1
532
+ get_namespace_from_package_name(self.code_model.options.get("package-name", "")).count(".") + 1
524
533
  )
525
534
  if num_of_namespace > num_of_package_namespace:
526
535
  return Path("/".join(namespace_config.split(".")[num_of_package_namespace:]))
527
536
  return Path("")
528
537
 
529
538
  def _serialize_and_write_sample(self, env: Environment):
530
- out_path = Path("./generated_samples")
539
+ out_path = self._root_of_sdk / "generated_samples"
531
540
  for client in self.code_model.clients:
532
541
  for op_group in client.operation_groups:
533
542
  for operation in op_group.operations:
@@ -561,7 +570,7 @@ class JinjaSerializer(ReaderAndWriter):
561
570
 
562
571
  def _serialize_and_write_test(self, env: Environment):
563
572
  self.code_model.for_test = True
564
- out_path = Path("./generated_tests")
573
+ out_path = self._root_of_sdk / "generated_tests"
565
574
  general_serializer = TestGeneralSerializer(code_model=self.code_model, env=env)
566
575
  self.write_file(out_path / "conftest.py", general_serializer.serialize_conftest())
567
576
  if not self.code_model.options["azure-arm"]:
@@ -1067,9 +1067,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
1067
1067
  )
1068
1068
  if self.code_model.options["models-mode"] == "dpg":
1069
1069
  if xml_serializable(str(e.default_content_type)):
1070
- retval.append(
1071
- f" error = _failsafe_deserialize_xml({type_annotation}, response)"
1072
- )
1070
+ retval.append(f" error = _failsafe_deserialize_xml({type_annotation}, response)")
1073
1071
  else:
1074
1072
  retval.append(f" error = _failsafe_deserialize({type_annotation}, response)")
1075
1073
  else:
@@ -1086,9 +1084,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
1086
1084
  if builder.non_default_errors:
1087
1085
  retval.append(" else:")
1088
1086
  if self.code_model.options["models-mode"] == "dpg":
1089
- retval.append(
1090
- f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)"
1091
- )
1087
+ retval.append(f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)")
1092
1088
  else:
1093
1089
  retval.append(
1094
1090
  f"{indent}error = self._deserialize.failsafe_deserialize({default_error_deserialization}, "
@@ -70,9 +70,11 @@ class GeneralSerializer(BaseSerializer):
70
70
  # If parsing the pyproject.toml fails, we assume the it does not exist or is incorrectly formatted.
71
71
  return result
72
72
 
73
- # Keep azure-sdk-build configuration
73
+ # Keep "azure-sdk-build" and "packaging" configuration
74
74
  if "tool" in loaded_pyproject_toml and "azure-sdk-build" in loaded_pyproject_toml["tool"]:
75
75
  result["KEEP_FIELDS"]["tool.azure-sdk-build"] = loaded_pyproject_toml["tool"]["azure-sdk-build"]
76
+ if "packaging" in loaded_pyproject_toml:
77
+ result["KEEP_FIELDS"]["packaging"] = loaded_pyproject_toml["packaging"]
76
78
 
77
79
  # Process dependencies
78
80
  if "project" in loaded_pyproject_toml:
@@ -2,5 +2,6 @@
2
2
 
3
3
  ## 1.0.0b1 (1970-01-01)
4
4
 
5
- - Initial version
5
+ ### Other Changes
6
6
 
7
+ - Initial version
@@ -14,7 +14,11 @@ name = "{{ options.get('package-name')|lower }}"
14
14
  authors = [
15
15
  { name = "{{ code_model.company_name }}"{% if code_model.is_azure_flavor %}, email = "azpysdkhelp@microsoft.com"{% endif %} },
16
16
  ]
17
+ {% if options.get("azure-arm") %}
18
+ description = "Microsoft Azure {{ options.get('package-pprint-name') }} Client Library for Python"
19
+ {% else %}
17
20
  description = "{{ code_model.company_name }} {% if code_model.is_azure_flavor and not options.get('package-pprint-name').startswith('Azure ') %}Azure {% endif %}{{ options.get('package-pprint-name') }} Client Library for Python"
21
+ {% endif %}
18
22
  license = "MIT"
19
23
  classifiers = [
20
24
  "Development Status :: {{ dev_status }}",
@@ -73,7 +77,7 @@ version = "{{ options.get("package-version", "unknown") }}"
73
77
  {% if code_model.is_azure_flavor %}
74
78
 
75
79
  [project.urls]
76
- repository = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk"
80
+ repository = "https://github.com/Azure/azure-sdk-for-python"
77
81
  {% endif %}
78
82
 
79
83
  [tool.setuptools.dynamic]
@@ -84,7 +88,7 @@ version = {attr = "{{ code_model.namespace|lower }}._version.VERSION"}
84
88
  version = {attr = "{{ options.get('package-name')|lower|replace('-', '.') }}._version.VERSION"}
85
89
  {% endif %}
86
90
  {% endif %}
87
- readme = {file = ["README.md"], content-type = "text/markdown"}
91
+ readme = {file = ["README.md", "CHANGELOG.md"], content-type = "text/markdown"}
88
92
  {% if options.get('package-mode') %}
89
93
 
90
94
  [tool.setuptools.packages.find]
@@ -46,7 +46,7 @@ class OptionsDict(MutableMapping):
46
46
  self._data = options.copy() if options else {}
47
47
  self._validate_combinations()
48
48
 
49
- def __getitem__(self, key: str) -> Any: # pylint: disable=too-many-return-statements
49
+ def __getitem__(self, key: str) -> Any: # pylint: disable=too-many-return-statements
50
50
  if key == "head-as-boolean" and self.get("azure-arm"):
51
51
  # override to always true if azure-arm is set
52
52
  return True
@@ -109,7 +109,12 @@ class OptionsDict(MutableMapping):
109
109
  if key == "combine-operation-files":
110
110
  return self.get("version-tolerant")
111
111
  if key == "package-pprint-name":
112
- return " ".join([i.capitalize() for i in str(self.get("package-name", "")).split("-")])
112
+ package_names = self.get("package-name", "").split("-")
113
+ return (
114
+ (package_names[-1].capitalize() + " Management")
115
+ if self.get("azure-arm")
116
+ else " ".join([i.capitalize() for i in package_names])
117
+ )
113
118
  if key == "builders-visibility":
114
119
  # Default to public if low-level client is not set, otherwise embedded
115
120
  return "embedded" if not self.get("low-level-client") else "public"
@@ -149,9 +149,12 @@ class JinjaSerializer(ReaderAndWriter):
149
149
  self._serialize_and_write_package_files()
150
150
 
151
151
  # write apiview-properties.json
152
- if self.code_model.options.get("emit-cross-language-definition-file"):
152
+ if (
153
+ self.code_model.options.get("emit-cross-language-definition-file")
154
+ and not self.code_model.options["multiapi"]
155
+ ):
153
156
  self.write_file(
154
- generation_path / Path("apiview-properties.json"),
157
+ self._root_of_sdk / Path("apiview-properties.json"),
155
158
  general_serializer.serialize_cross_language_definition_file(),
156
159
  )
157
160
 
@@ -165,7 +168,7 @@ class JinjaSerializer(ReaderAndWriter):
165
168
  # add _metadata.json
166
169
  if self.code_model.metadata:
167
170
  self.write_file(
168
- Path("./_metadata.json"),
171
+ self._root_of_sdk / "_metadata.json",
169
172
  json.dumps(self.code_model.metadata, indent=2),
170
173
  )
171
174
  elif client_namespace_type.clients:
@@ -216,11 +219,17 @@ class JinjaSerializer(ReaderAndWriter):
216
219
  general_serializer.serialize_pkgutil_init_file(),
217
220
  )
218
221
 
219
- def _serialize_and_write_package_files(self) -> None:
222
+ # path where README.md is
223
+ @property
224
+ def _root_of_sdk(self) -> Path:
220
225
  root_of_sdk = Path(".")
221
226
  if self.code_model.options["no-namespace-folders"]:
222
227
  compensation = Path("../" * (self.code_model.namespace.count(".") + 1))
223
228
  root_of_sdk = root_of_sdk / compensation
229
+ return root_of_sdk
230
+
231
+ def _serialize_and_write_package_files(self) -> None:
232
+ root_of_sdk = self._root_of_sdk
224
233
  if self.code_model.options["package-mode"] in VALID_PACKAGE_MODE:
225
234
  env = Environment(
226
235
  loader=PackageLoader("pygen.codegen", "templates/packaging_templates"),
@@ -520,14 +529,14 @@ class JinjaSerializer(ReaderAndWriter):
520
529
  namespace_config = get_namespace_config(self.code_model.namespace, self.code_model.options["multiapi"])
521
530
  num_of_namespace = namespace_config.count(".") + 1
522
531
  num_of_package_namespace = (
523
- get_namespace_from_package_name(self.code_model.options.get("namespace", "")).count(".") + 1
532
+ get_namespace_from_package_name(self.code_model.options.get("package-name", "")).count(".") + 1
524
533
  )
525
534
  if num_of_namespace > num_of_package_namespace:
526
535
  return Path("/".join(namespace_config.split(".")[num_of_package_namespace:]))
527
536
  return Path("")
528
537
 
529
538
  def _serialize_and_write_sample(self, env: Environment):
530
- out_path = Path("./generated_samples")
539
+ out_path = self._root_of_sdk / "generated_samples"
531
540
  for client in self.code_model.clients:
532
541
  for op_group in client.operation_groups:
533
542
  for operation in op_group.operations:
@@ -561,7 +570,7 @@ class JinjaSerializer(ReaderAndWriter):
561
570
 
562
571
  def _serialize_and_write_test(self, env: Environment):
563
572
  self.code_model.for_test = True
564
- out_path = Path("./generated_tests")
573
+ out_path = self._root_of_sdk / "generated_tests"
565
574
  general_serializer = TestGeneralSerializer(code_model=self.code_model, env=env)
566
575
  self.write_file(out_path / "conftest.py", general_serializer.serialize_conftest())
567
576
  if not self.code_model.options["azure-arm"]:
@@ -1067,9 +1067,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
1067
1067
  )
1068
1068
  if self.code_model.options["models-mode"] == "dpg":
1069
1069
  if xml_serializable(str(e.default_content_type)):
1070
- retval.append(
1071
- f" error = _failsafe_deserialize_xml({type_annotation}, response)"
1072
- )
1070
+ retval.append(f" error = _failsafe_deserialize_xml({type_annotation}, response)")
1073
1071
  else:
1074
1072
  retval.append(f" error = _failsafe_deserialize({type_annotation}, response)")
1075
1073
  else:
@@ -1086,9 +1084,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
1086
1084
  if builder.non_default_errors:
1087
1085
  retval.append(" else:")
1088
1086
  if self.code_model.options["models-mode"] == "dpg":
1089
- retval.append(
1090
- f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)"
1091
- )
1087
+ retval.append(f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)")
1092
1088
  else:
1093
1089
  retval.append(
1094
1090
  f"{indent}error = self._deserialize.failsafe_deserialize({default_error_deserialization}, "
@@ -70,9 +70,11 @@ class GeneralSerializer(BaseSerializer):
70
70
  # If parsing the pyproject.toml fails, we assume the it does not exist or is incorrectly formatted.
71
71
  return result
72
72
 
73
- # Keep azure-sdk-build configuration
73
+ # Keep "azure-sdk-build" and "packaging" configuration
74
74
  if "tool" in loaded_pyproject_toml and "azure-sdk-build" in loaded_pyproject_toml["tool"]:
75
75
  result["KEEP_FIELDS"]["tool.azure-sdk-build"] = loaded_pyproject_toml["tool"]["azure-sdk-build"]
76
+ if "packaging" in loaded_pyproject_toml:
77
+ result["KEEP_FIELDS"]["packaging"] = loaded_pyproject_toml["packaging"]
76
78
 
77
79
  # Process dependencies
78
80
  if "project" in loaded_pyproject_toml:
@@ -2,5 +2,6 @@
2
2
 
3
3
  ## 1.0.0b1 (1970-01-01)
4
4
 
5
- - Initial version
5
+ ### Other Changes
6
6
 
7
+ - Initial version
@@ -14,7 +14,11 @@ name = "{{ options.get('package-name')|lower }}"
14
14
  authors = [
15
15
  { name = "{{ code_model.company_name }}"{% if code_model.is_azure_flavor %}, email = "azpysdkhelp@microsoft.com"{% endif %} },
16
16
  ]
17
+ {% if options.get("azure-arm") %}
18
+ description = "Microsoft Azure {{ options.get('package-pprint-name') }} Client Library for Python"
19
+ {% else %}
17
20
  description = "{{ code_model.company_name }} {% if code_model.is_azure_flavor and not options.get('package-pprint-name').startswith('Azure ') %}Azure {% endif %}{{ options.get('package-pprint-name') }} Client Library for Python"
21
+ {% endif %}
18
22
  license = "MIT"
19
23
  classifiers = [
20
24
  "Development Status :: {{ dev_status }}",
@@ -73,7 +77,7 @@ version = "{{ options.get("package-version", "unknown") }}"
73
77
  {% if code_model.is_azure_flavor %}
74
78
 
75
79
  [project.urls]
76
- repository = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk"
80
+ repository = "https://github.com/Azure/azure-sdk-for-python"
77
81
  {% endif %}
78
82
 
79
83
  [tool.setuptools.dynamic]
@@ -84,7 +88,7 @@ version = {attr = "{{ code_model.namespace|lower }}._version.VERSION"}
84
88
  version = {attr = "{{ options.get('package-name')|lower|replace('-', '.') }}._version.VERSION"}
85
89
  {% endif %}
86
90
  {% endif %}
87
- readme = {file = ["README.md"], content-type = "text/markdown"}
91
+ readme = {file = ["README.md", "CHANGELOG.md"], content-type = "text/markdown"}
88
92
  {% if options.get('package-mode') %}
89
93
 
90
94
  [tool.setuptools.packages.find]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autorest/python",
3
- "version": "6.38.1",
3
+ "version": "6.38.2",
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.15.1",
22
+ "@typespec/http-client-python": "~0.15.2",
23
23
  "@autorest/system-requirements": "~1.0.2",
24
24
  "fs-extra": "~11.2.0",
25
25
  "tsx": "~4.19.1"