@typespec/http-client-python 0.28.3 → 0.29.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 (99) hide show
  1. package/dist/emitter/code-model.d.ts.map +1 -1
  2. package/dist/emitter/code-model.js +1 -0
  3. package/dist/emitter/code-model.js.map +1 -1
  4. package/dist/emitter/constants.d.ts +6 -0
  5. package/dist/emitter/constants.d.ts.map +1 -0
  6. package/dist/emitter/constants.js +27 -0
  7. package/dist/emitter/constants.js.map +1 -0
  8. package/dist/emitter/emitter.d.ts.map +1 -1
  9. package/dist/emitter/emitter.js +169 -94
  10. package/dist/emitter/emitter.js.map +1 -1
  11. package/dist/emitter/http.d.ts.map +1 -1
  12. package/dist/emitter/http.js +33 -1
  13. package/dist/emitter/http.js.map +1 -1
  14. package/dist/emitter/lib.d.ts +33 -2
  15. package/dist/emitter/lib.d.ts.map +1 -1
  16. package/dist/emitter/lib.js +17 -0
  17. package/dist/emitter/lib.js.map +1 -1
  18. package/dist/emitter/run-python3.js +1 -1
  19. package/dist/emitter/run-python3.js.map +1 -1
  20. package/dist/emitter/types.d.ts.map +1 -1
  21. package/dist/emitter/types.js +31 -5
  22. package/dist/emitter/types.js.map +1 -1
  23. package/emitter/src/code-model.ts +1 -0
  24. package/emitter/src/constants.ts +27 -0
  25. package/emitter/src/emitter.ts +216 -96
  26. package/emitter/src/http.ts +29 -1
  27. package/emitter/src/lib.ts +20 -0
  28. package/emitter/src/run-python3.ts +1 -1
  29. package/emitter/src/types.ts +35 -5
  30. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  31. package/emitter/test/utils.test.ts +3 -0
  32. package/emitter/tsconfig.build.json +2 -1
  33. package/emitter/tsconfig.json +2 -1
  34. package/eng/scripts/ci/config/eslint-ci.config.mjs +10 -0
  35. package/eng/scripts/ci/config/mypy.ini +1 -1
  36. package/eng/scripts/ci/config/pylintrc +1 -1
  37. package/eng/scripts/ci/config/pyrightconfig.json +1 -1
  38. package/eng/scripts/ci/dev_requirements.txt +1 -1
  39. package/eng/scripts/ci/lint.ts +11 -4
  40. package/eng/scripts/ci/regenerate-common.ts +407 -136
  41. package/eng/scripts/ci/regenerate.ts +103 -194
  42. package/eng/scripts/ci/run-tests.ts +153 -48
  43. package/eng/scripts/ci/run_apiview.py +22 -16
  44. package/eng/scripts/ci/run_mypy.py +28 -18
  45. package/eng/scripts/ci/run_pylint.py +23 -16
  46. package/eng/scripts/ci/run_pyright.py +5 -2
  47. package/eng/scripts/ci/run_sphinx_build.py +24 -9
  48. package/eng/scripts/ci/util.py +61 -25
  49. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  50. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  51. package/eng/scripts/setup/build_pygen_wheel.py +3 -3
  52. package/eng/scripts/setup/install.py +3 -3
  53. package/eng/scripts/setup/install.ts +1 -1
  54. package/eng/scripts/setup/prepare.py +2 -2
  55. package/eng/scripts/setup/run-python3.ts +1 -1
  56. package/eng/scripts/setup/run_batch.py +197 -0
  57. package/eng/scripts/setup/venvtools.py +0 -1
  58. package/generator/build/lib/pygen/__init__.py +1 -3
  59. package/generator/build/lib/pygen/codegen/__init__.py +0 -1
  60. package/generator/build/lib/pygen/codegen/models/base.py +0 -1
  61. package/generator/build/lib/pygen/codegen/models/client.py +2 -1
  62. package/generator/build/lib/pygen/codegen/models/code_model.py +1 -0
  63. package/generator/build/lib/pygen/codegen/models/enum_type.py +0 -1
  64. package/generator/build/lib/pygen/codegen/models/model_type.py +1 -7
  65. package/generator/build/lib/pygen/codegen/models/parameter.py +16 -14
  66. package/generator/build/lib/pygen/codegen/serializers/__init__.py +27 -12
  67. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +12 -3
  68. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +6 -2
  69. package/generator/build/lib/pygen/codegen/serializers/import_serializer.py +17 -4
  70. package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +17 -11
  71. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +19 -7
  72. package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  73. package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  74. package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  75. package/generator/build/lib/pygen/preprocess/__init__.py +37 -30
  76. package/generator/component-detection-pip-report.json +7 -7
  77. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  78. package/generator/pygen/__init__.py +1 -3
  79. package/generator/pygen/codegen/__init__.py +0 -1
  80. package/generator/pygen/codegen/models/base.py +0 -1
  81. package/generator/pygen/codegen/models/client.py +2 -1
  82. package/generator/pygen/codegen/models/code_model.py +1 -0
  83. package/generator/pygen/codegen/models/enum_type.py +0 -1
  84. package/generator/pygen/codegen/models/model_type.py +1 -7
  85. package/generator/pygen/codegen/models/parameter.py +16 -14
  86. package/generator/pygen/codegen/serializers/__init__.py +27 -12
  87. package/generator/pygen/codegen/serializers/builder_serializer.py +12 -3
  88. package/generator/pygen/codegen/serializers/general_serializer.py +6 -2
  89. package/generator/pygen/codegen/serializers/import_serializer.py +17 -4
  90. package/generator/pygen/codegen/serializers/parameter_serializer.py +17 -11
  91. package/generator/pygen/codegen/templates/model_base.py.jinja2 +19 -7
  92. package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  93. package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  94. package/generator/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  95. package/generator/pygen/preprocess/__init__.py +37 -30
  96. package/generator/pygen.egg-info/PKG-INFO +1 -2
  97. package/generator/pygen.egg-info/requires.txt +1 -1
  98. package/generator/setup.py +1 -2
  99. package/package.json +24 -9
@@ -14,6 +14,9 @@ describe("typespec-python: utils", () => {
14
14
  pointInTimeUTC: "point_in_time_utc",
15
15
  diskSizeGB: "disk_size_gb",
16
16
  lastModifiedTS: "last_modified_ts",
17
+ "FOO-BAR": "foo_bar",
18
+ "FOO-BAR-BAZ": "foo_bar_baz",
19
+ "A-B": "a_b",
17
20
  };
18
21
  for (const [input, expected] of Object.entries(cases)) {
19
22
  strictEqual(camelToSnakeCase(input), expected);
@@ -2,10 +2,11 @@
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "noEmit": false,
5
+ "resolveJsonModule": true,
5
6
  "rootDir": "./src",
6
7
  "outDir": "../dist/emitter",
7
8
  "tsBuildInfoFile": "temp/tsconfig.tsbuildinfo"
8
9
  },
9
10
  "references": [],
10
- "include": ["src/**/*"]
11
+ "include": ["src/**/*", "../package.json"]
11
12
  }
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "extends": "../../../tsconfig.base.json",
3
3
  "compilerOptions": {
4
- "noEmit": true
4
+ "noEmit": true,
5
+ "resolveJsonModule": true
5
6
  },
6
7
  "include": ["src/**/*"]
7
8
  }
@@ -2,7 +2,11 @@
2
2
  // Standalone eslint config for http-client-python package
3
3
  // This config is used in CI where monorepo dependencies may not be available
4
4
  import eslint from "@eslint/js";
5
+ import { dirname } from "path";
5
6
  import tsEslint from "typescript-eslint";
7
+ import { fileURLToPath } from "url";
8
+
9
+ const root = dirname(dirname(dirname(dirname(fileURLToPath(import.meta.url)))));
6
10
 
7
11
  export default [
8
12
  {
@@ -11,6 +15,11 @@ export default [
11
15
  eslint.configs.recommended,
12
16
  ...tsEslint.configs.recommended,
13
17
  {
18
+ languageOptions: {
19
+ parserOptions: {
20
+ tsconfigRootDir: root,
21
+ },
22
+ },
14
23
  rules: {
15
24
  // TypeScript plugin overrides
16
25
  "@typescript-eslint/no-non-null-assertion": "off",
@@ -40,6 +49,7 @@ export default [
40
49
  "no-case-declarations": "off",
41
50
  "no-ex-assign": "off",
42
51
  "no-undef": "off",
52
+ "no-useless-assignment": "error",
43
53
  "prefer-const": [
44
54
  "warn",
45
55
  {
@@ -1,6 +1,6 @@
1
1
  # global configurations
2
2
  [mypy]
3
- python_version = 3.9
3
+ python_version = 3.10
4
4
  # Exclude mypy check for sub client tests
5
5
  exclude = .*/clientinitialization/.*\.py
6
6
 
@@ -1,5 +1,5 @@
1
1
  [MASTER]
2
- py-version=3.9
2
+ py-version=3.10
3
3
  ignore-patterns=test_*,conftest,setup
4
4
  reports=no
5
5
 
@@ -2,5 +2,5 @@
2
2
  "reportUnnecessaryCast": "warning",
3
3
  "reportTypeCommentUsage": true,
4
4
  "reportMissingImports": false,
5
- "pythonVersion": "3.9"
5
+ "pythonVersion": "3.10"
6
6
  }
@@ -7,6 +7,6 @@ colorama==0.4.6
7
7
  debugpy==1.8.2
8
8
  pytest==8.3.2
9
9
  coverage==7.6.1
10
- black==24.8.0
10
+ black==26.3.1
11
11
  ptvsd==4.3.2
12
12
  types-PyYAML==6.0.12.8
@@ -133,14 +133,21 @@ function runCommand(
133
133
  }
134
134
 
135
135
  async function lintEmitter(): Promise<boolean> {
136
- console.log(`\n${pc.bold("=== Linting TypeScript Emitter ===")}\n`);
136
+ console.log(`\n${pc.bold("=== Linting TypeScript ===")}\n`);
137
137
  // Run eslint with local config to avoid dependency on monorepo's eslint.config.js
138
138
  // This ensures the package can be linted in CI without full monorepo dependencies
139
+ // Lint both emitter/ and eng/scripts/ directories
139
140
  return runCommand(
140
141
  "eslint",
141
- ["emitter/", "--config", "eng/scripts/ci/config/eslint-ci.config.mjs", "--max-warnings=0"],
142
+ [
143
+ "emitter/",
144
+ "eng/scripts/",
145
+ "--config",
146
+ "eng/scripts/ci/config/eslint-ci.config.mjs",
147
+ "--max-warnings=0",
148
+ ],
142
149
  root,
143
- "eslint emitter/ --max-warnings=0",
150
+ "eslint emitter/ eng/scripts/ --max-warnings=0",
144
151
  );
145
152
  }
146
153
 
@@ -162,7 +169,7 @@ async function lintPygenSource(): Promise<boolean> {
162
169
  "generator/pygen",
163
170
  "--rcfile=eng/scripts/ci/config/pylintrc",
164
171
  "--recursive=y",
165
- "--py-version=3.9",
172
+ "--py-version=3.10",
166
173
  ]);
167
174
  }
168
175