@autorest/python 6.35.5 → 6.37.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.
- package/autorest/__init__.py +2 -2
- package/autorest/multiapi/models/client.py +1 -1
- package/generator/build/lib/pygen/__init__.py +176 -2
- package/generator/build/lib/pygen/black.py +1 -1
- package/generator/build/lib/pygen/codegen/__init__.py +4 -256
- package/generator/build/lib/pygen/codegen/_utils.py +0 -3
- package/generator/build/lib/pygen/codegen/models/__init__.py +1 -1
- package/generator/build/lib/pygen/codegen/models/base_builder.py +1 -1
- package/generator/build/lib/pygen/codegen/models/client.py +15 -13
- package/generator/build/lib/pygen/codegen/models/code_model.py +10 -9
- package/generator/build/lib/pygen/codegen/models/enum_type.py +4 -4
- package/generator/build/lib/pygen/codegen/models/imports.py +1 -1
- package/generator/build/lib/pygen/codegen/models/list_type.py +6 -6
- package/generator/build/lib/pygen/codegen/models/lro_operation.py +1 -1
- package/generator/build/lib/pygen/codegen/models/operation.py +16 -16
- package/generator/build/lib/pygen/codegen/models/operation_group.py +12 -6
- package/generator/build/lib/pygen/codegen/models/paging_operation.py +4 -4
- package/generator/build/lib/pygen/codegen/models/parameter.py +8 -8
- package/generator/build/lib/pygen/codegen/models/property.py +1 -1
- package/generator/build/lib/pygen/codegen/models/request_builder.py +2 -2
- package/generator/build/lib/pygen/codegen/models/request_builder_parameter.py +2 -2
- package/generator/build/lib/pygen/codegen/models/response.py +3 -3
- package/generator/build/lib/pygen/codegen/serializers/__init__.py +27 -28
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +31 -31
- package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +6 -5
- package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +4 -4
- package/generator/build/lib/pygen/codegen/serializers/metadata_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/operations_init_serializer.py +6 -2
- package/generator/build/lib/pygen/codegen/serializers/sample_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/test_serializer.py +5 -5
- package/generator/build/lib/pygen/codegen/templates/config.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/config_container.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/conftest.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/init.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/metadata.json.jinja2 +2 -2
- package/generator/build/lib/pygen/codegen/templates/model_dpg.py.jinja2 +2 -2
- package/generator/build/lib/pygen/codegen/templates/operation_group.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operation_groups_container.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operations_folder_init.py.jinja2 +2 -0
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +7 -7
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +9 -9
- package/generator/build/lib/pygen/codegen/templates/request_builder.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/sample.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/test.py.jinja2 +6 -6
- package/generator/build/lib/pygen/codegen/templates/version.py.jinja2 +1 -1
- package/generator/build/lib/pygen/preprocess/__init__.py +1 -1
- package/generator/build/lib/pygen/utils.py +4 -0
- package/generator/component-detection-pip-report.json +2 -2
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/__init__.py +176 -2
- package/generator/pygen/black.py +1 -1
- package/generator/pygen/codegen/__init__.py +4 -256
- package/generator/pygen/codegen/_utils.py +0 -3
- package/generator/pygen/codegen/models/__init__.py +1 -1
- package/generator/pygen/codegen/models/base_builder.py +1 -1
- package/generator/pygen/codegen/models/client.py +15 -13
- package/generator/pygen/codegen/models/code_model.py +10 -9
- package/generator/pygen/codegen/models/enum_type.py +4 -4
- package/generator/pygen/codegen/models/imports.py +1 -1
- package/generator/pygen/codegen/models/list_type.py +6 -6
- package/generator/pygen/codegen/models/lro_operation.py +1 -1
- package/generator/pygen/codegen/models/operation.py +16 -16
- package/generator/pygen/codegen/models/operation_group.py +12 -6
- package/generator/pygen/codegen/models/paging_operation.py +4 -4
- package/generator/pygen/codegen/models/parameter.py +8 -8
- package/generator/pygen/codegen/models/property.py +1 -1
- package/generator/pygen/codegen/models/request_builder.py +2 -2
- package/generator/pygen/codegen/models/request_builder_parameter.py +2 -2
- package/generator/pygen/codegen/models/response.py +3 -3
- package/generator/pygen/codegen/serializers/__init__.py +27 -28
- package/generator/pygen/codegen/serializers/builder_serializer.py +31 -31
- package/generator/pygen/codegen/serializers/client_serializer.py +6 -5
- package/generator/pygen/codegen/serializers/general_serializer.py +4 -4
- package/generator/pygen/codegen/serializers/metadata_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/model_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/operations_init_serializer.py +6 -2
- package/generator/pygen/codegen/serializers/sample_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/test_serializer.py +5 -5
- package/generator/pygen/codegen/templates/config.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/config_container.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/conftest.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/init.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/metadata.json.jinja2 +2 -2
- package/generator/pygen/codegen/templates/model_dpg.py.jinja2 +2 -2
- package/generator/pygen/codegen/templates/operation_group.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operation_groups_container.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operations_folder_init.py.jinja2 +2 -0
- package/generator/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +7 -7
- package/generator/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +9 -9
- package/generator/pygen/codegen/templates/request_builder.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/sample.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/test.py.jinja2 +6 -6
- package/generator/pygen/codegen/templates/version.py.jinja2 +1 -1
- package/generator/pygen/preprocess/__init__.py +1 -1
- package/generator/pygen/utils.py +4 -0
- package/generator/pygen.egg-info/PKG-INFO +1 -1
- package/generator/pygen.egg-info/requires.txt +1 -1
- package/generator/setup.py +1 -1
- package/package.json +2 -2
- package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
- package/scripts/eng/run-tests.ts +14 -1
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
{{ code_model.license_header }}
|
|
6
6
|
{% endif %}
|
|
7
7
|
|
|
8
|
-
{% if
|
|
8
|
+
{% if options["package-mode"] %}
|
|
9
9
|
|
|
10
10
|
import os
|
|
11
11
|
import re
|
|
12
12
|
{% endif %}
|
|
13
13
|
from setuptools import setup, find_packages
|
|
14
14
|
|
|
15
|
-
{% set package_name =
|
|
15
|
+
{% set package_name = options["package-name"] or code_model.clients[0].name %}
|
|
16
16
|
|
|
17
17
|
PACKAGE_NAME = "{{ package_name|lower }}"
|
|
18
|
-
{% if
|
|
19
|
-
PACKAGE_PPRINT_NAME = "{{
|
|
18
|
+
{% if options["package-mode"] %}
|
|
19
|
+
PACKAGE_PPRINT_NAME = "{{ options["package-pprint-name"] }}"
|
|
20
20
|
{% if code_model.is_tsp %}
|
|
21
21
|
PACKAGE_NAMESPACE = "{{ code_model.namespace|lower }}"
|
|
22
22
|
|
|
@@ -40,7 +40,7 @@ if not version:
|
|
|
40
40
|
{% set author_email = "azpysdkhelp@microsoft.com" %}
|
|
41
41
|
{% set url = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk" %}
|
|
42
42
|
{% else %}
|
|
43
|
-
version = "{{
|
|
43
|
+
version = "{{ options.get("package-version", "unknown") }}"
|
|
44
44
|
{% set description = "\"%s\""|format(package_name) %}
|
|
45
45
|
{% set long_description = code_model.description %}
|
|
46
46
|
{% set author_email = "" %}
|
|
@@ -52,7 +52,7 @@ setup(
|
|
|
52
52
|
name=PACKAGE_NAME,
|
|
53
53
|
version=version,
|
|
54
54
|
description={{ description }},
|
|
55
|
-
{% if
|
|
55
|
+
{% if options["package-mode"] %}
|
|
56
56
|
long_description=open("README.md", "r").read(),
|
|
57
57
|
long_description_content_type="text/markdown",
|
|
58
58
|
license="MIT License",
|
|
@@ -63,7 +63,7 @@ setup(
|
|
|
63
63
|
url="{{ url }}",
|
|
64
64
|
keywords="azure, azure sdk",
|
|
65
65
|
{% endif %}
|
|
66
|
-
{% if
|
|
66
|
+
{% if options["package-mode"] %}
|
|
67
67
|
classifiers=[
|
|
68
68
|
"Development Status :: {{ dev_status }}",
|
|
69
69
|
"Programming Language :: Python",
|
|
@@ -100,7 +100,7 @@ setup(
|
|
|
100
100
|
{% else %}
|
|
101
101
|
"isodate>={{ VERSION_MAP["isodate"] }}",
|
|
102
102
|
{% endif %}
|
|
103
|
-
{% if
|
|
103
|
+
{% if code_model.options["azure-arm"] %}
|
|
104
104
|
"azure-mgmt-core>={{ VERSION_MAP["azure-mgmt-core"] }}",
|
|
105
105
|
{% elif code_model.is_azure_flavor %}
|
|
106
106
|
"azure-core>={{ VERSION_MAP["azure-core"] }}",
|
|
@@ -109,7 +109,7 @@ setup(
|
|
|
109
109
|
{% endif %}
|
|
110
110
|
"typing-extensions>={{ VERSION_MAP['typing-extensions'] }}",
|
|
111
111
|
],
|
|
112
|
-
{% if
|
|
112
|
+
{% if options["package-mode"] %}
|
|
113
113
|
python_requires=">={{ MIN_PYTHON_VERSION }}",
|
|
114
114
|
{% else %}
|
|
115
115
|
long_description="""\
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{% import 'keywords.jinja2' as keywords with context %}
|
|
2
2
|
{% import 'operation_tools.jinja2' as op_tools with context %}
|
|
3
3
|
{{ request_builder_serializer.method_signature_and_response_type_annotation(request_builder) }}
|
|
4
|
-
{% if code_model.options["
|
|
4
|
+
{% if code_model.options["builders-visibility"] == "public" %}
|
|
5
5
|
{{ op_tools.description(request_builder, request_builder_serializer) | indent }}
|
|
6
6
|
{% endif %}
|
|
7
7
|
{% if not request_builder.is_overload %}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{% if "credential" in client_params and aad_token in client_params["credential"] %}
|
|
12
12
|
pip install azure-identity
|
|
13
13
|
{% endif %}
|
|
14
|
-
pip install {{ (code_model.options
|
|
14
|
+
pip install {{ (code_model.options.get("package-name") or code_model.clients[0].name)|lower }}
|
|
15
15
|
# USAGE
|
|
16
16
|
python {{ file_name }}
|
|
17
17
|
{% if "credential" in client_params and aad_token in client_params["credential"] %}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% set prefix_lower = test.prefix|lower %}
|
|
2
|
-
{% set client_var = "self.client" if code_model.options["
|
|
2
|
+
{% set client_var = "self.client" if code_model.options["azure-arm"] else "client" %}
|
|
3
3
|
{% set async = "async " if test.async_mode else "" %}
|
|
4
4
|
{% set async_suffix = "_async" if test.async_mode else "" %}
|
|
5
5
|
# coding=utf-8
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
import pytest
|
|
10
10
|
{{ imports }}
|
|
11
11
|
|
|
12
|
-
{% if code_model.options["
|
|
12
|
+
{% if code_model.options["azure-arm"] %}
|
|
13
13
|
AZURE_LOCATION = "eastus"
|
|
14
14
|
{% endif %}
|
|
15
15
|
|
|
16
16
|
@pytest.mark.skip("you may need to update the auto-generated test case before run it")
|
|
17
17
|
class {{ test.test_class_name }}({{ test.base_test_class_name }}):
|
|
18
|
-
{% if code_model.options["
|
|
18
|
+
{% if code_model.options["azure-arm"] %}
|
|
19
19
|
def setup_method(self, method):
|
|
20
20
|
{% if test.async_mode %}
|
|
21
21
|
self.client = self.create_mgmt_client({{ test.client_name }}, is_async=True)
|
|
@@ -24,13 +24,13 @@ class {{ test.test_class_name }}({{ test.base_test_class_name }}):
|
|
|
24
24
|
{% endif %}
|
|
25
25
|
{% endif %}
|
|
26
26
|
{% for testcase in test.testcases %}
|
|
27
|
-
{% if code_model.options["
|
|
27
|
+
{% if code_model.options["azure-arm"] %}
|
|
28
28
|
@{{ test.preparer_name }}(location=AZURE_LOCATION)
|
|
29
29
|
{% else %}
|
|
30
30
|
@{{ test.preparer_name }}()
|
|
31
31
|
{% endif %}
|
|
32
32
|
@recorded_by_proxy{{ async_suffix }}
|
|
33
|
-
{% if code_model.options["
|
|
33
|
+
{% if code_model.options["azure-arm"] %}
|
|
34
34
|
{{ async }}def test_{{ testcase.name }}(self, resource_group):
|
|
35
35
|
{% else %}
|
|
36
36
|
{{ async }}def test_{{ testcase.name }}(self, {{ prefix_lower }}_endpoint):
|
|
@@ -38,7 +38,7 @@ class {{ test.test_class_name }}({{ test.base_test_class_name }}):
|
|
|
38
38
|
{% endif %}
|
|
39
39
|
{{testcase.response }}{{ client_var }}{{ testcase.operation_group_prefix }}.{{ testcase.operation.name }}(
|
|
40
40
|
{% for key, value in testcase.params.items() %}
|
|
41
|
-
{% if code_model.options["
|
|
41
|
+
{% if code_model.options["azure-arm"] and key == "resource_group_name" %}
|
|
42
42
|
{{ key }}=resource_group.name,
|
|
43
43
|
{% else %}
|
|
44
44
|
{{ key }}={{ value|indent(12) }},
|
|
@@ -210,7 +210,7 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
210
210
|
if not (self.is_tsp and has_multi_part_content_type(body_parameter)):
|
|
211
211
|
body_parameter["type"]["types"].append(KNOWN_TYPES["binary"])
|
|
212
212
|
|
|
213
|
-
if origin_type == "model" and is_dpg_model and self.
|
|
213
|
+
if origin_type == "model" and is_dpg_model and self.options["models-mode"] == "dpg":
|
|
214
214
|
body_parameter["type"]["types"].insert(1, KNOWN_TYPES["any-object"])
|
|
215
215
|
code_model["types"].append(body_parameter["type"])
|
|
216
216
|
|
package/generator/pygen/utils.py
CHANGED
|
@@ -7,6 +7,10 @@ from typing import Any, Dict, Tuple, List
|
|
|
7
7
|
import re
|
|
8
8
|
import argparse
|
|
9
9
|
|
|
10
|
+
SWAGGER_PACKAGE_MODE = ["mgmtplane", "dataplane"] # for backward compatibility
|
|
11
|
+
TYPESPEC_PACKAGE_MODE = ["azure-mgmt", "azure-dataplane", "generic"]
|
|
12
|
+
VALID_PACKAGE_MODE = SWAGGER_PACKAGE_MODE + TYPESPEC_PACKAGE_MODE
|
|
13
|
+
|
|
10
14
|
|
|
11
15
|
def update_enum_value(name: str, value: Any, description: str, enum_type: Dict[str, Any]) -> Dict[str, Any]:
|
|
12
16
|
return {
|
|
@@ -21,7 +21,7 @@ Requires-Dist: docutils>=0.20.1
|
|
|
21
21
|
Requires-Dist: Jinja2==3.1.6
|
|
22
22
|
Requires-Dist: PyYAML==6.0.1
|
|
23
23
|
Requires-Dist: tomli==2.0.1
|
|
24
|
-
Requires-Dist: setuptools==
|
|
24
|
+
Requires-Dist: setuptools==75.3.2
|
|
25
25
|
Dynamic: author
|
|
26
26
|
Dynamic: author-email
|
|
27
27
|
Dynamic: classifier
|
package/generator/setup.py
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autorest/python",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.37.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.
|
|
22
|
+
"@typespec/http-client-python": "~0.14.0",
|
|
23
23
|
"@autorest/system-requirements": "~1.0.2",
|
|
24
24
|
"fs-extra": "~11.2.0",
|
|
25
25
|
"tsx": "~4.19.1"
|
|
Binary file
|
package/scripts/eng/run-tests.ts
CHANGED
|
@@ -46,7 +46,20 @@ const commandToRun = argv.command || "all";
|
|
|
46
46
|
|
|
47
47
|
function getCommand(command: string, folder: string, name?: string): string {
|
|
48
48
|
if (!validCommands.includes(command)) throw new Error(`Unknown command '${command}'.`);
|
|
49
|
-
|
|
49
|
+
|
|
50
|
+
// Check if running on Windows
|
|
51
|
+
const isWindows = process.platform === "win32";
|
|
52
|
+
const baseCommand = `tox -c ./test/${folder}/tox.ini -e ${command}`;
|
|
53
|
+
|
|
54
|
+
let retval: string;
|
|
55
|
+
if (isWindows) {
|
|
56
|
+
// Windows command format: set FOLDER=value && command
|
|
57
|
+
retval = `set FOLDER=${folder} && ${baseCommand}`;
|
|
58
|
+
} else {
|
|
59
|
+
// Unix/Linux/macOS format: FOLDER=value command
|
|
60
|
+
retval = `FOLDER=${folder} ${baseCommand}`;
|
|
61
|
+
}
|
|
62
|
+
|
|
50
63
|
if (name) {
|
|
51
64
|
return `${retval} -- -f ${name}`;
|
|
52
65
|
}
|