@typespec/http-client-python 0.9.3-dev.2 → 0.11.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.
Files changed (42) hide show
  1. package/README.md +19 -36
  2. package/dist/emitter/emitter.js +40 -0
  3. package/dist/emitter/emitter.js.map +1 -1
  4. package/dist/emitter/http.js +5 -2
  5. package/dist/emitter/http.js.map +1 -1
  6. package/dist/emitter/utils.d.ts.map +1 -1
  7. package/dist/emitter/utils.js +9 -1
  8. package/dist/emitter/utils.js.map +1 -1
  9. package/emitter/src/emitter.ts +46 -0
  10. package/emitter/src/http.ts +12 -2
  11. package/emitter/src/utils.ts +11 -1
  12. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  13. package/eng/scripts/setup/__pycache__/venvtools.cpython-39.pyc +0 -0
  14. package/eng/scripts/setup/install.py +1 -0
  15. package/eng/scripts/setup/run_tsp.py +2 -3
  16. package/generator/build/lib/pygen/codegen/models/client.py +39 -2
  17. package/generator/build/lib/pygen/codegen/models/parameter.py +3 -0
  18. package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +32 -6
  19. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +28 -14
  20. package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +6 -1
  21. package/generator/build/lib/pygen/codegen/serializers/sample_serializer.py +2 -2
  22. package/generator/build/lib/pygen/codegen/templates/client.py.jinja2 +1 -1
  23. package/generator/build/lib/pygen/codegen/templates/config.py.jinja2 +2 -8
  24. package/generator/component-detection-pip-report.json +4 -5
  25. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  26. package/generator/pygen/codegen/models/client.py +39 -2
  27. package/generator/pygen/codegen/models/parameter.py +3 -0
  28. package/generator/pygen/codegen/serializers/client_serializer.py +32 -6
  29. package/generator/pygen/codegen/serializers/general_serializer.py +28 -14
  30. package/generator/pygen/codegen/serializers/parameter_serializer.py +6 -1
  31. package/generator/pygen/codegen/serializers/sample_serializer.py +2 -2
  32. package/generator/pygen/codegen/templates/client.py.jinja2 +1 -1
  33. package/generator/pygen/codegen/templates/config.py.jinja2 +2 -8
  34. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +50 -0
  35. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +44 -0
  36. package/generator/test/azure/requirements.txt +4 -3
  37. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +24 -0
  38. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +1 -1
  39. package/generator/test/generic_mock_api_tests/test_parameters_path.py +22 -0
  40. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +1 -1
  41. package/generator/test/unbranded/requirements.txt +1 -0
  42. package/package.json +5 -5
@@ -0,0 +1,44 @@
1
+ # -------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Corporation. All rights reserved.
3
+ # Licensed under the MIT License. See License.txt in the project root for
4
+ # license information.
5
+ # --------------------------------------------------------------------------
6
+ from specs.azure.clientgenerator.core.clientinitialization import (
7
+ HeaderParamClient,
8
+ MultipleParamsClient,
9
+ MixedParamsClient,
10
+ PathParamClient,
11
+ ParamAliasClient,
12
+ )
13
+ from specs.azure.clientgenerator.core.clientinitialization.models import Input
14
+
15
+
16
+ def test_header_param_client():
17
+ with HeaderParamClient("test-name-value") as client:
18
+ client.with_query(id="test-id")
19
+ client.with_body(Input(name="test-name"))
20
+
21
+
22
+ def test_multiple_params_client():
23
+ with MultipleParamsClient("test-name-value", "us-west") as client:
24
+ client.with_query(id="test-id")
25
+ client.with_body(Input(name="test-name"))
26
+
27
+
28
+ def test_mixed_params_client():
29
+ with MixedParamsClient("test-name-value") as client:
30
+ client.with_query(region="us-west", id="test-id")
31
+ client.with_body(Input(name="test-name"), region="us-west")
32
+
33
+
34
+ def test_path_param_client():
35
+ with PathParamClient("sample-blob") as client:
36
+ client.with_query(format="text")
37
+ client.get_standalone()
38
+ client.delete_standalone()
39
+
40
+
41
+ def test_param_alias_client():
42
+ with ParamAliasClient("sample-blob") as client:
43
+ client.with_aliased_name()
44
+ client.with_original_name()
@@ -1,12 +1,12 @@
1
1
  -r ../dev_requirements.txt
2
2
  -e ../../
3
- azure-core==1.30.0
4
- azure-mgmt-core==1.3.2
3
+ azure-mgmt-core==1.5.0
5
4
 
6
5
  # only for azure
7
6
  -e ./generated/azure-client-generator-core-access
8
- -e ./generated/azure-client-generator-core-usage
7
+ -e ./generated/azure-client-generator-core-client-initialization
9
8
  -e ./generated/azure-client-generator-core-flatten-property
9
+ -e ./generated/azure-client-generator-core-usage
10
10
  -e ./generated/azure-core-basic
11
11
  -e ./generated/azure-core-scalar
12
12
  -e ./generated/azure-core-lro-rpc
@@ -38,6 +38,7 @@ azure-mgmt-core==1.3.2
38
38
  -e ./generated/encode-numeric
39
39
  -e ./generated/parameters-basic
40
40
  -e ./generated/parameters-collection-format
41
+ -e ./generated/parameters-path
41
42
  -e ./generated/parameters-spread
42
43
  -e ./generated/serialization-encoded-name-json
43
44
  -e ./generated/server-endpoint-not-defined
@@ -0,0 +1,24 @@
1
+ # -------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Corporation. All rights reserved.
3
+ # Licensed under the MIT License. See License.txt in the project root for
4
+ # license information.
5
+ # --------------------------------------------------------------------------
6
+ import pytest
7
+ from parameters.path.aio import PathClient
8
+
9
+
10
+ @pytest.fixture
11
+ async def client():
12
+ async with PathClient() as client:
13
+ yield client
14
+
15
+
16
+ @pytest.mark.asyncio
17
+ async def test_normal(client: PathClient):
18
+ await client.normal("foo")
19
+
20
+
21
+ @pytest.mark.asyncio
22
+ async def test_optional(client: PathClient):
23
+ await client.optional()
24
+ await client.optional(name="foo")
@@ -28,7 +28,7 @@ async def test_create_resource(client: JsonMergePatchClient):
28
28
  map={"key": inner_madge},
29
29
  array=[inner_madge],
30
30
  int_value=1,
31
- float_value=1.1,
31
+ float_value=1.25,
32
32
  inner_model=inner_madge,
33
33
  int_array=[1, 2, 3],
34
34
  )
@@ -0,0 +1,22 @@
1
+ # -------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Corporation. All rights reserved.
3
+ # Licensed under the MIT License. See License.txt in the project root for
4
+ # license information.
5
+ # --------------------------------------------------------------------------
6
+ import pytest
7
+ from parameters.path import PathClient
8
+
9
+
10
+ @pytest.fixture
11
+ def client():
12
+ with PathClient() as client:
13
+ yield client
14
+
15
+
16
+ def test_normal(client: PathClient):
17
+ client.normal("foo")
18
+
19
+
20
+ def test_optional(client: PathClient):
21
+ client.optional()
22
+ client.optional(name="foo")
@@ -27,7 +27,7 @@ def test_create_resource(client: JsonMergePatchClient):
27
27
  map={"key": inner_madge},
28
28
  array=[inner_madge],
29
29
  int_value=1,
30
- float_value=1.1,
30
+ float_value=1.25,
31
31
  inner_model=inner_madge,
32
32
  int_array=[1, 2, 3],
33
33
  )
@@ -10,6 +10,7 @@
10
10
  -e ./generated/encode-numeric
11
11
  -e ./generated/parameters-basic
12
12
  -e ./generated/parameters-collection-format
13
+ -e ./generated/parameters-path
13
14
  -e ./generated/parameters-spread
14
15
  -e ./generated/serialization-encoded-name-json
15
16
  -e ./generated/server-endpoint-not-defined
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/http-client-python",
3
- "version": "0.9.3-dev.2",
3
+ "version": "0.11.0",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec emitter for Python SDKs",
6
6
  "homepage": "https://typespec.io",
@@ -58,7 +58,7 @@
58
58
  "@azure-tools/typespec-azure-core": ">=0.54.0 <1.0.0",
59
59
  "@azure-tools/typespec-azure-resource-manager": ">=0.54.0 <1.0.0",
60
60
  "@azure-tools/typespec-azure-rulesets": ">=0.54.0 <1.0.0",
61
- "@azure-tools/typespec-client-generator-core": ">=0.54.0 <1.0.0",
61
+ "@azure-tools/typespec-client-generator-core": ">=0.54.2 <1.0.0",
62
62
  "@typespec/compiler": "^1.0.0-0",
63
63
  "@typespec/http": "^1.0.0-0",
64
64
  "@typespec/openapi": "^1.0.0-0",
@@ -81,8 +81,8 @@
81
81
  "@azure-tools/typespec-azure-core": "~0.54.0",
82
82
  "@azure-tools/typespec-azure-resource-manager": "~0.54.0",
83
83
  "@azure-tools/typespec-azure-rulesets": "~0.54.0",
84
- "@azure-tools/typespec-client-generator-core": "~0.54.0",
85
- "@azure-tools/azure-http-specs": "0.1.0-alpha.13",
84
+ "@azure-tools/typespec-client-generator-core": "~0.54.2",
85
+ "@azure-tools/azure-http-specs": "0.1.0-alpha.14",
86
86
  "@typespec/compiler": "^1.0.0-0",
87
87
  "@typespec/http": "^1.0.0-0",
88
88
  "@typespec/openapi": "^1.0.0-0",
@@ -92,7 +92,7 @@
92
92
  "@typespec/sse": "~0.68.0",
93
93
  "@typespec/streams": "~0.68.0",
94
94
  "@typespec/xml": "~0.68.0",
95
- "@typespec/http-specs": "0.1.0-alpha.17",
95
+ "@typespec/http-specs": "0.1.0-alpha.19",
96
96
  "@types/js-yaml": "~4.0.5",
97
97
  "@types/node": "~22.13.14",
98
98
  "@types/semver": "7.5.8",