From 2c720acd80047e190d33ac3900e140b5b9d76c65 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Mon, 28 Jul 2025 14:38:42 -0400 Subject: [PATCH 1/2] don't hardcode to first client in samples --- .../generator/pygen/codegen/serializers/sample_serializer.py | 5 +++-- .../generator/pygen/codegen/templates/sample.py.jinja2 | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/sample_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/sample_serializer.py index e26d3ad105f..87381cafd7e 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/sample_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/sample_serializer.py @@ -69,7 +69,7 @@ def _imports(self) -> FileImportSerializer: def _client_params(self) -> Dict[str, Any]: # client params special_param = {} - credential_type = getattr(self.code_model.clients[0].credential, "type", None) + credential_type = getattr(self.operation_group.client.credential, "type", None) if isinstance(credential_type, TokenCredentialType): special_param.update({"credential": "DefaultAzureCredential()"}) elif isinstance(credential_type, KeyCredentialType): @@ -78,7 +78,7 @@ def _client_params(self) -> Dict[str, Any]: params = [ p for p in ( - self.code_model.clients[0].parameters.positional + self.code_model.clients[0].parameters.keyword_only + self.operation_group.client.parameters.positional + self.operation_group.client.parameters.keyword_only ) if not p.optional and p.client_default_value is None ] @@ -153,6 +153,7 @@ def serialize(self) -> str: operation_result, return_var = self._operation_result() return self.env.get_template("sample.py.jinja2").render( code_model=self.code_model, + client=self.operation_group.client, file_name=self.file_name, operation_result=operation_result, operation_params=self._operation_params(), diff --git a/packages/http-client-python/generator/pygen/codegen/templates/sample.py.jinja2 b/packages/http-client-python/generator/pygen/codegen/templates/sample.py.jinja2 index e93b6fd80ca..538b480dd9a 100644 --- a/packages/http-client-python/generator/pygen/codegen/templates/sample.py.jinja2 +++ b/packages/http-client-python/generator/pygen/codegen/templates/sample.py.jinja2 @@ -27,7 +27,7 @@ {% endif %} """ def main(): - client = {{ code_model.clients[0].name }}( + client = {{ client.name }}( {% for key,value in client_params.items() %} {{ key }}={{ value }}, {% endfor %} From 7a71328d2d85d50266542df60ffce09d13b729f3 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Mon, 28 Jul 2025 14:39:19 -0400 Subject: [PATCH 2/2] add changeset --- .../python-multiClientSampleFix-2025-6-28-14-39-15.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/python-multiClientSampleFix-2025-6-28-14-39-15.md diff --git a/.chronus/changes/python-multiClientSampleFix-2025-6-28-14-39-15.md b/.chronus/changes/python-multiClientSampleFix-2025-6-28-14-39-15.md new file mode 100644 index 00000000000..b79d33c37c2 --- /dev/null +++ b/.chronus/changes/python-multiClientSampleFix-2025-6-28-14-39-15.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Don't hardcode client in sample to first client in list \ No newline at end of file