robotframework-openapitools 1.0.0b3__py3-none-any.whl → 1.0.0b5__py3-none-any.whl
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.
- OpenApiDriver/openapi_executors.py +15 -11
- OpenApiDriver/openapi_reader.py +12 -13
- OpenApiDriver/openapidriver.libspec +5 -42
- OpenApiLibCore/__init__.py +0 -2
- OpenApiLibCore/annotations.py +8 -1
- OpenApiLibCore/data_generation/__init__.py +0 -2
- OpenApiLibCore/data_generation/body_data_generation.py +54 -73
- OpenApiLibCore/data_generation/data_generation_core.py +75 -82
- OpenApiLibCore/data_invalidation.py +38 -25
- OpenApiLibCore/dto_base.py +48 -105
- OpenApiLibCore/dto_utils.py +31 -3
- OpenApiLibCore/localized_faker.py +88 -0
- OpenApiLibCore/models.py +723 -0
- OpenApiLibCore/openapi_libcore.libspec +48 -284
- OpenApiLibCore/openapi_libcore.py +54 -71
- OpenApiLibCore/parameter_utils.py +20 -14
- OpenApiLibCore/path_functions.py +10 -10
- OpenApiLibCore/path_invalidation.py +5 -7
- OpenApiLibCore/protocols.py +13 -5
- OpenApiLibCore/request_data.py +67 -102
- OpenApiLibCore/resource_relations.py +6 -5
- OpenApiLibCore/validation.py +50 -167
- OpenApiLibCore/value_utils.py +46 -358
- openapi_libgen/__init__.py +0 -46
- openapi_libgen/command_line.py +7 -19
- openapi_libgen/generator.py +84 -0
- openapi_libgen/parsing_utils.py +9 -5
- openapi_libgen/spec_parser.py +41 -114
- {robotframework_openapitools-1.0.0b3.dist-info → robotframework_openapitools-1.0.0b5.dist-info}/METADATA +2 -1
- robotframework_openapitools-1.0.0b5.dist-info/RECORD +40 -0
- robotframework_openapitools-1.0.0b3.dist-info/RECORD +0 -37
- {robotframework_openapitools-1.0.0b3.dist-info → robotframework_openapitools-1.0.0b5.dist-info}/LICENSE +0 -0
- {robotframework_openapitools-1.0.0b3.dist-info → robotframework_openapitools-1.0.0b5.dist-info}/WHEEL +0 -0
- {robotframework_openapitools-1.0.0b3.dist-info → robotframework_openapitools-1.0.0b5.dist-info}/entry_points.txt +0 -0
openapi_libgen/spec_parser.py
CHANGED
@@ -1,13 +1,18 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
1
|
from os import getenv
|
3
2
|
from string import Template
|
4
|
-
from typing import
|
3
|
+
from typing import Generator
|
5
4
|
|
6
5
|
from robot.utils import is_truthy
|
7
6
|
|
8
7
|
from openapi_libgen.parsing_utils import remove_unsafe_characters_from_string
|
8
|
+
from OpenApiLibCore.models import (
|
9
|
+
ObjectSchema,
|
10
|
+
OpenApiObject,
|
11
|
+
OperationObject,
|
12
|
+
PathItemObject,
|
13
|
+
SchemaObjectTypes,
|
14
|
+
)
|
9
15
|
from OpenApiLibCore.parameter_utils import get_safe_name_for_oas_name
|
10
|
-
from OpenApiLibCore.value_utils import python_type_by_json_type_name
|
11
16
|
|
12
17
|
KEYWORD_TEMPLATE = r"""@keyword
|
13
18
|
{signature}
|
@@ -36,78 +41,29 @@ class BodyTemplate(Template):
|
|
36
41
|
BODY_TEMPLATE = BodyTemplate(BODY_TEMPLATE_)
|
37
42
|
|
38
43
|
|
39
|
-
|
40
|
-
class OperationDetails:
|
44
|
+
class OperationDetails(OperationObject):
|
41
45
|
path: str
|
42
46
|
method: str
|
43
|
-
parameters: list[dict[str, Any]]
|
44
|
-
request_body: dict[str, Any]
|
45
|
-
summary: str
|
46
|
-
description: str
|
47
|
-
operation_id: str | None = (
|
48
|
-
None # operationId MUST be unique within the spec, so no default ""
|
49
|
-
)
|
50
47
|
|
51
48
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
@dataclass
|
60
|
-
class BodyDetails:
|
61
|
-
schema: dict[str, Any]
|
62
|
-
|
63
|
-
|
64
|
-
def get_path_items(paths: dict[str, Any]) -> Generator[OperationDetails, None, None]:
|
65
|
-
for path, operation_items in paths.items():
|
66
|
-
for method, method_item in operation_items.items():
|
49
|
+
def get_path_items(
|
50
|
+
paths: dict[str, PathItemObject],
|
51
|
+
) -> Generator[OperationDetails, None, None]:
|
52
|
+
for path, path_item_object in paths.items():
|
53
|
+
operations = path_item_object.get_operations()
|
54
|
+
for method, operation_object in operations.items():
|
67
55
|
operation_details = OperationDetails(
|
68
56
|
path=path,
|
69
57
|
method=method,
|
70
|
-
|
71
|
-
parameters=
|
72
|
-
|
73
|
-
summary=
|
74
|
-
description=
|
58
|
+
operationId=operation_object.operationId,
|
59
|
+
parameters=operation_object.parameters,
|
60
|
+
requestBody=operation_object.requestBody,
|
61
|
+
summary=operation_object.summary,
|
62
|
+
description=operation_object.description,
|
75
63
|
)
|
76
64
|
yield operation_details
|
77
65
|
|
78
66
|
|
79
|
-
def get_parameter_details(
|
80
|
-
operation_details: OperationDetails,
|
81
|
-
) -> list[ParameterDetails]:
|
82
|
-
def _get_parameter_details(
|
83
|
-
data: OperationDetails,
|
84
|
-
) -> Generator[ParameterDetails, None, None]:
|
85
|
-
for param_data in data.parameters:
|
86
|
-
name = param_data["name"]
|
87
|
-
type = param_data["in"]
|
88
|
-
if not (schema := param_data.get("schema", {})):
|
89
|
-
content = param_data["content"]
|
90
|
-
for _, media_data in content.items():
|
91
|
-
schema = media_data["schema"]
|
92
|
-
|
93
|
-
yield ParameterDetails(
|
94
|
-
type=type,
|
95
|
-
name=name,
|
96
|
-
schema=schema,
|
97
|
-
)
|
98
|
-
|
99
|
-
return list(_get_parameter_details(data=operation_details))
|
100
|
-
|
101
|
-
|
102
|
-
def get_body_details(operation_details: OperationDetails) -> BodyDetails | None:
|
103
|
-
if not (body_data := operation_details.request_body):
|
104
|
-
return None
|
105
|
-
content = body_data["content"]
|
106
|
-
if not (schema := content.get("application/json")):
|
107
|
-
return None
|
108
|
-
return BodyDetails(schema=schema["schema"])
|
109
|
-
|
110
|
-
|
111
67
|
def get_keyword_signature(operation_details: OperationDetails) -> str:
|
112
68
|
USE_SUMMARY_AS_KEYWORD_NAME = getenv("USE_SUMMARY_AS_KEYWORD_NAME")
|
113
69
|
EXPAND_BODY_ARGUMENTS = getenv("EXPAND_BODY_ARGUMENTS")
|
@@ -116,21 +72,19 @@ def get_keyword_signature(operation_details: OperationDetails) -> str:
|
|
116
72
|
keyword_name = remove_unsafe_characters_from_string(
|
117
73
|
operation_details.summary
|
118
74
|
).lower()
|
119
|
-
elif operation_details.
|
75
|
+
elif operation_details.operationId:
|
120
76
|
keyword_name = remove_unsafe_characters_from_string(
|
121
|
-
operation_details.
|
77
|
+
operation_details.operationId
|
122
78
|
).lower()
|
123
79
|
else:
|
124
80
|
keyword_name = remove_unsafe_characters_from_string(
|
125
81
|
f"{operation_details.method}_{operation_details.path}"
|
126
|
-
)
|
127
|
-
|
128
|
-
parameters = get_parameter_details(operation_details=operation_details)
|
129
|
-
path_parameters = [p for p in parameters if p.type == "path"]
|
130
|
-
query_parameters = [p for p in parameters if p.type == "query"]
|
131
|
-
header_parameters = [p for p in parameters if p.type == "header"]
|
82
|
+
).lower()
|
132
83
|
|
133
|
-
|
84
|
+
parameters = operation_details.parameters or []
|
85
|
+
path_parameters = [p for p in parameters if p.in_ == "path" and p.schema_]
|
86
|
+
query_parameters = [p for p in parameters if p.in_ == "query" and p.schema_]
|
87
|
+
header_parameters = [p for p in parameters if p.in_ == "header" and p.schema_]
|
134
88
|
|
135
89
|
argument_parts: list[str] = []
|
136
90
|
# Keep track of the already used argument names. From the OAS:
|
@@ -139,34 +93,21 @@ def get_keyword_signature(operation_details: OperationDetails) -> str:
|
|
139
93
|
keyword_argument_names: set[str] = set()
|
140
94
|
|
141
95
|
for parameter in path_parameters:
|
142
|
-
|
143
|
-
parameter_python_type = "Any"
|
144
|
-
else:
|
145
|
-
parameter_json_type = parameter.schema["type"]
|
146
|
-
parameter_python_type = python_type_by_json_type_name(
|
147
|
-
parameter_json_type
|
148
|
-
).__name__
|
149
|
-
annotation = f"{parameter_python_type} = UNSET"
|
96
|
+
annotation = f"{parameter.schema_.annotation_string} = UNSET" # type: ignore[union-attr]
|
150
97
|
safe_name = get_safe_name_for_oas_name(parameter.name)
|
151
98
|
keyword_argument_names.add(safe_name)
|
152
99
|
argument = f", {safe_name}: {annotation}"
|
153
100
|
argument_parts.append(argument)
|
154
101
|
arguments = "".join(argument_parts)
|
155
102
|
|
156
|
-
if
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
else:
|
165
|
-
property_json_type = property_data["type"]
|
166
|
-
property_python_type = python_type_by_json_type_name(
|
167
|
-
property_json_type
|
168
|
-
).__name__
|
169
|
-
annotation = f"{property_python_type} = UNSET"
|
103
|
+
if operation_details.requestBody and operation_details.requestBody.schema_:
|
104
|
+
schema = operation_details.requestBody.schema_
|
105
|
+
if isinstance(schema, ObjectSchema) and is_truthy(EXPAND_BODY_ARGUMENTS):
|
106
|
+
body_properties: dict[str, SchemaObjectTypes] = getattr(
|
107
|
+
schema.properties, "root", {}
|
108
|
+
)
|
109
|
+
for property_name, property_schema in body_properties.items():
|
110
|
+
annotation = f"{property_schema.annotation_string} = UNSET"
|
170
111
|
safe_name = get_safe_name_for_oas_name(property_name)
|
171
112
|
if safe_name in keyword_argument_names:
|
172
113
|
safe_name = "body_" + safe_name
|
@@ -174,19 +115,12 @@ def get_keyword_signature(operation_details: OperationDetails) -> str:
|
|
174
115
|
argument = f", {safe_name}: {annotation}"
|
175
116
|
arguments += argument
|
176
117
|
else:
|
177
|
-
annotation = f"{
|
118
|
+
annotation = f"{schema.annotation_string} = UNSET"
|
178
119
|
argument = f", body: {annotation}"
|
179
120
|
arguments += argument
|
180
121
|
|
181
122
|
for parameter in query_parameters:
|
182
|
-
|
183
|
-
parameter_python_type = "Any"
|
184
|
-
else:
|
185
|
-
parameter_json_type = parameter.schema["type"]
|
186
|
-
parameter_python_type = python_type_by_json_type_name(
|
187
|
-
parameter_json_type
|
188
|
-
).__name__
|
189
|
-
annotation = f"{parameter_python_type} = UNSET"
|
123
|
+
annotation = f"{parameter.schema_.annotation_string} = UNSET" # type: ignore[union-attr]
|
190
124
|
safe_name = get_safe_name_for_oas_name(parameter.name)
|
191
125
|
if safe_name in keyword_argument_names:
|
192
126
|
safe_name = "query_" + safe_name
|
@@ -195,14 +129,7 @@ def get_keyword_signature(operation_details: OperationDetails) -> str:
|
|
195
129
|
arguments += argument
|
196
130
|
|
197
131
|
for parameter in header_parameters:
|
198
|
-
|
199
|
-
parameter_python_type = "Any"
|
200
|
-
else:
|
201
|
-
parameter_json_type = parameter.schema["type"]
|
202
|
-
parameter_python_type = python_type_by_json_type_name(
|
203
|
-
parameter_json_type
|
204
|
-
).__name__
|
205
|
-
annotation = f"{parameter_python_type} = UNSET"
|
132
|
+
annotation = f"{parameter.schema_.annotation_string} = UNSET" # type: ignore[union-attr]
|
206
133
|
safe_name = get_safe_name_for_oas_name(parameter.name)
|
207
134
|
if safe_name in keyword_argument_names:
|
208
135
|
safe_name = "header_" + safe_name
|
@@ -220,8 +147,8 @@ def get_keyword_body(data: OperationDetails) -> str:
|
|
220
147
|
return BODY_TEMPLATE.safe_substitute(path_value=data.path, method_value=data.method)
|
221
148
|
|
222
149
|
|
223
|
-
def get_keyword_data(
|
224
|
-
for path_item in get_path_items(
|
150
|
+
def get_keyword_data(openapi_object: OpenApiObject) -> Generator[str, None, None]:
|
151
|
+
for path_item in get_path_items(openapi_object.paths):
|
225
152
|
signature = get_keyword_signature(path_item)
|
226
153
|
body = get_keyword_body(path_item)
|
227
154
|
yield KEYWORD_TEMPLATE.format(signature=signature, body=body)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: robotframework-openapitools
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.0b5
|
4
4
|
Summary: A set of Robot Framework libraries to test APIs for which the OAS is available.
|
5
5
|
License: Apache License
|
6
6
|
Version 2.0, January 2004
|
@@ -220,6 +220,7 @@ Requires-Dist: Jinja2 (>=3.1.2)
|
|
220
220
|
Requires-Dist: black (>=24.1.0)
|
221
221
|
Requires-Dist: openapi-core (>=0.19.0)
|
222
222
|
Requires-Dist: prance[cli] (>=23)
|
223
|
+
Requires-Dist: pydantic (>=2.11.0)
|
223
224
|
Requires-Dist: requests (>=2.31.0)
|
224
225
|
Requires-Dist: rich_click (>=1.7.0)
|
225
226
|
Requires-Dist: robotframework (>=6.0.0,!=7.0.0)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
OpenApiDriver/__init__.py,sha256=YjHr-j8g9KwRriNCw_ABvCEbUEp118J70xeJ_t7qcas,1453
|
2
|
+
OpenApiDriver/openapi_executors.py,sha256=uVXECVQV6cn7dwJ1so_A736f_ziPUi55094UKA2SNoE,12721
|
3
|
+
OpenApiDriver/openapi_reader.py,sha256=1M3nFRRLgD3Vepiru_jqYgVrnkRznFpR7lzdUKetxYw,4340
|
4
|
+
OpenApiDriver/openapidriver.libspec,sha256=0wDFhYoYqsP8lfkgVZ5IVokpmwAtb8k3EFeQL6_s26s,26481
|
5
|
+
OpenApiDriver/openapidriver.py,sha256=vypR00YZS3ygGfFxdUedLdCm_f_bWDLMpD1vb49-O0A,15321
|
6
|
+
OpenApiDriver/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
OpenApiLibCore/__init__.py,sha256=CGfgD0W2GcRDc5Q-tDpWk4IDpUmdCSZVPZ18a_KN-co,1733
|
8
|
+
OpenApiLibCore/annotations.py,sha256=YmvWKTbhyxRk2aWFra3v-3p30e96TFJ-CV9f3X90rPs,238
|
9
|
+
OpenApiLibCore/data_generation/__init__.py,sha256=NJViPQGHkczF2gxfS0wE2vE3wCRU9ixDEwHPMZApu6A,206
|
10
|
+
OpenApiLibCore/data_generation/body_data_generation.py,sha256=GkoQec3hEbpRr_hMwFJjFDjACQ776Uj3x3bhmB4TJVo,8348
|
11
|
+
OpenApiLibCore/data_generation/data_generation_core.py,sha256=MUjMJR5luhuPIU9fO5DflJhB0a6LVrHHoTqpEajXqxM,7938
|
12
|
+
OpenApiLibCore/data_invalidation.py,sha256=UqCQe62fkTUQdYofbVpBBS11kFeOsN6DJHCRFy0FC9w,11158
|
13
|
+
OpenApiLibCore/dto_base.py,sha256=r7tek0Ui-Zl05Dk1jXAUT00SfcUuN7mprXolHSMXMaI,9313
|
14
|
+
OpenApiLibCore/dto_utils.py,sha256=-mpG2tsjRuldDH9hms1hay6kDNNvVXl7XzLu8RUxjIg,4173
|
15
|
+
OpenApiLibCore/localized_faker.py,sha256=-Z3ry6V7xIkmAlUq70a1L_OspAPZTDFt4RFo3zj4Llo,2205
|
16
|
+
OpenApiLibCore/models.py,sha256=EfSxhcY78qTVyzWp4wHLE5h1kYR4QhjGQ-mkmIwgxg4,22813
|
17
|
+
OpenApiLibCore/oas_cache.py,sha256=Z2v0mn6JwKchbUKojYVt9sXi8Mc4LoENtN_ekTUtzfI,387
|
18
|
+
OpenApiLibCore/openapi_libcore.libspec,sha256=YQUtfd21f2UKKGPItrhqkDzS7Enk_z6hAwiXgxE9O4M,44120
|
19
|
+
OpenApiLibCore/openapi_libcore.py,sha256=P2Uxd5QNM8bFKPHnNPl-Kjh-3Qf_3oKTn1frbD-FxRg,36070
|
20
|
+
OpenApiLibCore/parameter_utils.py,sha256=Df1RajxtZNLD5UDFEBxprxKpGiUn52SeG04Ms96JnDA,3527
|
21
|
+
OpenApiLibCore/path_functions.py,sha256=8WW4BA14hNDx4dD_F40EGZSgDWO3yk5CxhrjqGpIkeU,8002
|
22
|
+
OpenApiLibCore/path_invalidation.py,sha256=RIf6pZIszz13nfuIQzOzK8sXZCrFSmEbXivfpc1jGRg,1435
|
23
|
+
OpenApiLibCore/protocols.py,sha256=qvCLUohC8OZhTxtabYPLJE0gGWB9L6GHwdGT1T8zKpM,1072
|
24
|
+
OpenApiLibCore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
OpenApiLibCore/request_data.py,sha256=KK-pPyfZUJGh9uPNUrvYb-DxumPGH9vcqJ_bdKJnmYw,8887
|
26
|
+
OpenApiLibCore/resource_relations.py,sha256=38Cd9FVvV0FCiTMc5uQleRVyQFbvnGaoiXOruKcOpag,1773
|
27
|
+
OpenApiLibCore/validation.py,sha256=xdWLaYslwlbBesaBzJfoQeCuseiCSZyCdFC7JLGqGQQ,14977
|
28
|
+
OpenApiLibCore/value_utils.py,sha256=6DcTSpYlo_moAY04K45iSvREQXtO5d9IK8ln5RAaims,7545
|
29
|
+
openapi_libgen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
+
openapi_libgen/command_line.py,sha256=rWByjZDPYYra6WOsINL2zj5Ny3YSIXiTrhRjSBA4FRE,2380
|
31
|
+
openapi_libgen/generator.py,sha256=tO-ZKVqk9s5lx0Pz7Mzq5ChiZp-hOVomrrI3yiCqU_g,2767
|
32
|
+
openapi_libgen/parsing_utils.py,sha256=ORJJq8QNPMFUI_shdzeRFYydyy9YsEm0TaWrpqqZubI,1039
|
33
|
+
openapi_libgen/spec_parser.py,sha256=lfYwwmGO0gsZH5gHttccxIxltI-2JSAAJma0k03tmRg,6414
|
34
|
+
openapi_libgen/templates/__init__.jinja,sha256=92OFwNzeO7lEiUBv04GfjKXA1088V7GbeneASBShbmc,102
|
35
|
+
openapi_libgen/templates/library.jinja,sha256=tIwJuGerOUJmMt928P_38MMfcnSHZqcPDPEJ56R6wT0,952
|
36
|
+
robotframework_openapitools-1.0.0b5.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
37
|
+
robotframework_openapitools-1.0.0b5.dist-info/METADATA,sha256=cAM9pwMYq_C2u-ZE-79_w-gmamnhSHrLpC5Ps3zYTck,19102
|
38
|
+
robotframework_openapitools-1.0.0b5.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
39
|
+
robotframework_openapitools-1.0.0b5.dist-info/entry_points.txt,sha256=_yd5PITEJf85hIEsrRkkWxXePf_O9YOOUjON3TYLy0c,69
|
40
|
+
robotframework_openapitools-1.0.0b5.dist-info/RECORD,,
|
@@ -1,37 +0,0 @@
|
|
1
|
-
OpenApiDriver/__init__.py,sha256=YjHr-j8g9KwRriNCw_ABvCEbUEp118J70xeJ_t7qcas,1453
|
2
|
-
OpenApiDriver/openapi_executors.py,sha256=NsHhcP6CM3DsQgxqOcKhpAAOM0zjhMmCsrEygIxJleY,12534
|
3
|
-
OpenApiDriver/openapi_reader.py,sha256=BPD_T8PUjfB-NBajogErI2ATmzlUGFJT8Nx5WpM5N5Y,4478
|
4
|
-
OpenApiDriver/openapidriver.libspec,sha256=O5gfWifWEvOmZ8sJoEdGcsP6Wak2zHYdEVB1TPIub6Y,28220
|
5
|
-
OpenApiDriver/openapidriver.py,sha256=vypR00YZS3ygGfFxdUedLdCm_f_bWDLMpD1vb49-O0A,15321
|
6
|
-
OpenApiDriver/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
OpenApiLibCore/__init__.py,sha256=R6n4FTEz0IGD_LehKkOFSQrlt9Bk4Ugl3OicsZ_h84I,1775
|
8
|
-
OpenApiLibCore/annotations.py,sha256=zfWwItXzECBezyQKoom9BLfrRFlU1u4jOF7NEgEAuQQ,135
|
9
|
-
OpenApiLibCore/data_generation/__init__.py,sha256=KYBoMeFsa4fzb6E-BsQBykCGwt54NvXthXiy9VNwQBc,303
|
10
|
-
OpenApiLibCore/data_generation/body_data_generation.py,sha256=c887DfNMghHFyu3omUDxA0SkaQtMaNiWYNM3YREbbEQ,8903
|
11
|
-
OpenApiLibCore/data_generation/data_generation_core.py,sha256=N6hgyc2WHnPfIRwqdUwmT9XSGM2P-l88K2kblk0VCeA,8413
|
12
|
-
OpenApiLibCore/data_invalidation.py,sha256=HSzbeJnzxrlS2NlPfXnCRXvGzGzXvBwiaJ3WXxrZOSw,10503
|
13
|
-
OpenApiLibCore/dto_base.py,sha256=m41QZyL6ChIcC3DcBCpDFkok5wpCZ6K9gjmADyMGOWc,12132
|
14
|
-
OpenApiLibCore/dto_utils.py,sha256=5dvMYM2Nt9gXq6GGTGJjU5Z75x9p9ky-1V01aLTZgX8,3177
|
15
|
-
OpenApiLibCore/oas_cache.py,sha256=Z2v0mn6JwKchbUKojYVt9sXi8Mc4LoENtN_ekTUtzfI,387
|
16
|
-
OpenApiLibCore/openapi_libcore.libspec,sha256=5NrzbwAsk-qUs504hu0DLjtvDhYJfgpvWiqjSPksGZg,53175
|
17
|
-
OpenApiLibCore/openapi_libcore.py,sha256=30FtvsNHkfWZhz55bJq8bnWiHKvX6dEbGyLhbdNAtqY,36257
|
18
|
-
OpenApiLibCore/parameter_utils.py,sha256=_P2GRc_teIixTgPsRgCxY2Bj6nsZq41GoSOhVgfXE0Y,3251
|
19
|
-
OpenApiLibCore/path_functions.py,sha256=757f655yLg5HzvXxlOIQ76i48gK91Ct7KM-D9OAEA3A,8055
|
20
|
-
OpenApiLibCore/path_invalidation.py,sha256=2iYjkskMV-7lWu_id_LbVIiumffMWZicqoIKeewqpFA,1539
|
21
|
-
OpenApiLibCore/protocols.py,sha256=N9HxH9SqNuzWTyOGQuyEGfyorHZyYkehlBsyPse5jtQ,763
|
22
|
-
OpenApiLibCore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
-
OpenApiLibCore/request_data.py,sha256=jm6HnTG4xvQfSeYPMIMzowlSi7cuU3XqDGTQ6FdKnUY,10644
|
24
|
-
OpenApiLibCore/resource_relations.py,sha256=Qp5TBNSArLaDfAqcjC5xiHwlB1h4hgAFIfuJnBg5Yxw,1710
|
25
|
-
OpenApiLibCore/validation.py,sha256=uVPgg3k5X1ww4u4-glqC2szSL1qsvqgnCUoqUMjpnek,20067
|
26
|
-
OpenApiLibCore/value_utils.py,sha256=M4k5m0YW1B20-6KD0f9-5xMERWKG8ncu2-5ahC2_VzU,19208
|
27
|
-
openapi_libgen/__init__.py,sha256=9ZfgPSI8AUAcJ59hBRZE1VImhMVRyt6G_w1nYIPORgQ,1543
|
28
|
-
openapi_libgen/command_line.py,sha256=GppzNAAMomd0Dl5c5HGK8chDQw-kaIztD0hqQ2iUEXE,2783
|
29
|
-
openapi_libgen/parsing_utils.py,sha256=d_N-v619SR6iyolz65IGN12H5wMUA8dzPuG1l7rv5gg,821
|
30
|
-
openapi_libgen/spec_parser.py,sha256=2swZDlr8pHkNHCaLZMkl9fZbi9GWDFfnstPbLB12jTU,8792
|
31
|
-
openapi_libgen/templates/__init__.jinja,sha256=92OFwNzeO7lEiUBv04GfjKXA1088V7GbeneASBShbmc,102
|
32
|
-
openapi_libgen/templates/library.jinja,sha256=tIwJuGerOUJmMt928P_38MMfcnSHZqcPDPEJ56R6wT0,952
|
33
|
-
robotframework_openapitools-1.0.0b3.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
34
|
-
robotframework_openapitools-1.0.0b3.dist-info/METADATA,sha256=d99DolkNRk-sYtseHrh82lY2MJHZW6wLpJvZTpMfsUk,19067
|
35
|
-
robotframework_openapitools-1.0.0b3.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
36
|
-
robotframework_openapitools-1.0.0b3.dist-info/entry_points.txt,sha256=_yd5PITEJf85hIEsrRkkWxXePf_O9YOOUjON3TYLy0c,69
|
37
|
-
robotframework_openapitools-1.0.0b3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|