jentic-openapi-datamodels 1.0.0a21__py3-none-any.whl → 1.0.0a22__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.
@@ -1,15 +1,16 @@
1
- from dataclasses import field, fields
1
+ from dataclasses import MISSING, field, fields
2
+ from typing import Any
2
3
 
3
4
 
4
5
  __all__ = ["fixed_field", "fixed_fields", "patterned_field", "patterned_fields"]
5
6
 
6
7
 
7
- def fixed_field(default=None, metadata=None):
8
+ def fixed_field(*, default: Any = None, metadata: dict[str, Any] | None = None) -> Any:
8
9
  """Mark a field as a fixed OpenAPI specification field."""
9
10
  return field(default=default, metadata={**(metadata or {}), "fixed_field": True})
10
11
 
11
12
 
12
- def fixed_fields(dataclass_type):
13
+ def fixed_fields(dataclass_type: type) -> dict[str, Any]:
13
14
  """
14
15
  Get all fixed specification fields from a dataclass.
15
16
 
@@ -22,17 +23,28 @@ def fixed_fields(dataclass_type):
22
23
  return {f.name: f for f in fields(dataclass_type) if f.metadata.get("fixed_field")}
23
24
 
24
25
 
25
- def patterned_field(default=None, metadata=None):
26
+ def patterned_field(
27
+ *, default=MISSING, default_factory=MISSING, metadata: dict[str, Any] | None = None
28
+ ) -> Any:
26
29
  """
27
30
  Mark a field as containing OpenAPI patterned fields.
28
31
 
29
32
  Patterned fields have dynamic names that follow a specific pattern (e.g., security scheme names,
30
33
  path patterns, callback expressions, HTTP status codes).
34
+
35
+ Args:
36
+ default: Default value for the field
37
+ default_factory: Callable that returns default value
38
+ metadata: Additional metadata for the field
31
39
  """
32
- return field(default=default, metadata={**(metadata or {}), "patterned_field": True})
40
+ merged_metadata = {**(metadata or {}), "patterned_field": True}
41
+ if default_factory is not MISSING:
42
+ return field(default_factory=default_factory, metadata=merged_metadata)
43
+ else:
44
+ return field(default=default, metadata=merged_metadata)
33
45
 
34
46
 
35
- def patterned_fields(dataclass_type):
47
+ def patterned_fields(dataclass_type: type) -> dict[str, Any]:
36
48
  """
37
49
  Get all patterned fields from a dataclass.
38
50
 
@@ -4,6 +4,7 @@ from ruamel import yaml
4
4
 
5
5
  from ..context import Context
6
6
  from ..extractors import extract_extension_fields
7
+ from ..fields import patterned_field
7
8
  from ..sources import KeySource, ValueSource, YAMLInvalidValue, YAMLValue
8
9
  from .path_item import PathItem
9
10
  from .path_item import build as build_path_item
@@ -33,7 +34,7 @@ class Callback:
33
34
  """
34
35
 
35
36
  root_node: yaml.Node
36
- path_items: dict[KeySource[str], PathItem] = field(default_factory=dict)
37
+ path_items: dict[KeySource[str], PathItem] = patterned_field(default_factory=dict)
37
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
38
39
 
39
40
 
@@ -86,7 +87,7 @@ def build(
86
87
  extension_properties = {k.value for k in extensions.keys()}
87
88
 
88
89
  # Process each field to determine if it's an expression (not an extension)
89
- path_items: dict[KeySource[str], PathItem | ValueSource[YAMLInvalidValue]] = {}
90
+ path_items = {}
90
91
 
91
92
  for key_node, value_node in root.value:
92
93
  expression = context.yaml_constructor.construct_yaml_str(key_node)
@@ -99,7 +100,7 @@ def build(
99
100
  # Create and return the Callback object with collected data
100
101
  return Callback(
101
102
  root_node=root,
102
- path_items=path_items, # type: ignore[arg-type]
103
+ path_items=path_items,
103
104
  extensions=extensions,
104
105
  )
105
106
 
@@ -4,6 +4,7 @@ from ruamel import yaml
4
4
 
5
5
  from ..context import Context
6
6
  from ..extractors import extract_extension_fields
7
+ from ..fields import patterned_field
7
8
  from ..sources import KeySource, ValueSource, YAMLInvalidValue, YAMLValue
8
9
  from .path_item import PathItem
9
10
  from .path_item import build as build_path_item
@@ -33,7 +34,7 @@ class Paths:
33
34
  """
34
35
 
35
36
  root_node: yaml.Node
36
- paths: dict[KeySource[str], PathItem] = field(default_factory=dict)
37
+ paths: dict[KeySource[str], PathItem] = patterned_field(default_factory=dict)
37
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
38
39
 
39
40
 
@@ -6,7 +6,7 @@ from ruamel import yaml
6
6
 
7
7
  from ..context import Context
8
8
  from ..extractors import extract_extension_fields
9
- from ..fields import fixed_field
9
+ from ..fields import fixed_field, patterned_field
10
10
  from ..sources import FieldSource, KeySource, ValueSource, YAMLInvalidValue, YAMLValue
11
11
  from .reference import Reference
12
12
  from .response import Response, build_response_or_reference
@@ -34,7 +34,7 @@ class Responses:
34
34
 
35
35
  root_node: yaml.Node
36
36
  default: FieldSource[Response | Reference] | None = fixed_field()
37
- responses: dict[KeySource[str], Response | Reference] = field(default_factory=dict)
37
+ responses: dict[KeySource[str], Response | Reference] = patterned_field(default_factory=dict)
38
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
39
39
 
40
40
 
@@ -33,8 +33,8 @@ class SecurityRequirement:
33
33
  """
34
34
 
35
35
  root_node: yaml.Node
36
- requirements: ValueSource[dict[KeySource[str], ValueSource[list[ValueSource[str]]]]] | None = (
37
- patterned_field()
36
+ requirements: dict[KeySource[str], ValueSource[list[ValueSource[str]]]] = patterned_field(
37
+ default_factory=dict
38
38
  )
39
39
 
40
40
 
@@ -61,7 +61,7 @@ def build(
61
61
  yaml = YAML()
62
62
  root = yaml.compose("api_key: []")
63
63
  security_req = build(root)
64
- assert security_req.requirements is not None
64
+ assert len(security_req.requirements) > 0
65
65
  """
66
66
  context = context or Context()
67
67
 
@@ -70,7 +70,7 @@ def build(
70
70
  value = context.yaml_constructor.construct_object(root, deep=True)
71
71
  return ValueSource(value=value, value_node=root)
72
72
 
73
- requirements_dict: dict[KeySource[str], ValueSource[list[ValueSource[str]]]] = {}
73
+ requirements = {}
74
74
 
75
75
  for key_node, value_node in root.value:
76
76
  key = context.yaml_constructor.construct_yaml_str(key_node)
@@ -88,19 +88,17 @@ def build(
88
88
  item_value = context.yaml_constructor.construct_object(item_node, deep=True)
89
89
  scope_list.append(ValueSource(value=item_value, value_node=item_node))
90
90
 
91
- requirements_dict[KeySource(value=key, key_node=key_node)] = ValueSource(
91
+ requirements[KeySource(value=key, key_node=key_node)] = ValueSource(
92
92
  value=scope_list, value_node=value_node
93
93
  )
94
94
  else:
95
95
  # Not a sequence - preserve as-is for validation to catch
96
96
  value = context.yaml_constructor.construct_object(value_node, deep=True)
97
- requirements_dict[KeySource(value=key, key_node=key_node)] = ValueSource(
97
+ requirements[KeySource(value=key, key_node=key_node)] = ValueSource(
98
98
  value=value, value_node=value_node
99
99
  )
100
100
 
101
101
  return SecurityRequirement(
102
102
  root_node=root,
103
- requirements=(
104
- ValueSource(value=requirements_dict, value_node=root) if requirements_dict else None
105
- ),
103
+ requirements=requirements,
106
104
  )
@@ -4,6 +4,7 @@ from ruamel import yaml
4
4
 
5
5
  from ..context import Context
6
6
  from ..extractors import extract_extension_fields
7
+ from ..fields import patterned_field
7
8
  from ..sources import KeySource, ValueSource, YAMLInvalidValue, YAMLValue
8
9
  from .path_item import PathItem
9
10
  from .path_item import build as build_path_item
@@ -33,7 +34,7 @@ class Callback:
33
34
  """
34
35
 
35
36
  root_node: yaml.Node
36
- path_items: dict[KeySource[str], PathItem] = field(default_factory=dict)
37
+ path_items: dict[KeySource[str], PathItem] = patterned_field(default_factory=dict)
37
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
38
39
 
39
40
 
@@ -86,7 +87,7 @@ def build(
86
87
  extension_properties = {k.value for k in extensions.keys()}
87
88
 
88
89
  # Process each field to determine if it's an expression (not an extension)
89
- path_items: dict[KeySource[str], PathItem | ValueSource[YAMLInvalidValue]] = {}
90
+ path_items = {}
90
91
 
91
92
  for key_node, value_node in root.value:
92
93
  expression = context.yaml_constructor.construct_yaml_str(key_node)
@@ -99,7 +100,7 @@ def build(
99
100
  # Create and return the Callback object with collected data
100
101
  return Callback(
101
102
  root_node=root,
102
- path_items=path_items, # type: ignore[arg-type]
103
+ path_items=path_items,
103
104
  extensions=extensions,
104
105
  )
105
106
 
@@ -4,6 +4,7 @@ from ruamel import yaml
4
4
 
5
5
  from ..context import Context
6
6
  from ..extractors import extract_extension_fields
7
+ from ..fields import patterned_field
7
8
  from ..sources import KeySource, ValueSource, YAMLInvalidValue, YAMLValue
8
9
  from .path_item import PathItem
9
10
  from .path_item import build as build_path_item
@@ -33,7 +34,7 @@ class Paths:
33
34
  """
34
35
 
35
36
  root_node: yaml.Node
36
- paths: dict[KeySource[str], PathItem] = field(default_factory=dict)
37
+ paths: dict[KeySource[str], PathItem] = patterned_field(default_factory=dict)
37
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
38
39
 
39
40
 
@@ -6,7 +6,7 @@ from ruamel import yaml
6
6
 
7
7
  from ..context import Context
8
8
  from ..extractors import extract_extension_fields
9
- from ..fields import fixed_field
9
+ from ..fields import fixed_field, patterned_field
10
10
  from ..sources import FieldSource, KeySource, ValueSource, YAMLInvalidValue, YAMLValue
11
11
  from .reference import Reference
12
12
  from .response import Response, build_response_or_reference
@@ -34,7 +34,7 @@ class Responses:
34
34
 
35
35
  root_node: yaml.Node
36
36
  default: FieldSource[Response | Reference] | None = fixed_field()
37
- responses: dict[KeySource[str], Response | Reference] = field(default_factory=dict)
37
+ responses: dict[KeySource[str], Response | Reference] = patterned_field(default_factory=dict)
38
38
  extensions: dict[KeySource[str], ValueSource[YAMLValue]] = field(default_factory=dict)
39
39
 
40
40
 
@@ -33,8 +33,8 @@ class SecurityRequirement:
33
33
  """
34
34
 
35
35
  root_node: yaml.Node
36
- requirements: ValueSource[dict[KeySource[str], ValueSource[list[ValueSource[str]]]]] | None = (
37
- patterned_field()
36
+ requirements: dict[KeySource[str], ValueSource[list[ValueSource[str]]]] = patterned_field(
37
+ default_factory=dict
38
38
  )
39
39
 
40
40
 
@@ -61,7 +61,7 @@ def build(
61
61
  yaml = YAML()
62
62
  root = yaml.compose("api_key: []")
63
63
  security_req = build(root)
64
- assert security_req.requirements is not None
64
+ assert len(security_req.requirements) > 0
65
65
  """
66
66
  context = context or Context()
67
67
 
@@ -70,7 +70,7 @@ def build(
70
70
  value = context.yaml_constructor.construct_object(root, deep=True)
71
71
  return ValueSource(value=value, value_node=root)
72
72
 
73
- requirements_dict: dict[KeySource[str], ValueSource[list[ValueSource[str]]]] = {}
73
+ requirements = {}
74
74
 
75
75
  for key_node, value_node in root.value:
76
76
  key = context.yaml_constructor.construct_yaml_str(key_node)
@@ -88,19 +88,17 @@ def build(
88
88
  item_value = context.yaml_constructor.construct_object(item_node, deep=True)
89
89
  scope_list.append(ValueSource(value=item_value, value_node=item_node))
90
90
 
91
- requirements_dict[KeySource(value=key, key_node=key_node)] = ValueSource(
91
+ requirements[KeySource(value=key, key_node=key_node)] = ValueSource(
92
92
  value=scope_list, value_node=value_node
93
93
  )
94
94
  else:
95
95
  # Not a sequence - preserve as-is for validation to catch
96
96
  value = context.yaml_constructor.construct_object(value_node, deep=True)
97
- requirements_dict[KeySource(value=key, key_node=key_node)] = ValueSource(
97
+ requirements[KeySource(value=key, key_node=key_node)] = ValueSource(
98
98
  value=value, value_node=value_node
99
99
  )
100
100
 
101
101
  return SecurityRequirement(
102
102
  root_node=root,
103
- requirements=(
104
- ValueSource(value=requirements_dict, value_node=root) if requirements_dict else None
105
- ),
103
+ requirements=requirements,
106
104
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jentic-openapi-datamodels
3
- Version: 1.0.0a21
3
+ Version: 1.0.0a22
4
4
  Summary: Jentic OpenAPI Data Models
5
5
  Author: Jentic
6
6
  Author-email: Jentic <hello@jentic.com>
@@ -1,12 +1,12 @@
1
1
  jentic/apitools/openapi/datamodels/low/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  jentic/apitools/openapi/datamodels/low/context.py,sha256=pAuPf8GmdttXMEeuO4clAvTTxH7LMtEHdxoo1RpyK2c,555
3
3
  jentic/apitools/openapi/datamodels/low/extractors.py,sha256=ZdTndH_9OcN9O7l560D13n4d0IJPCKLR0ayqrkrey9Y,4840
4
- jentic/apitools/openapi/datamodels/low/fields.py,sha256=g1Sta-eN4JDg_AnuJxe1MeWS3Ut81A5dw_ZIdyGrgbk,1448
4
+ jentic/apitools/openapi/datamodels/low/fields.py,sha256=hBtsmsIHqQ0vwrapJxKPhM2lqXEhGXS25VBo0sOOKFk,1979
5
5
  jentic/apitools/openapi/datamodels/low/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  jentic/apitools/openapi/datamodels/low/sources.py,sha256=H4I6LSn-Ry6cJageIyhCvE0H85O7Lh94gdCIm60wj0E,2924
7
7
  jentic/apitools/openapi/datamodels/low/v30/__init__.py,sha256=3i8EWv_2cxoSPkpIOedhswAPSk8cTitUGWbt4iZ9U34,1934
8
8
  jentic/apitools/openapi/datamodels/low/v30/builders/__init__.py,sha256=mIpggEOAZa6M4EgJc-THjdhsZB_vsaVTHb8WkKD7eXQ,15717
9
- jentic/apitools/openapi/datamodels/low/v30/callback.py,sha256=eNPzblFpsm3zP9GiqaDguWFLFgoWMSxNIveUYhvFKPI,4802
9
+ jentic/apitools/openapi/datamodels/low/v30/callback.py,sha256=BagSDNEix3iGBD5cRhyR6gqM3L0Ir9z394DCHUJHZpA,4759
10
10
  jentic/apitools/openapi/datamodels/low/v30/components.py,sha256=gzpp9EJhO4N_0hqPi55KhLqT4uZfIjo6v1uifyIDg2A,11426
11
11
  jentic/apitools/openapi/datamodels/low/v30/contact.py,sha256=1RJCZ165aXOZ0Rjz_LftKy4rB99_hqCVaT0iLV56H3o,2194
12
12
  jentic/apitools/openapi/datamodels/low/v30/discriminator.py,sha256=vPQgQ6KQY3z6dkIWbvC4qv36DBev8WHRyvavfbHh0aw,2362
@@ -24,13 +24,13 @@ jentic/apitools/openapi/datamodels/low/v30/openapi.py,sha256=tySlKTuFyHgEpS13-vJ
24
24
  jentic/apitools/openapi/datamodels/low/v30/operation.py,sha256=tU2qngEeJSqRW103-PVo5cBGzLtkdDws8kGRusSLKC0,5446
25
25
  jentic/apitools/openapi/datamodels/low/v30/parameter.py,sha256=YopOV5rnA-XiumEVSVOi2AESyRPWT6yqqENuqX04QTM,5186
26
26
  jentic/apitools/openapi/datamodels/low/v30/path_item.py,sha256=4MQUIwHEr7qcpHZQHmQzrZstMyKwwTFyvlnfcIiUn_M,4878
27
- jentic/apitools/openapi/datamodels/low/v30/paths.py,sha256=DTfH6-3eI1muIAgCzL9TbbQjN-9_et_wxlL66LRSFOQ,3896
27
+ jentic/apitools/openapi/datamodels/low/v30/paths.py,sha256=gjXIJzr5gJgvLGaBgnqoyX-8QOIY61K8NX27K_nXzS8,3943
28
28
  jentic/apitools/openapi/datamodels/low/v30/reference.py,sha256=QXuI-caWgMlU1Zl1V5wiOQurIUAn_3t_XoOLyG0hSQ8,1966
29
29
  jentic/apitools/openapi/datamodels/low/v30/request_body.py,sha256=8Ca3iWXn13wmMusy75QyZSFR6KmGcwbhGjxTeTHjiFo,3900
30
30
  jentic/apitools/openapi/datamodels/low/v30/response.py,sha256=FFLoHRVAw91vKWlkDzD08Xlie0hHnCSKXzjMKDKmH1U,3976
31
- jentic/apitools/openapi/datamodels/low/v30/responses.py,sha256=JiHotGO1mCoO8rhOgj6ETaDtcEcnm554v-L4bHiJXkY,4245
31
+ jentic/apitools/openapi/datamodels/low/v30/responses.py,sha256=Dc-FrtidzVuOgGs5SB8WmOUbqvhPgWej4-1Ur__zork,4272
32
32
  jentic/apitools/openapi/datamodels/low/v30/schema.py,sha256=fkGRJz_Ta-Giq06KPoLjAZanDGgTILmX5Ikj5PlSCow,15717
33
- jentic/apitools/openapi/datamodels/low/v30/security_requirement.py,sha256=LZbUUXmnGtvEzgwXlGVNIUwZTx9gK6uXPbrtmKaXqsw,4277
33
+ jentic/apitools/openapi/datamodels/low/v30/security_requirement.py,sha256=ipEsNE8lqmaJZnubEPWVIDf7ohrzRq-y1su9ifx5354,4102
34
34
  jentic/apitools/openapi/datamodels/low/v30/security_scheme.py,sha256=LClieys-mEiM84EEOGK4dsaWwNny1lKztzVBicddQd4,5455
35
35
  jentic/apitools/openapi/datamodels/low/v30/server.py,sha256=G9mcOMq9owtd6qECaQIxpvN9VrU7zjxnwaBVAfJw0Cs,4687
36
36
  jentic/apitools/openapi/datamodels/low/v30/server_variable.py,sha256=CmWdchAOTO3RtlSIodPOwGQds3-WZnWjaHMh66H7WpA,2762
@@ -38,7 +38,7 @@ jentic/apitools/openapi/datamodels/low/v30/tag.py,sha256=wH9uWAqNLryvatahDWAjQOc
38
38
  jentic/apitools/openapi/datamodels/low/v30/xml.py,sha256=4KgtMgjp4v8lMTUuLG-7RBOgXGvPSsIrtHU-u6TUbGg,1930
39
39
  jentic/apitools/openapi/datamodels/low/v31/__init__.py,sha256=MXwVorDh1quZU5A0mndI4__dVB247A5HQFzDJrocQsM,1978
40
40
  jentic/apitools/openapi/datamodels/low/v31/builders/__init__.py,sha256=9-ohxirframb6EmcFlDQ83cnGZ_mbnt_2aoFeCQE51o,17925
41
- jentic/apitools/openapi/datamodels/low/v31/callback.py,sha256=RBW8Xdhrd97elpiVBXGQqdXfDaWHEBaysM7RhZyqcrA,4802
41
+ jentic/apitools/openapi/datamodels/low/v31/callback.py,sha256=NCgQ9y3gMts3wLxts24eGQsxadCQKTJAaHPM45ZaOQY,4759
42
42
  jentic/apitools/openapi/datamodels/low/v31/components.py,sha256=pZet9wXywTNz0h_o5CU9HsIpOsY7bc-LdY9cAhRfdeY,11665
43
43
  jentic/apitools/openapi/datamodels/low/v31/contact.py,sha256=SnvuCz-YitRwK8l5CwuWSP4LjuB10KWTNmad_fMOENM,2194
44
44
  jentic/apitools/openapi/datamodels/low/v31/discriminator.py,sha256=5f4FRqLid4ZLPIha87bxjik-P6BskKixE7hZ8i9DUQY,2460
@@ -56,20 +56,20 @@ jentic/apitools/openapi/datamodels/low/v31/openapi.py,sha256=5cBP0SdMewLtEDB88Hv
56
56
  jentic/apitools/openapi/datamodels/low/v31/operation.py,sha256=cLQRVF6Vff4k1XkNwam8fL79Oa20I0xMtc4jdo3CwG4,5445
57
57
  jentic/apitools/openapi/datamodels/low/v31/parameter.py,sha256=NilV-XRaV1FUon5ZyJG8KN1qdZcK923mBQtNlH59J_w,5213
58
58
  jentic/apitools/openapi/datamodels/low/v31/path_item.py,sha256=mQTtGnIg1SYa2kEWHWFVQ2W7GlZ2fgwqcAg8NTQMcjk,4878
59
- jentic/apitools/openapi/datamodels/low/v31/paths.py,sha256=Yf_DRrqKWjUVJQN57Lxb_4KBuwGVZa170BxGobioRhA,3896
59
+ jentic/apitools/openapi/datamodels/low/v31/paths.py,sha256=gH5Oeuk5ItAkkZntSdfUIl_mWP5Wg1lX2w3VlBpB3Gs,3943
60
60
  jentic/apitools/openapi/datamodels/low/v31/reference.py,sha256=9sv24nmuS-l8Fp9T53UuQ_KINLHy86tb5HaUAhXwR8I,2595
61
61
  jentic/apitools/openapi/datamodels/low/v31/request_body.py,sha256=tQ2QaNSAZSQAQgpSU1VxB0GhK0-Miq5D1cH0FojQzA8,3900
62
62
  jentic/apitools/openapi/datamodels/low/v31/response.py,sha256=N46VyXBuJ1agYhDuD4-gDRlSW3k1kQK_TaOVwZoqHFQ,3976
63
- jentic/apitools/openapi/datamodels/low/v31/responses.py,sha256=9qozdOF9miFd_RygGHIUZVtLQ_-3ma1OxORvEA_uzNc,4245
63
+ jentic/apitools/openapi/datamodels/low/v31/responses.py,sha256=lC_fFYHcx5FgRLAHqOqWs8mCv9q-2X0wPpdmnOwvdYs,4272
64
64
  jentic/apitools/openapi/datamodels/low/v31/schema.py,sha256=jRVRKxSUNClWbmdHs1chDmTJKJBVT_DZWj9Nu2kQu7E,24818
65
- jentic/apitools/openapi/datamodels/low/v31/security_requirement.py,sha256=BbnbK-rkJVFJcIc0mLReNOd9mhvNynNZHhFYOWSM2m0,4277
65
+ jentic/apitools/openapi/datamodels/low/v31/security_requirement.py,sha256=8kh7F7Y9vyMINIQTPqFQnA0oJoX0Tyy3zyhaEo0U1bM,4102
66
66
  jentic/apitools/openapi/datamodels/low/v31/security_scheme.py,sha256=qNlKF9PkTC0tfV_PvbKUZnQMSr6PVeH5fyw3I83JPnw,5455
67
67
  jentic/apitools/openapi/datamodels/low/v31/server.py,sha256=IA-dDnhqdD6WCZ_bjdGw_nQmp0cd0HiHeqGU_jIGocw,4687
68
68
  jentic/apitools/openapi/datamodels/low/v31/server_variable.py,sha256=UfGDky_NVUF_WQc5ZIU947MjmpxaO__VIv6sq8HMsk0,2762
69
69
  jentic/apitools/openapi/datamodels/low/v31/tag.py,sha256=8-QfVk4dUp3r-LbseMSvlCcAWeZkzlhZP3giVKNgaPI,2359
70
70
  jentic/apitools/openapi/datamodels/low/v31/xml.py,sha256=SFLNLrhiZRWVH_CBV8SqtO4C4qjDjGtqz_lYpp84BnE,1930
71
- jentic_openapi_datamodels-1.0.0a21.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
72
- jentic_openapi_datamodels-1.0.0a21.dist-info/licenses/NOTICE,sha256=pAOGW-rGw9KNc2cuuLWZkfx0GSTV4TicbgBKZSLPMIs,168
73
- jentic_openapi_datamodels-1.0.0a21.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
74
- jentic_openapi_datamodels-1.0.0a21.dist-info/METADATA,sha256=DNCYjrFBmVPrNG-8RRf8IrC8yEkyGZeJRd6tF3JNv4Q,14260
75
- jentic_openapi_datamodels-1.0.0a21.dist-info/RECORD,,
71
+ jentic_openapi_datamodels-1.0.0a22.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
72
+ jentic_openapi_datamodels-1.0.0a22.dist-info/licenses/NOTICE,sha256=pAOGW-rGw9KNc2cuuLWZkfx0GSTV4TicbgBKZSLPMIs,168
73
+ jentic_openapi_datamodels-1.0.0a22.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
74
+ jentic_openapi_datamodels-1.0.0a22.dist-info/METADATA,sha256=YJl4mpd-M7gRrOio1NX8QHQKXT-uHG2fqa87MWQjx5E,14260
75
+ jentic_openapi_datamodels-1.0.0a22.dist-info/RECORD,,