tigrbl-core 0.4.5.dev6__tar.gz → 0.4.5.dev8__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 (71) hide show
  1. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/PKG-INFO +1 -1
  2. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/pyproject.toml +1 -1
  3. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/helpers.py +10 -0
  4. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/LICENSE +0 -0
  5. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/NOTICE +0 -0
  6. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/README.md +0 -0
  7. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_compat.py +0 -0
  8. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/__init__.py +0 -0
  9. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/alias_spec.py +0 -0
  10. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/app_spec.py +0 -0
  11. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/binding_spec.py +0 -0
  12. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/column_spec.py +0 -0
  13. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/datatypes.py +0 -0
  14. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/docs_spec.py +0 -0
  15. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/engine_session_spec.py +0 -0
  16. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/engine_spec.py +0 -0
  17. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/exceptions.py +0 -0
  18. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/exposure_policy.py +0 -0
  19. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/field_spec.py +0 -0
  20. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/headers_spec.py +0 -0
  21. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/hook_spec.py +0 -0
  22. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/hook_types.py +0 -0
  23. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/io_spec.py +0 -0
  24. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/middleware_spec.py +0 -0
  25. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/monotone.py +0 -0
  26. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/op_spec.py +0 -0
  27. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/op_utils.py +0 -0
  28. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/path_spec.py +0 -0
  29. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/plugins.py +0 -0
  30. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/registry.py +0 -0
  31. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/request_spec.py +0 -0
  32. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/response_resolver.py +0 -0
  33. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/response_spec.py +0 -0
  34. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/response_types.py +0 -0
  35. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/router_spec.py +0 -0
  36. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/schema_spec.py +0 -0
  37. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/serde.py +0 -0
  38. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/session_spec.py +0 -0
  39. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/storage_spec.py +0 -0
  40. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/table_profile_bindings.py +0 -0
  41. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/table_profile_spec.py +0 -0
  42. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/table_registry_spec.py +0 -0
  43. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/table_spec.py +0 -0
  44. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/transport_stack.py +0 -0
  45. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/_spec/well_known_spec.py +0 -0
  46. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/canonical_json.py +0 -0
  47. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/config/__init__.py +0 -0
  48. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/config/constants.py +0 -0
  49. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/config/defaults.py +0 -0
  50. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/config/engine_traversal.py +0 -0
  51. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/config/resolver.py +0 -0
  52. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/core/__init__.py +0 -0
  53. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/op/__init__.py +0 -0
  54. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/op/canonical.py +0 -0
  55. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/op/collect.py +0 -0
  56. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/op/types.py +0 -0
  57. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/__init__.py +0 -0
  58. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/__init__.py +0 -0
  59. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/build_schema.py +0 -0
  60. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/cache.py +0 -0
  61. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/extras.py +0 -0
  62. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/list_params.py +0 -0
  63. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/builder/strip_parent_fields.py +0 -0
  64. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/get_schema.py +0 -0
  65. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/materialize.py +0 -0
  66. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/provenance.py +0 -0
  67. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/provenance_inventory.py +0 -0
  68. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/result.py +0 -0
  69. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/spec_json.py +0 -0
  70. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/surface_chains.json +0 -0
  71. {tigrbl_core-0.4.5.dev6 → tigrbl_core-0.4.5.dev8}/tigrbl_core/schema/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-core
3
- Version: 0.4.5.dev6
3
+ Version: 0.4.5.dev8
4
4
  Summary: Core Tigrbl framework specifications, decorators, schemas, hooks, operations, and primitives for schema-first APIs.
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-core"
3
- version = "0.4.5.dev6"
3
+ version = "0.4.5.dev8"
4
4
  description = "Core Tigrbl framework specifications, decorators, schemas, hooks, operations, and primitives for schema-first APIs."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from types import UnionType
6
6
  from typing import (
7
+ Annotated,
7
8
  Mapping,
8
9
  Any,
9
10
  Dict,
@@ -129,6 +130,15 @@ def _input_selector_entries(
129
130
  return {}
130
131
  name, spec = primary[0]
131
132
  annotation = _spec_python_type(spec)
133
+ if annotation is str:
134
+ constraints = getattr(getattr(spec, "field", None), "constraints", {}) or {}
135
+ string_constraints = {
136
+ key: constraints[key]
137
+ for key in ("min_length", "max_length", "pattern")
138
+ if key in constraints
139
+ }
140
+ if string_constraints:
141
+ annotation = Annotated[str, Field(**string_constraints)]
132
142
  entries = {
133
143
  name: {
134
144
  "py_type": annotation,