From a473ef356f7f7eccb9699564461e645cf8e46779 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 23 Oct 2025 16:45:30 +0800 Subject: [PATCH 1/7] fix constant query --- .../generator/pygen/codegen/models/constant_type.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/http-client-python/generator/pygen/codegen/models/constant_type.py b/packages/http-client-python/generator/pygen/codegen/models/constant_type.py index 21cbb47b9eb..9dc88018a80 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/constant_type.py +++ b/packages/http-client-python/generator/pygen/codegen/models/constant_type.py @@ -119,3 +119,7 @@ def imports(self, **kwargs: Any) -> FileImport: @property def instance_check_template(self) -> str: return self.value_type.instance_check_template + + @property + def client_default_value(self) -> Any: + return self.value From d4595de1ee91a5ef501b581c19e2de17da7c61f8 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 23 Oct 2025 16:46:20 +0800 Subject: [PATCH 2/7] add changelog --- .chronus/changes/HEAD-2025-9-23-16-46-9.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/HEAD-2025-9-23-16-46-9.md diff --git a/.chronus/changes/HEAD-2025-9-23-16-46-9.md b/.chronus/changes/HEAD-2025-9-23-16-46-9.md new file mode 100644 index 00000000000..d3ccaa467ec --- /dev/null +++ b/.chronus/changes/HEAD-2025-9-23-16-46-9.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Fix runtime error for constant query parameter \ No newline at end of file From f510f59d3290a8fa88f3f04130b4e4c07d493b00 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 23 Oct 2025 17:39:01 +0800 Subject: [PATCH 3/7] update --- .../generator/pygen/codegen/models/constant_type.py | 4 ---- .../pygen/codegen/serializers/parameter_serializer.py | 6 ++++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/models/constant_type.py b/packages/http-client-python/generator/pygen/codegen/models/constant_type.py index 9dc88018a80..21cbb47b9eb 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/constant_type.py +++ b/packages/http-client-python/generator/pygen/codegen/models/constant_type.py @@ -119,7 +119,3 @@ def imports(self, **kwargs: Any) -> FileImport: @property def instance_check_template(self) -> str: return self.value_type.instance_check_template - - @property - def client_default_value(self) -> Any: - return self.value diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py index 6607fe02bd6..3d7f0367d89 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py @@ -202,8 +202,10 @@ def append_pop_kwarg(key: str, pop_type: PopKwargType) -> None: if is_content_type_optional and not type_annotation.startswith("Optional[") else type_annotation ) - if kwarg.client_default_value is not None or kwarg.optional: - if check_client_input and kwarg.check_client_input: + if kwarg.client_default_value is not None or kwarg.optional or kwarg.constant: + if kwarg.constant: + default_value = kwarg.type.get_declaration(None) + elif check_client_input and kwarg.check_client_input: default_value = f"self._config.{kwarg.client_name}" else: default_value = kwarg.client_default_value_declaration From 9c14b850102f127b72113662e8aace10f816bbce Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 24 Oct 2025 10:16:45 +0800 Subject: [PATCH 4/7] fix for api version --- .../pygen/codegen/serializers/parameter_serializer.py | 6 +++--- .../test/generic_mock_api_tests/test_typetest_scalar.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py index 3d7f0367d89..9091f86748d 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/parameter_serializer.py @@ -203,10 +203,10 @@ def append_pop_kwarg(key: str, pop_type: PopKwargType) -> None: else type_annotation ) if kwarg.client_default_value is not None or kwarg.optional or kwarg.constant: - if kwarg.constant: - default_value = kwarg.type.get_declaration(None) - elif check_client_input and kwarg.check_client_input: + if check_client_input and kwarg.check_client_input: default_value = f"self._config.{kwarg.client_name}" + elif kwarg.constant: + default_value = kwarg.type.get_declaration(None) else: default_value = kwarg.client_default_value_declaration if check_kwarg_dict and (kwarg.location in [ParameterLocation.HEADER, ParameterLocation.QUERY]): diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py b/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py index 32a1583ac11..2359ed1ed6a 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py +++ b/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py @@ -51,3 +51,7 @@ def test_decimal128_verify(client: ScalarClient): def test_decimal_verify(client: ScalarClient): prepare = client.decimal_verify.prepare_verify() client.decimal_verify.verify(reduce(lambda x, y: x + y, prepare)) + + +def test_constant_query(client: ScalarClient): + client.constant_query.post() From 96d9026c04a4381d6e9aac90d52047c758b5def5 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 24 Oct 2025 10:18:33 +0800 Subject: [PATCH 5/7] update test case --- .../test/generic_mock_api_tests/test_typetest_scalar.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py b/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py index 2359ed1ed6a..215018d1b83 100644 --- a/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py +++ b/packages/http-client-python/generator/test/generic_mock_api_tests/test_typetest_scalar.py @@ -53,5 +53,6 @@ def test_decimal_verify(client: ScalarClient): client.decimal_verify.verify(reduce(lambda x, y: x + y, prepare)) -def test_constant_query(client: ScalarClient): - client.constant_query.post() +# open this test case after adopt new version of http-specs for https://github.com/microsoft/typespec/pull/8807 +# def test_constant_query(client: ScalarClient): +# client.constant_query.post() From 03c5d898dccc783e26df0293fa5386e02d5c1a32 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 24 Oct 2025 14:46:06 +0800 Subject: [PATCH 6/7] Delete .chronus/changes/HEAD-2025-9-23-16-46-9.md --- .chronus/changes/HEAD-2025-9-23-16-46-9.md | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .chronus/changes/HEAD-2025-9-23-16-46-9.md diff --git a/.chronus/changes/HEAD-2025-9-23-16-46-9.md b/.chronus/changes/HEAD-2025-9-23-16-46-9.md deleted file mode 100644 index d3ccaa467ec..00000000000 --- a/.chronus/changes/HEAD-2025-9-23-16-46-9.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@typespec/http-client-python" ---- - -Fix runtime error for constant query parameter \ No newline at end of file From cba7ae3c164795042149e87859aab0aa38e809bc Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 24 Oct 2025 14:47:22 +0800 Subject: [PATCH 7/7] add changelog --- .../fix-python-constant-query-2025-9-24-14-46-59.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/fix-python-constant-query-2025-9-24-14-46-59.md diff --git a/.chronus/changes/fix-python-constant-query-2025-9-24-14-46-59.md b/.chronus/changes/fix-python-constant-query-2025-9-24-14-46-59.md new file mode 100644 index 00000000000..d3ccaa467ec --- /dev/null +++ b/.chronus/changes/fix-python-constant-query-2025-9-24-14-46-59.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Fix runtime error for constant query parameter \ No newline at end of file