jentic-openapi-datamodels 1.0.0a25__tar.gz → 1.0.0a27__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 (75) hide show
  1. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/PKG-INFO +4 -4
  2. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/README.md +3 -3
  3. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/pyproject.toml +1 -1
  4. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/reference.py +3 -0
  5. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/schema.py +6 -2
  6. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/reference.py +3 -0
  7. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/schema.py +6 -6
  8. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/LICENSE +0 -0
  9. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/NOTICE +0 -0
  10. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/__init__.py +0 -0
  11. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/context.py +0 -0
  12. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/extractors.py +0 -0
  13. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/fields.py +0 -0
  14. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/py.typed +0 -0
  15. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/sources.py +0 -0
  16. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/__init__.py +0 -0
  17. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/builders/__init__.py +0 -0
  18. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/callback.py +0 -0
  19. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/components.py +0 -0
  20. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/contact.py +0 -0
  21. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/discriminator.py +0 -0
  22. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/encoding.py +0 -0
  23. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/example.py +0 -0
  24. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/external_documentation.py +0 -0
  25. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/header.py +0 -0
  26. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/info.py +0 -0
  27. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/license.py +0 -0
  28. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/link.py +0 -0
  29. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/media_type.py +0 -0
  30. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/oauth_flow.py +0 -0
  31. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/oauth_flows.py +0 -0
  32. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/openapi.py +0 -0
  33. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/operation.py +0 -0
  34. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/parameter.py +0 -0
  35. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/path_item.py +0 -0
  36. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/paths.py +0 -0
  37. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/request_body.py +0 -0
  38. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/response.py +0 -0
  39. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/responses.py +0 -0
  40. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/security_requirement.py +0 -0
  41. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/security_scheme.py +0 -0
  42. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/server.py +0 -0
  43. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/server_variable.py +0 -0
  44. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/tag.py +0 -0
  45. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v30/xml.py +0 -0
  46. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/__init__.py +0 -0
  47. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/builders/__init__.py +0 -0
  48. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/callback.py +0 -0
  49. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/components.py +0 -0
  50. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/contact.py +0 -0
  51. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/discriminator.py +0 -0
  52. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/encoding.py +0 -0
  53. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/example.py +0 -0
  54. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/external_documentation.py +0 -0
  55. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/header.py +0 -0
  56. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/info.py +0 -0
  57. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/license.py +0 -0
  58. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/link.py +0 -0
  59. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/media_type.py +0 -0
  60. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/oauth_flow.py +0 -0
  61. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/oauth_flows.py +0 -0
  62. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/openapi.py +0 -0
  63. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/operation.py +0 -0
  64. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/parameter.py +0 -0
  65. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/path_item.py +0 -0
  66. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/paths.py +0 -0
  67. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/request_body.py +0 -0
  68. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/response.py +0 -0
  69. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/responses.py +0 -0
  70. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/security_requirement.py +0 -0
  71. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/security_scheme.py +0 -0
  72. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/server.py +0 -0
  73. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/server_variable.py +0 -0
  74. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/tag.py +0 -0
  75. {jentic_openapi_datamodels-1.0.0a25 → jentic_openapi_datamodels-1.0.0a27}/src/jentic/apitools/openapi/datamodels/low/v31/xml.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jentic-openapi-datamodels
3
- Version: 1.0.0a25
3
+ Version: 1.0.0a27
4
4
  Summary: Jentic OpenAPI Data Models
5
5
  Author: Jentic
6
6
  Author-email: Jentic <hello@jentic.com>
@@ -290,9 +290,9 @@ Special cases for Python reserved keywords and `$` fields:
290
290
  - `then` → `then_`
291
291
  - `else` → `else_`
292
292
  - `not` → `not_`
293
- - `$ref` → `ref_`
294
- - `$id` → `id_`
295
- - `$schema` → `schema_`
293
+ - `$ref` → `ref`
294
+ - `$id` → `id`
295
+ - `$schema` → `schema`
296
296
 
297
297
  ### Source Tracking
298
298
 
@@ -276,9 +276,9 @@ Special cases for Python reserved keywords and `$` fields:
276
276
  - `then` → `then_`
277
277
  - `else` → `else_`
278
278
  - `not` → `not_`
279
- - `$ref` → `ref_`
280
- - `$id` → `id_`
281
- - `$schema` → `schema_`
279
+ - `$ref` → `ref`
280
+ - `$id` → `id`
281
+ - `$schema` → `schema`
282
282
 
283
283
  ### Source Tracking
284
284
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "jentic-openapi-datamodels"
3
- version = "1.0.0-alpha.25"
3
+ version = "1.0.0-alpha.27"
4
4
  description = "Jentic OpenAPI Data Models"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Jentic", email = "hello@jentic.com" }]
@@ -1,4 +1,5 @@
1
1
  from dataclasses import dataclass
2
+ from typing import Any
2
3
 
3
4
  from ruamel import yaml
4
5
 
@@ -24,10 +25,12 @@ class Reference:
24
25
 
25
26
  Attributes:
26
27
  root_node: The top-level node representing the entire Reference object in the original source file
28
+ meta: Optional metadata as a dictionary.
27
29
  ref: REQUIRED. The reference string. Must be in the format of a URI.
28
30
  """
29
31
 
30
32
  root_node: yaml.Node
33
+ meta: dict[str, Any] | None = None
31
34
  ref: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$ref"})
32
35
 
33
36
 
@@ -1,4 +1,4 @@
1
- from dataclasses import dataclass, field
1
+ from dataclasses import dataclass, field, replace
2
2
  from typing import Any, TypeAlias, get_args
3
3
 
4
4
  from ruamel import yaml
@@ -331,7 +331,11 @@ def build_schema_or_reference(node: yaml.Node, context: Context) -> NestedSchema
331
331
  for key_node, _ in node.value:
332
332
  key = context.yaml_constructor.construct_yaml_str(key_node)
333
333
  if key == "$ref":
334
- return build_reference(node, context)
334
+ reference = build_reference(node, context)
335
+ # Add metadata indicating this is a Schema reference
336
+ if isinstance(reference, Reference):
337
+ reference = replace(reference, meta={"referenced_type": "Schema"})
338
+ return reference
335
339
 
336
340
  # Otherwise, try to build as Schema (which may be recursive)
337
341
  return build(node, context)
@@ -1,4 +1,5 @@
1
1
  from dataclasses import dataclass
2
+ from typing import Any
2
3
 
3
4
  from ruamel import yaml
4
5
 
@@ -20,12 +21,14 @@ class Reference:
20
21
 
21
22
  Attributes:
22
23
  root_node: The top-level node representing the entire Reference object in the original source file
24
+ meta: Optional metadata as a dictionary.
23
25
  ref: REQUIRED. The reference identifier. This MUST be in the form of a URI.
24
26
  summary: A short summary which by default SHOULD override that of the referenced component. If the referenced object-type does not allow a summary field, then this field has no effect.
25
27
  description: A description which by default SHOULD override that of the referenced component. CommonMark syntax MAY be used for rich text representation. If the referenced object-type does not allow a description field, then this field has no effect.
26
28
  """
27
29
 
28
30
  root_node: yaml.Node
31
+ meta: dict[str, Any] | None = None
29
32
  ref: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$ref"})
30
33
  summary: FieldSource[str] | None = fixed_field()
31
34
  description: FieldSource[str] | None = fixed_field()
@@ -46,9 +46,9 @@ class Schema:
46
46
  root_node: The top-level node representing the entire Schema object in the original source file
47
47
 
48
48
  # JSON Schema Core Keywords (2020-12)
49
- schema_: The $schema keyword - URI of the meta-schema
50
- id_: The $id keyword - URI that identifies the schema resource
51
- ref_: The $ref keyword - URI reference to another schema
49
+ schema: The $schema keyword - URI of the meta-schema
50
+ id: The $id keyword - URI that identifies the schema resource
51
+ ref: The $ref keyword - URI reference to another schema
52
52
  anchor: The $anchor keyword - Plain name fragment for identification
53
53
  dynamic_ref: The $dynamicRef keyword - Dynamic reference to another schema
54
54
  dynamic_anchor: The $dynamicAnchor keyword - Dynamic anchor for identification
@@ -146,9 +146,9 @@ class Schema:
146
146
  root_node: yaml.Node
147
147
 
148
148
  # Core Keywords
149
- id_: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$id"})
150
- schema_: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$schema"})
151
- ref_: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$ref"})
149
+ id: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$id"})
150
+ schema: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$schema"})
151
+ ref: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$ref"})
152
152
  comment: FieldSource[str] | None = fixed_field(metadata={"yaml_name": "$comment"})
153
153
  defs: FieldSource[dict[KeySource[str], NestedSchema]] | None = fixed_field(
154
154
  metadata={"yaml_name": "$defs"}