@autorest/python 6.35.5 → 6.36.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/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/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 {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autorest/python",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.36.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.13.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
|
}
|