ab-openapi-python-generator 2.2.1__tar.gz → 2.2.2__tar.gz

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 (94) hide show
  1. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/PKG-INFO +1 -1
  2. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/tutorial/index.md +4 -4
  3. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/pyproject.toml +1 -1
  4. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/async_client_httpx_pydantic_2.jinja2 +5 -5
  5. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/sync_client_httpx_pydantic_2.jinja2 +5 -5
  6. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/models.py +0 -15
  7. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_generated_code.py +3 -3
  8. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.envrc.example +0 -0
  9. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.gitattributes +0 -0
  10. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.github/dependabot.yml +0 -0
  11. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.github/workflows/ci.yaml +0 -0
  12. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.github/workflows/publish.yaml +0 -0
  13. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.gitignore +0 -0
  14. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.pre-commit-config.yaml +0 -0
  15. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.vscode/launch.json +0 -0
  16. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/.vscode/tasks.json +0 -0
  17. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/LICENSE +0 -0
  18. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/Makefile +0 -0
  19. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/README.md +0 -0
  20. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/acknowledgements/index.md +0 -0
  21. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/css/custom.css +0 -0
  22. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/css/termynal.css +0 -0
  23. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/index.md +0 -0
  24. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/js/custom.js +0 -0
  25. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/js/termynal.js +0 -0
  26. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/openapi-definition.md +0 -0
  27. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/quick_start.md +0 -0
  28. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/references/index.md +0 -0
  29. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/references/module_usage.md +0 -0
  30. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/tutorial/advanced.md +0 -0
  31. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/docs/tutorial/authentication.md +0 -0
  32. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/logo.png +0 -0
  33. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/__init__.py +0 -0
  34. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/__main__.py +0 -0
  35. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/common.py +0 -0
  36. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/generate_data.py +0 -0
  37. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/__init__.py +0 -0
  38. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/__init__.py +0 -0
  39. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/client_generator.py +0 -0
  40. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/common.py +0 -0
  41. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/exception_generator.py +0 -0
  42. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/generator.py +0 -0
  43. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/jinja_config.py +0 -0
  44. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/model_generator.py +0 -0
  45. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/alias_union.jinja2 +0 -0
  46. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/discriminator_enum.jinja2 +0 -0
  47. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/enum.jinja2 +0 -0
  48. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/http_exception.jinja2 +0 -0
  49. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/models.jinja2 +0 -0
  50. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/language_converters/python/templates/models_pydantic_2.jinja2 +0 -0
  51. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/parsers/__init__.py +0 -0
  52. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/parsers/openapi_30.py +0 -0
  53. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/parsers/openapi_31.py +0 -0
  54. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/py.typed +0 -0
  55. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/src/ab_openapi_python_generator/version_detector.py +0 -0
  56. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/__init__.py +0 -0
  57. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/build_test_api/api.py +0 -0
  58. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/conftest.py +0 -0
  59. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_common_normalize_symbol.py +0 -0
  60. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/failing_api.json +0 -0
  61. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/gitea_issue_11.json +0 -0
  62. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_117.json +0 -0
  63. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_120.json +0 -0
  64. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_17.json +0 -0
  65. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_30_87.json +0 -0
  66. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_51.json +0 -0
  67. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_55.json +0 -0
  68. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_71.json +0 -0
  69. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_71_31.json +0 -0
  70. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_illegal_character_in_operation_id.json +0 -0
  71. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/issue_keyword_parameter_name.json +0 -0
  72. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/openapi_gitea_converted.json +0 -0
  73. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/swagger_petstore_3_0_4.yaml +0 -0
  74. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/swagger_petstore_3_1.yaml +0 -0
  75. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/test_api.json +0 -0
  76. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_data/test_api_31.json +0 -0
  77. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_generate_data.py +0 -0
  78. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_generate_data_negative.py +0 -0
  79. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_jinja_no_autoescape.py +0 -0
  80. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_main.py +0 -0
  81. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_model_docstring.py +0 -0
  82. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_model_generator.py +0 -0
  83. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_model_generator_edges.py +0 -0
  84. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_openapi_30.py +0 -0
  85. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_openapi_31.py +0 -0
  86. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_openapi_31_completeness.py +0 -0
  87. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_openapi_31_coverage.py +0 -0
  88. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_openapi_31_schema_features.py +0 -0
  89. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_service_generator.py +0 -0
  90. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_service_generator_edges.py +0 -0
  91. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_swagger_petstore_30.py +0 -0
  92. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_swagger_petstore_31.py +0 -0
  93. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tests/test_version_detector_edges.py +0 -0
  94. {ab_openapi_python_generator-2.2.1 → ab_openapi_python_generator-2.2.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ab-openapi-python-generator
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: Openapi Python Generator
5
5
  Project-URL: Homepage, https://github.com/auth-broker/openapi-python-generator
6
6
  Project-URL: Repository, https://github.com/auth-broker/openapi-python-generator
@@ -788,7 +788,7 @@ only sync (for __requests__) or only async (for __aiohttp__) services.
788
788
  ``` py
789
789
  ...
790
790
  async def async_root__get() -> RootResponse:
791
- base_path = APIConfig().base_path
791
+ base_url = APIConfig().base_url
792
792
  path = f"/"
793
793
  headers = {
794
794
  "Content-Type": "application/json",
@@ -797,7 +797,7 @@ only sync (for __requests__) or only async (for __aiohttp__) services.
797
797
  }
798
798
  query_params = {}
799
799
 
800
- with httpx.AsyncClient(base_url=base_path) as client:
800
+ with httpx.AsyncClient(base_url=base_url) as client:
801
801
  response = await client.request(
802
802
  method="get",
803
803
  url=path,
@@ -815,7 +815,7 @@ only sync (for __requests__) or only async (for __aiohttp__) services.
815
815
  ``` py
816
816
  ...
817
817
  def root__get() -> RootResponse:
818
- base_path = APIConfig().base_path
818
+ base_url = APIConfig().base_url
819
819
  path = f"/"
820
820
  headers = {
821
821
  "Content-Type": "application/json",
@@ -824,7 +824,7 @@ only sync (for __requests__) or only async (for __aiohttp__) services.
824
824
  }
825
825
  query_params = {}
826
826
 
827
- with httpx.Client(base_url=base_path) as client:
827
+ with httpx.Client(base_url=base_url) as client:
828
828
  response = client.request(
829
829
  method="get",
830
830
  url=path,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ab-openapi-python-generator"
3
- version = "2.2.1"
3
+ version = "2.2.2"
4
4
  description = "Openapi Python Generator"
5
5
  authors = [
6
6
  { name = "Marco Müllner", email = "muellnermarco@gmail.com" },
@@ -3,17 +3,17 @@
3
3
  from typing import Any, Dict, Optional, Union
4
4
 
5
5
  import httpx
6
- from pydantic import BaseModel
6
+ from pydantic import BaseModel, HttpUrl
7
7
 
8
8
  from ..models import *
9
- {% set _base_path = servers[0].url if servers|length > 0 else "/" %}
9
+ {% set _base_url = servers[0].url if servers|length > 0 else "/" %}
10
10
  from ..exceptions import HTTPException
11
11
 
12
12
 
13
13
  class AsyncClient(BaseModel):
14
14
  model_config = {"validate_assignment": True}
15
15
 
16
- base_path: str = "{{ _base_path }}"
16
+ base_url: str = "{{ _base_url }}"
17
17
  verify: Union[bool, str] = True
18
18
  {% if env_token_name is none %}
19
19
  access_token: Optional[str] = None
@@ -41,7 +41,7 @@ class AsyncClient(BaseModel):
41
41
 
42
42
  {% for op in operations %}
43
43
  async def {{ op.operation_id }}(self{% if op.params %}, {{ op.params }}{% endif %}) -> Any:
44
- base_path = self.base_path
44
+ base_url = self.base_url
45
45
  path = f"{{ op.path_name }}"
46
46
 
47
47
  headers = {
@@ -57,7 +57,7 @@ class AsyncClient(BaseModel):
57
57
  }
58
58
  query_params = {k: v for (k, v) in query_params.items() if v is not None}
59
59
 
60
- async with httpx.AsyncClient(base_url=base_path, verify=self.verify) as client:
60
+ async with httpx.AsyncClient(base_url=base_url, verify=self.verify) as client:
61
61
  response = await client.request(
62
62
  "{{ op.method }}",
63
63
  httpx.URL(path),
@@ -3,17 +3,17 @@
3
3
  from typing import Any, Dict, Optional, Union
4
4
 
5
5
  import httpx
6
- from pydantic import BaseModel
6
+ from pydantic import BaseModel, HttpUrl
7
7
 
8
8
  from ..models import *
9
- {% set _base_path = servers[0].url if servers|length > 0 else "/" %}
9
+ {% set _base_url = servers[0].url if servers|length > 0 else "/" %}
10
10
  from ..exceptions import HTTPException
11
11
 
12
12
 
13
13
  class SyncClient(BaseModel):
14
14
  model_config = {"validate_assignment": True}
15
15
 
16
- base_path: str = "{{ _base_path }}"
16
+ base_url: str = "{{ _base_url }}"
17
17
  verify: Union[bool, str] = True
18
18
  {% if env_token_name is none %}
19
19
  access_token: Optional[str] = None
@@ -41,7 +41,7 @@ class SyncClient(BaseModel):
41
41
 
42
42
  {% for op in operations %}
43
43
  def {{ op.operation_id }}(self{% if op.params %}, {{ op.params }}{% endif %}) -> Any:
44
- base_path = self.base_path
44
+ base_url = self.base_url
45
45
  path = f"{{ op.path_name }}"
46
46
 
47
47
  headers = {
@@ -57,7 +57,7 @@ class SyncClient(BaseModel):
57
57
  }
58
58
  query_params = {k: v for (k, v) in query_params.items() if v is not None}
59
59
 
60
- with httpx.Client(base_url=base_path, verify=self.verify) as client:
60
+ with httpx.Client(base_url=base_url, verify=self.verify) as client:
61
61
  response = client.request(
62
62
  "{{ op.method }}",
63
63
  httpx.URL(path),
@@ -80,21 +80,6 @@ class Model(BaseModel):
80
80
  properties: List[Property] = []
81
81
 
82
82
 
83
- class Service(BaseModel):
84
- file_name: str
85
- operations: List[ServiceOperation]
86
- content: str
87
- async_client: Optional[bool] = False
88
- library_import: str
89
- use_orjson: bool = False
90
-
91
-
92
- class APIConfig(BaseModel):
93
- file_name: str
94
- base_url: str
95
- content: str
96
-
97
-
98
83
  class ConversionResult(BaseModel):
99
84
  models: List[Model] = Field(default_factory=list)
100
85
  clients: List[Model] = Field(default_factory=list)
@@ -131,10 +131,10 @@ def test_generate_code(
131
131
 
132
132
  # Get the base URL from the API config
133
133
  if custom_ip is not None:
134
- api_config_instance.base_path = custom_ip
134
+ api_config_instance.base_url = custom_ip
135
135
  base_url = custom_ip
136
136
  else:
137
- base_url = api_config_instance.base_path
137
+ base_url = api_config_instance.base_url
138
138
 
139
139
  # Ensure base_url doesn't have trailing slash for consistent URL construction
140
140
  base_url = base_url.rstrip("/")
@@ -431,7 +431,7 @@ async def _run_service_tests_aiohttp(
431
431
  port = sockets[0].getsockname()[1]
432
432
 
433
433
  base_url = f"{scheme}://{host}:{port}"
434
- api_config_instance.base_path = base_url
434
+ api_config_instance.base_url = base_url
435
435
 
436
436
  try:
437
437
  # Call async generated functions