@autorest/python 5.13.0 → 5.16.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/ChangeLog.md +67 -0
- package/autorest/__init__.py +1 -2
- package/autorest/black/__init__.py +12 -5
- package/autorest/codegen/__init__.py +239 -105
- package/autorest/codegen/models/__init__.py +29 -18
- package/autorest/codegen/models/base_builder.py +48 -11
- package/autorest/codegen/models/base_model.py +6 -4
- package/autorest/codegen/models/base_schema.py +21 -24
- package/autorest/codegen/models/client.py +70 -20
- package/autorest/codegen/models/code_model.py +144 -129
- package/autorest/codegen/models/constant_schema.py +32 -16
- package/autorest/codegen/models/credential_model.py +55 -0
- package/autorest/codegen/models/credential_schema.py +21 -16
- package/autorest/codegen/models/credential_schema_policy.py +11 -15
- package/autorest/codegen/models/dictionary_schema.py +27 -24
- package/autorest/codegen/models/enum_schema.py +41 -62
- package/autorest/codegen/models/imports.py +72 -41
- package/autorest/codegen/models/list_schema.py +40 -18
- package/autorest/codegen/models/lro_operation.py +61 -25
- package/autorest/codegen/models/lro_paging_operation.py +5 -6
- package/autorest/codegen/models/object_schema.py +113 -59
- package/autorest/codegen/models/operation.py +251 -111
- package/autorest/codegen/models/operation_group.py +67 -32
- package/autorest/codegen/models/paging_operation.py +48 -21
- package/autorest/codegen/models/parameter.py +182 -90
- package/autorest/codegen/models/parameter_list.py +184 -163
- package/autorest/codegen/models/primitive_schemas.py +89 -70
- package/autorest/codegen/models/property.py +49 -31
- package/autorest/codegen/models/request_builder.py +67 -32
- package/autorest/codegen/models/request_builder_parameter.py +54 -23
- package/autorest/codegen/models/request_builder_parameter_list.py +77 -108
- package/autorest/codegen/models/schema_request.py +16 -6
- package/autorest/codegen/models/schema_response.py +35 -17
- package/autorest/codegen/models/utils.py +24 -1
- package/autorest/codegen/serializers/__init__.py +273 -89
- package/autorest/codegen/serializers/builder_serializer.py +711 -333
- package/autorest/codegen/serializers/client_serializer.py +114 -43
- package/autorest/codegen/serializers/general_serializer.py +84 -25
- package/autorest/codegen/serializers/import_serializer.py +93 -31
- package/autorest/codegen/serializers/metadata_serializer.py +73 -24
- package/autorest/codegen/serializers/model_base_serializer.py +42 -14
- package/autorest/codegen/serializers/model_generic_serializer.py +1 -4
- package/autorest/codegen/serializers/model_init_serializer.py +5 -1
- package/autorest/codegen/serializers/model_python3_serializer.py +9 -8
- package/autorest/codegen/serializers/operation_groups_serializer.py +20 -8
- package/autorest/codegen/serializers/operations_init_serializer.py +23 -11
- package/autorest/codegen/serializers/patch_serializer.py +14 -2
- package/autorest/codegen/serializers/{rest_serializer.py → request_builders_serializer.py} +29 -12
- package/autorest/codegen/serializers/utils.py +60 -21
- package/autorest/codegen/templates/CHANGELOG.md.jinja2 +6 -0
- package/autorest/codegen/templates/LICENSE.jinja2 +21 -0
- package/autorest/codegen/templates/MANIFEST.in.jinja2 +7 -0
- package/autorest/codegen/templates/README.md.jinja2 +105 -0
- package/autorest/codegen/templates/config.py.jinja2 +4 -4
- package/autorest/codegen/templates/dev_requirements.txt.jinja2 +10 -0
- package/autorest/codegen/templates/enum.py.jinja2 +1 -1
- package/autorest/codegen/templates/enum_container.py.jinja2 +0 -1
- package/autorest/codegen/templates/init.py.jinja2 +9 -6
- package/autorest/codegen/templates/keywords.jinja2 +14 -1
- package/autorest/codegen/templates/lro_operation.py.jinja2 +5 -7
- package/autorest/codegen/templates/lro_paging_operation.py.jinja2 +5 -7
- package/autorest/codegen/templates/metadata.json.jinja2 +10 -9
- package/autorest/codegen/templates/model.py.jinja2 +1 -6
- package/autorest/codegen/templates/model_init.py.jinja2 +7 -4
- package/autorest/codegen/templates/operation.py.jinja2 +8 -11
- package/autorest/codegen/templates/operation_group.py.jinja2 +15 -18
- package/autorest/codegen/templates/operation_groups_container.py.jinja2 +1 -2
- package/autorest/codegen/templates/operations_folder_init.py.jinja2 +4 -0
- package/autorest/codegen/templates/paging_operation.py.jinja2 +7 -8
- package/autorest/codegen/templates/patch.py.jinja2 +18 -29
- package/autorest/codegen/templates/request_builder.py.jinja2 +19 -14
- package/autorest/codegen/templates/setup.py.jinja2 +79 -20
- package/autorest/codegen/templates/vendor.py.jinja2 +12 -2
- package/autorest/jsonrpc/__init__.py +7 -12
- package/autorest/jsonrpc/localapi.py +4 -3
- package/autorest/jsonrpc/server.py +13 -6
- package/autorest/jsonrpc/stdstream.py +13 -6
- package/autorest/m2r/__init__.py +5 -8
- package/autorest/multiapi/__init__.py +24 -14
- package/autorest/multiapi/models/client.py +21 -11
- package/autorest/multiapi/models/code_model.py +23 -10
- package/autorest/multiapi/models/config.py +4 -1
- package/autorest/multiapi/models/constant_global_parameter.py +1 -0
- package/autorest/multiapi/models/global_parameter.py +2 -1
- package/autorest/multiapi/models/global_parameters.py +14 -8
- package/autorest/multiapi/models/imports.py +35 -18
- package/autorest/multiapi/models/mixin_operation.py +5 -5
- package/autorest/multiapi/models/operation_group.py +2 -1
- package/autorest/multiapi/models/operation_mixin_group.py +21 -10
- package/autorest/multiapi/serializers/__init__.py +18 -23
- package/autorest/multiapi/serializers/import_serializer.py +47 -15
- package/autorest/multiapi/serializers/multiapi_serializer.py +17 -17
- package/autorest/multiapi/templates/multiapi_operations_mixin.py.jinja2 +1 -1
- package/autorest/multiapi/utils.py +3 -3
- package/autorest/namer/__init__.py +2 -4
- package/autorest/namer/name_converter.py +200 -103
- package/autorest/namer/python_mappings.py +10 -22
- package/package.json +3 -3
- package/run-python3.js +2 -3
- package/venvtools.py +1 -1
- package/autorest/codegen/models/rest.py +0 -42
|
@@ -12,7 +12,11 @@ from ...jsonrpc import AutorestAPI
|
|
|
12
12
|
|
|
13
13
|
class MultiAPISerializer:
|
|
14
14
|
def __init__(
|
|
15
|
-
self,
|
|
15
|
+
self,
|
|
16
|
+
conf: Dict[str, Any],
|
|
17
|
+
async_mode: bool,
|
|
18
|
+
autorestapi: AutorestAPI,
|
|
19
|
+
service_client_filename: str,
|
|
16
20
|
):
|
|
17
21
|
self.conf = conf
|
|
18
22
|
self.async_mode = async_mode
|
|
@@ -33,64 +37,60 @@ class MultiAPISerializer:
|
|
|
33
37
|
return Path(filename)
|
|
34
38
|
|
|
35
39
|
def serialize(self):
|
|
36
|
-
self._autorestapi.write_file(
|
|
40
|
+
self._autorestapi.write_file(
|
|
41
|
+
self._get_file_path("__init__.py"), self.serialize_multiapi_init()
|
|
42
|
+
)
|
|
37
43
|
|
|
38
44
|
service_client_filename_with_py_extension = self.service_client_filename + ".py"
|
|
39
45
|
self._autorestapi.write_file(
|
|
40
46
|
self._get_file_path(service_client_filename_with_py_extension),
|
|
41
|
-
self.serialize_multiapi_client()
|
|
47
|
+
self.serialize_multiapi_client(),
|
|
42
48
|
)
|
|
43
49
|
|
|
44
50
|
configuration_filename = "_configuration.py"
|
|
45
51
|
self._autorestapi.write_file(
|
|
46
52
|
self._get_file_path(configuration_filename),
|
|
47
|
-
self.serialize_multiapi_config()
|
|
53
|
+
self.serialize_multiapi_config(),
|
|
48
54
|
)
|
|
49
55
|
|
|
50
56
|
operation_mixins_filename = "_operations_mixin.py"
|
|
51
57
|
if self.conf["mixin_operations"]:
|
|
52
58
|
self._autorestapi.write_file(
|
|
53
59
|
self._get_file_path(operation_mixins_filename),
|
|
54
|
-
self.serialize_multiapi_operation_mixins()
|
|
60
|
+
self.serialize_multiapi_operation_mixins(),
|
|
55
61
|
)
|
|
56
62
|
|
|
57
63
|
if self._autorestapi.read_file("_version.py"):
|
|
58
64
|
self._autorestapi.write_file(
|
|
59
|
-
"_version.py",
|
|
60
|
-
self._autorestapi.read_file("_version.py")
|
|
65
|
+
"_version.py", self._autorestapi.read_file("_version.py")
|
|
61
66
|
)
|
|
62
67
|
elif self._autorestapi.read_file("version.py"):
|
|
63
68
|
self._autorestapi.write_file(
|
|
64
|
-
"_version.py",
|
|
65
|
-
self._autorestapi.read_file("version.py")
|
|
69
|
+
"_version.py", self._autorestapi.read_file("version.py")
|
|
66
70
|
)
|
|
67
71
|
else:
|
|
68
72
|
self._autorestapi.write_file(
|
|
69
|
-
Path("_version.py"),
|
|
70
|
-
self.serialize_multiapi_version()
|
|
73
|
+
Path("_version.py"), self.serialize_multiapi_version()
|
|
71
74
|
)
|
|
72
75
|
|
|
73
76
|
# don't erase patch file
|
|
74
77
|
if self._autorestapi.read_file("_patch.py"):
|
|
75
78
|
self._autorestapi.write_file(
|
|
76
|
-
"_patch.py",
|
|
77
|
-
self._autorestapi.read_file("_patch.py")
|
|
79
|
+
"_patch.py", self._autorestapi.read_file("_patch.py")
|
|
78
80
|
)
|
|
79
81
|
|
|
80
82
|
self._autorestapi.write_file(
|
|
81
|
-
Path("models.py"),
|
|
82
|
-
self.serialize_multiapi_models()
|
|
83
|
+
Path("models.py"), self.serialize_multiapi_models()
|
|
83
84
|
)
|
|
84
85
|
|
|
85
86
|
self._autorestapi.write_file(Path("py.typed"), "# Marker file for PEP 561.")
|
|
86
87
|
|
|
87
|
-
|
|
88
88
|
def serialize_multiapi_init(self) -> str:
|
|
89
89
|
template = self.env.get_template("multiapi_init.py.jinja2")
|
|
90
90
|
return template.render(
|
|
91
91
|
service_client_filename=self.service_client_filename,
|
|
92
92
|
client_name=self.conf["client_name"],
|
|
93
|
-
async_mode=self.async_mode
|
|
93
|
+
async_mode=self.async_mode,
|
|
94
94
|
)
|
|
95
95
|
|
|
96
96
|
def serialize_multiapi_client(self) -> str:
|
|
@@ -34,5 +34,5 @@ class {{ code_model.service_client.name }}OperationsMixin(object):
|
|
|
34
34
|
mixin_instance._serialize.client_side_validation = False
|
|
35
35
|
{% endif %}
|
|
36
36
|
mixin_instance._deserialize = Deserializer(self._models_dict(api_version))
|
|
37
|
-
return {{ "await " if mixin_operation.coroutine(async_mode) }}mixin_instance.{{ mixin_operation.name }}({{ mixin_operation.call }}
|
|
37
|
+
return {{ "await " if mixin_operation.coroutine(async_mode) }}mixin_instance.{{ mixin_operation.name }}({{ mixin_operation.call(async_mode) }})
|
|
38
38
|
{% endfor %}
|
|
@@ -12,14 +12,14 @@ _LOGGER = logging.getLogger(__name__)
|
|
|
12
12
|
def _sync_or_async(async_mode: bool) -> str:
|
|
13
13
|
return "async" if async_mode else "sync"
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
def _get_default_api_version_from_list(
|
|
16
17
|
mod_to_api_version: Dict[str, str],
|
|
17
18
|
api_versions_list: List[str],
|
|
18
19
|
preview_mode: bool,
|
|
19
|
-
user_specified_default_api: Optional[str]
|
|
20
|
+
user_specified_default_api: Optional[str],
|
|
20
21
|
) -> str:
|
|
21
|
-
"""Get the floating latest, from a random list of API versions.
|
|
22
|
-
"""
|
|
22
|
+
"""Get the floating latest, from a random list of API versions."""
|
|
23
23
|
|
|
24
24
|
# I need user_specified_default_api to be v2019_06_07_preview shaped if it exists, let's be smart
|
|
25
25
|
# and change it automatically so I can take both syntax as input
|
|
@@ -16,10 +16,8 @@ _LOGGER = logging.getLogger(__name__)
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class Namer(YamlUpdatePlugin):
|
|
19
|
-
"""Add Python naming information.
|
|
20
|
-
"""
|
|
19
|
+
"""Add Python naming information."""
|
|
21
20
|
|
|
22
21
|
def update_yaml(self, yaml_data: Dict[str, Any]) -> None:
|
|
23
|
-
"""Convert in place the YAML str.
|
|
24
|
-
"""
|
|
22
|
+
"""Convert in place the YAML str."""
|
|
25
23
|
NameConverter.convert_yaml_names(yaml_data)
|