Skip to content

Commit 03c1731

Browse files
committed
update
1 parent 9d7e1ba commit 03c1731

File tree

8 files changed

+30
-27
lines changed

8 files changed

+30
-27
lines changed

packages/http-client-python/generator/pygen/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
from ._version import VERSION
1818

19-
2019
__version__ = VERSION
2120
_LOGGER = logging.getLogger(__name__)
2221

packages/http-client-python/generator/pygen/codegen/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from .models.code_model import CodeModel
1414
from .serializers import JinjaSerializer
1515

16-
1716
_LOGGER = logging.getLogger(__name__)
1817

1918

packages/http-client-python/generator/pygen/codegen/models/base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from abc import ABC, abstractmethod
88
from .imports import FileImport
99

10-
1110
if TYPE_CHECKING:
1211
from .code_model import CodeModel
1312
from .model_type import ModelType

packages/http-client-python/generator/pygen/codegen/models/enum_type.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from .utils import NamespaceType, add_to_pylint_disable
1111
from ...utils import NAME_LENGTH_LIMIT
1212

13-
1413
if TYPE_CHECKING:
1514
from .code_model import CodeModel
1615

packages/http-client-python/generator/pygen/codegen/serializers/sample_serializer.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
BodyParameter,
2121
FileImport,
2222
)
23+
from .utils import json_dumps_template, get_sub_type, get_model_type
2324

2425
_LOGGER = logging.getLogger(__name__)
2526

@@ -102,14 +103,18 @@ def _operation_params(self) -> dict[str, Any]:
102103
for p in (self.operation.parameters.positional + self.operation.parameters.keyword_only)
103104
if not p.client_default_value
104105
]
105-
failure_info = "fail to find required param named {}"
106106
operation_params = {}
107107
for param in params:
108108
if not param.optional:
109109
param_value = self.sample_params.get(param.wire_name)
110110
if not param_value:
111-
raise Exception(failure_info.format(param.client_name)) # pylint: disable=broad-exception-raised
112-
operation_params[param.client_name] = self.handle_param(param, param_value)
111+
model_type = get_model_type(param.type)
112+
param_type = get_sub_type(model_type) if model_type else param.type
113+
operation_params[param.client_name] = json_dumps_template(
114+
param_type.get_json_template_representation()
115+
)
116+
else:
117+
operation_params[param.client_name] = self.handle_param(param, param_value)
113118
return operation_params
114119

115120
def _operation_group_name(self) -> str:

packages/http-client-python/generator/pygen/codegen/serializers/test_serializer.py

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for
44
# license information.
55
# --------------------------------------------------------------------------
6-
from typing import Any, Optional
6+
from typing import Any
77
from jinja2 import Environment
88

99
from .import_serializer import FileImportSerializer
@@ -14,12 +14,9 @@
1414
OperationGroup,
1515
Client,
1616
OperationType,
17-
ModelType,
18-
BaseType,
19-
CombinedType,
2017
FileImport,
2118
)
22-
from .utils import json_dumps_template
19+
from .utils import json_dumps_template, get_sub_type, get_model_type
2320

2421

2522
def is_lro(operation_type: str) -> bool:
@@ -226,25 +223,12 @@ def breadth_search_operation_group(self) -> list[list[OperationGroup]]:
226223
queue.extend([current + [og] for og in current[-1].operation_groups])
227224
return result
228225

229-
def get_sub_type(self, param_type: ModelType) -> ModelType:
230-
if param_type.discriminated_subtypes:
231-
for item in param_type.discriminated_subtypes.values():
232-
return self.get_sub_type(item)
233-
return param_type
234-
235-
def get_model_type(self, param_type: BaseType) -> Optional[ModelType]:
236-
if isinstance(param_type, ModelType):
237-
return param_type
238-
if isinstance(param_type, CombinedType):
239-
return param_type.target_model_subtype((ModelType,))
240-
return None
241-
242226
def get_operation_params(self, operation: OperationType) -> dict[str, Any]:
243227
operation_params = {}
244228
required_params = [p for p in operation.parameters.method if not p.optional]
245229
for param in required_params:
246-
model_type = self.get_model_type(param.type)
247-
param_type = self.get_sub_type(model_type) if model_type else param.type
230+
model_type = get_model_type(param.type)
231+
param_type = get_sub_type(model_type) if model_type else param.type
248232
operation_params[param.client_name] = json_dumps_template(param_type.get_json_template_representation())
249233
return operation_params
250234

packages/http-client-python/generator/pygen/codegen/serializers/utils.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@
77
from typing import Optional, Any
88
from pathlib import Path
99

10+
from ..models import ModelType, BaseType, CombinedType
11+
12+
13+
def get_sub_type(param_type: ModelType) -> ModelType:
14+
if param_type.discriminated_subtypes:
15+
for item in param_type.discriminated_subtypes.values():
16+
return get_sub_type(item)
17+
return param_type
18+
19+
20+
def get_model_type(param_type: BaseType) -> Optional[ModelType]:
21+
if isinstance(param_type, ModelType):
22+
return param_type
23+
if isinstance(param_type, CombinedType):
24+
return param_type.target_model_subtype((ModelType,))
25+
return None
26+
1027

1128
def method_signature_and_response_type_annotation_template(
1229
*,

packages/http-client-python/generator/pygen/preprocess/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# license information.
55
# --------------------------------------------------------------------------
66
"""The preprocessing autorest plugin."""
7+
78
import copy
89
from typing import Callable, Any, Optional
910

0 commit comments

Comments
 (0)