type-bridge 1.4.0.dev0__tar.gz → 1.4.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 (526) hide show
  1. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.github/workflows/ci.yml +59 -2
  2. type_bridge-1.4.2/.github/workflows/docs.yml +86 -0
  3. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.github/workflows/release.yml +51 -1
  4. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.gitignore +11 -1
  5. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/CHANGELOG.md +121 -0
  6. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/CLAUDE.md +22 -19
  7. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/PKG-INFO +52 -37
  8. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/README.md +41 -34
  9. type_bridge-1.4.2/benchmarks/conftest.py +1014 -0
  10. type_bridge-1.4.2/benchmarks/run_benchmarks.py +1042 -0
  11. type_bridge-1.4.2/benchmarks/test_compilation_bench.py +681 -0
  12. type_bridge-1.4.2/benchmarks/test_validation_bench.py +477 -0
  13. type_bridge-1.4.2/codecov.yml +32 -0
  14. type_bridge-1.4.2/docker-compose.proxy.yml +39 -0
  15. type_bridge-1.4.0.dev0/docs/ABSTRACT_TYPES.md → type_bridge-1.4.2/docs/development/abstract-types.md +2 -2
  16. type_bridge-1.4.2/docs/development/index.md +9 -0
  17. type_bridge-1.4.0.dev0/docs/INTERNALS.md → type_bridge-1.4.2/docs/development/internals.md +2 -2
  18. type_bridge-1.4.0.dev0/docs/DEVELOPMENT.md → type_bridge-1.4.2/docs/development/setup.md +4 -4
  19. type_bridge-1.4.0.dev0/docs/TESTING.md → type_bridge-1.4.2/docs/development/testing.md +2 -2
  20. type_bridge-1.4.0.dev0/docs/TYPEDB.md → type_bridge-1.4.2/docs/development/typedb.md +3 -3
  21. type_bridge-1.4.2/docs/getting-started/index.md +6 -0
  22. type_bridge-1.4.2/docs/getting-started/installation.md +44 -0
  23. type_bridge-1.4.2/docs/getting-started/quickstart.md +119 -0
  24. type_bridge-1.4.0.dev0/docs/api/abstract_types.md → type_bridge-1.4.2/docs/guide/abstract-types.md +2 -2
  25. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/attributes.md +1 -1
  26. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/cardinality.md +1 -1
  27. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/crud.md +107 -0
  28. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/entities.md +2 -2
  29. type_bridge-1.4.0.dev0/docs/api/README.md → type_bridge-1.4.2/docs/guide/index.md +6 -3
  30. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/queries.md +1 -1
  31. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/relations.md +1 -1
  32. type_bridge-1.4.2/docs/index.md +38 -0
  33. type_bridge-1.4.2/mkdocs.yml +118 -0
  34. type_bridge-1.4.2/perf/1.4.0.dev0.srv.md +250 -0
  35. type_bridge-1.4.2/perf/1.4.0.dev0.x1c.md +250 -0
  36. type_bridge-1.4.2/perf/1.4.0.dev1.940xa.md +256 -0
  37. type_bridge-1.4.2/perf/raw/1.4.0.dev0.srv.toml +1294 -0
  38. type_bridge-1.4.2/perf/raw/1.4.0.dev0.x1c.toml +1294 -0
  39. type_bridge-1.4.2/perf/raw/1.4.0.dev1.940xa.toml +1294 -0
  40. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/pyproject.toml +16 -5
  41. type_bridge-1.4.2/scripts/check.sh +90 -0
  42. type_bridge-1.4.2/scripts/coverage.sh +102 -0
  43. type_bridge-1.4.2/scripts/gen_ref_pages.py +53 -0
  44. type_bridge-1.4.2/test-proxy-integration.sh +28 -0
  45. type_bridge-1.4.2/tests/integration/proxy/conftest.py +41 -0
  46. type_bridge-1.4.2/tests/integration/proxy/test_proxy_audit.py +61 -0
  47. type_bridge-1.4.2/tests/integration/proxy/test_proxy_crud.py +81 -0
  48. type_bridge-1.4.2/tests/integration/proxy/test_proxy_health.py +30 -0
  49. type_bridge-1.4.2/tests/unit/crud/test_hooks.py +594 -0
  50. type_bridge-1.4.2/tests/unit/flags/__init__.py +0 -0
  51. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_parser.py +29 -44
  52. type_bridge-1.4.2/tests/unit/generator/test_rust_schema.py +406 -0
  53. type_bridge-1.4.2/tests/unit/generator/test_rust_schema_parity.py +642 -0
  54. type_bridge-1.4.2/tests/unit/proxy/__init__.py +0 -0
  55. type_bridge-1.4.2/tests/unit/proxy/test_proxy.py +249 -0
  56. type_bridge-1.4.2/tests/unit/query/test_query_parser.py +618 -0
  57. type_bridge-1.4.2/tests/unit/test_value_coercion.py +466 -0
  58. type_bridge-1.4.2/tests/unit/validation/test_custom_rules.py +268 -0
  59. type_bridge-1.4.2/tests/unit/validation/test_schema_validation.py +177 -0
  60. type_bridge-1.4.2/tests/utils/proxy_lifecycle.py +94 -0
  61. type_bridge-1.4.2/tests/utils/schema_helpers.py +0 -0
  62. type_bridge-1.4.2/type-bridge-core/Cargo.lock +2645 -0
  63. type_bridge-1.4.2/type-bridge-core/Cargo.toml +11 -0
  64. type_bridge-1.4.2/type-bridge-core/Dockerfile.server +48 -0
  65. type_bridge-1.4.2/type-bridge-core/README.md +53 -0
  66. type_bridge-1.4.2/type-bridge-core/crates/core/Cargo.toml +37 -0
  67. type_bridge-1.4.2/type-bridge-core/crates/core/README.md +55 -0
  68. type_bridge-1.4.2/type-bridge-core/crates/core/benches/compilation.rs +1190 -0
  69. type_bridge-1.4.2/type-bridge-core/crates/core/benches/schema.rs +140 -0
  70. type_bridge-1.4.2/type-bridge-core/crates/core/benches/validation.rs +305 -0
  71. type_bridge-1.4.2/type-bridge-core/crates/core/src/ast.rs +355 -0
  72. type_bridge-1.4.2/type-bridge-core/crates/core/src/compiler.rs +1588 -0
  73. type_bridge-1.4.2/type-bridge-core/crates/core/src/lib.rs +36 -0
  74. type_bridge-1.4.2/type-bridge-core/crates/core/src/parser.rs +1349 -0
  75. type_bridge-1.4.2/type-bridge-core/crates/core/src/query_parser.rs +2738 -0
  76. {type_bridge-1.4.0.dev0/type-bridge-core/src/core → type_bridge-1.4.2/type-bridge-core/crates/core/src}/reserved_words.rs +5 -1
  77. type_bridge-1.4.2/type-bridge-core/crates/core/src/schema.rs +1152 -0
  78. type_bridge-1.4.2/type-bridge-core/crates/core/src/validation.rs +3210 -0
  79. type_bridge-1.4.2/type-bridge-core/crates/core/src/value_coercion.rs +1219 -0
  80. type_bridge-1.4.2/type-bridge-core/crates/orm/Cargo.toml +49 -0
  81. type_bridge-1.4.2/type-bridge-core/crates/orm/benches/query_building.rs +149 -0
  82. type_bridge-1.4.2/type-bridge-core/crates/orm/benches/serde.rs +274 -0
  83. type_bridge-1.4.2/type-bridge-core/crates/orm/src/attribute.rs +368 -0
  84. type_bridge-1.4.2/type-bridge-core/crates/orm/src/bin/codegen.rs +78 -0
  85. type_bridge-1.4.2/type-bridge-core/crates/orm/src/codegen/generator.rs +594 -0
  86. type_bridge-1.4.2/type-bridge-core/crates/orm/src/codegen/mod.rs +8 -0
  87. type_bridge-1.4.2/type-bridge-core/crates/orm/src/codegen/naming.rs +81 -0
  88. type_bridge-1.4.2/type-bridge-core/crates/orm/src/entity.rs +229 -0
  89. type_bridge-1.4.2/type-bridge-core/crates/orm/src/error.rs +55 -0
  90. type_bridge-1.4.2/type-bridge-core/crates/orm/src/expr.rs +922 -0
  91. type_bridge-1.4.2/type-bridge-core/crates/orm/src/field_ref.rs +473 -0
  92. type_bridge-1.4.2/type-bridge-core/crates/orm/src/filter.rs +47 -0
  93. type_bridge-1.4.2/type-bridge-core/crates/orm/src/hooks/context.rs +43 -0
  94. type_bridge-1.4.2/type-bridge-core/crates/orm/src/hooks/error.rs +25 -0
  95. type_bridge-1.4.2/type-bridge-core/crates/orm/src/hooks/mod.rs +16 -0
  96. type_bridge-1.4.2/type-bridge-core/crates/orm/src/hooks/runner.rs +108 -0
  97. type_bridge-1.4.2/type-bridge-core/crates/orm/src/hooks/traits.rs +73 -0
  98. type_bridge-1.4.2/type-bridge-core/crates/orm/src/lib.rs +75 -0
  99. type_bridge-1.4.2/type-bridge-core/crates/orm/src/manager/entity_manager.rs +490 -0
  100. type_bridge-1.4.2/type-bridge-core/crates/orm/src/manager/hydration.rs +268 -0
  101. type_bridge-1.4.2/type-bridge-core/crates/orm/src/manager/mod.rs +13 -0
  102. type_bridge-1.4.2/type-bridge-core/crates/orm/src/manager/query_builder.rs +892 -0
  103. type_bridge-1.4.2/type-bridge-core/crates/orm/src/manager/relation_manager.rs +338 -0
  104. type_bridge-1.4.2/type-bridge-core/crates/orm/src/query/entity_query.rs +153 -0
  105. type_bridge-1.4.2/type-bridge-core/crates/orm/src/query/group_by_query.rs +127 -0
  106. type_bridge-1.4.2/type-bridge-core/crates/orm/src/query/mod.rs +14 -0
  107. type_bridge-1.4.2/type-bridge-core/crates/orm/src/query/relation_query.rs +152 -0
  108. type_bridge-1.4.2/type-bridge-core/crates/orm/src/relation.rs +288 -0
  109. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/diff.rs +715 -0
  110. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/error.rs +25 -0
  111. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/generator.rs +675 -0
  112. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/info.rs +306 -0
  113. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/manager.rs +359 -0
  114. type_bridge-1.4.2/type-bridge-core/crates/orm/src/schema/mod.rs +12 -0
  115. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/backend.rs +65 -0
  116. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/context.rs +60 -0
  117. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/database.rs +121 -0
  118. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/mod.rs +18 -0
  119. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/real_driver.rs +190 -0
  120. type_bridge-1.4.2/type-bridge-core/crates/orm/src/session/transaction.rs +45 -0
  121. type_bridge-1.4.2/type-bridge-core/crates/orm/src/value.rs +175 -0
  122. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/common/mod.rs +468 -0
  123. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/derive_tests.rs +871 -0
  124. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/entity_manager_tests.rs +410 -0
  125. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/error_handling_tests.rs +227 -0
  126. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/hooks_tests.rs +458 -0
  127. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/include_schema_tests.rs +88 -0
  128. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/integration_tests.rs +469 -0
  129. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/query_tests.rs +885 -0
  130. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/relation_hooks_tests.rs +431 -0
  131. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/relation_manager_tests.rs +362 -0
  132. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/schema_tests.rs +693 -0
  133. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/test_schema.tql +7 -0
  134. type_bridge-1.4.2/type-bridge-core/crates/orm/tests/transaction_context_tests.rs +204 -0
  135. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/Cargo.toml +20 -0
  136. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/src/attribute.rs +204 -0
  137. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/src/entity.rs +406 -0
  138. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/src/include_schema.rs +324 -0
  139. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/src/lib.rs +130 -0
  140. type_bridge-1.4.2/type-bridge-core/crates/orm-derive/src/relation.rs +528 -0
  141. {type_bridge-1.4.0.dev0/type-bridge-core → type_bridge-1.4.2/type-bridge-core/crates/python}/Cargo.toml +7 -9
  142. type_bridge-1.4.2/type-bridge-core/crates/python/README.md +74 -0
  143. type_bridge-1.4.2/type-bridge-core/crates/python/src/ast/mod.rs +643 -0
  144. type_bridge-1.4.2/type-bridge-core/crates/python/src/lib.rs +619 -0
  145. type_bridge-1.4.2/type-bridge-core/crates/python/src/orm.rs +415 -0
  146. type_bridge-1.4.2/type-bridge-core/crates/server/Cargo.toml +52 -0
  147. type_bridge-1.4.2/type-bridge-core/crates/server/README.md +216 -0
  148. type_bridge-1.4.2/type-bridge-core/crates/server/src/config.rs +427 -0
  149. type_bridge-1.4.2/type-bridge-core/crates/server/src/error.rs +80 -0
  150. type_bridge-1.4.2/type-bridge-core/crates/server/src/executor.rs +42 -0
  151. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/audit_log.rs +486 -0
  152. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/chain.rs +419 -0
  153. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/crud_info.rs +693 -0
  154. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/crud_interceptor.rs +357 -0
  155. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/mod.rs +12 -0
  156. type_bridge-1.4.2/type-bridge-core/crates/server/src/interceptor/traits.rs +201 -0
  157. type_bridge-1.4.2/type-bridge-core/crates/server/src/lib.rs +60 -0
  158. type_bridge-1.4.2/type-bridge-core/crates/server/src/main.rs +106 -0
  159. type_bridge-1.4.2/type-bridge-core/crates/server/src/pipeline.rs +783 -0
  160. type_bridge-1.4.2/type-bridge-core/crates/server/src/schema_source.rs +219 -0
  161. type_bridge-1.4.2/type-bridge-core/crates/server/src/test_helpers.rs +130 -0
  162. type_bridge-1.4.2/type-bridge-core/crates/server/src/transport/http.rs +651 -0
  163. type_bridge-1.4.2/type-bridge-core/crates/server/src/transport/mod.rs +2 -0
  164. type_bridge-1.4.2/type-bridge-core/crates/server/src/transport/types.rs +50 -0
  165. type_bridge-1.4.2/type-bridge-core/crates/server/src/typedb/backend.rs +48 -0
  166. type_bridge-1.4.2/type-bridge-core/crates/server/src/typedb/client.rs +860 -0
  167. type_bridge-1.4.2/type-bridge-core/crates/server/src/typedb/mod.rs +5 -0
  168. type_bridge-1.4.2/type-bridge-core/crates/server/src/typedb/real_driver.rs +140 -0
  169. type_bridge-1.4.2/type-bridge-core/crates/server/tests/http_integration_tests.rs +419 -0
  170. type_bridge-1.4.2/type-bridge-core/crates/server/tests/interceptor_integration_tests.rs +465 -0
  171. type_bridge-1.4.2/type-bridge-core/crates/server/tests/pipeline_integration_tests.rs +393 -0
  172. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type-bridge-core/pyproject.toml +2 -1
  173. type_bridge-1.4.2/type-bridge-core/server.toml +23 -0
  174. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/__init__.py +12 -1
  175. type_bridge-1.4.2/type_bridge/coercion.py +27 -0
  176. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/__init__.py +5 -0
  177. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/formatting.py +15 -0
  178. type_bridge-1.4.2/type_bridge/crud/hooks.py +152 -0
  179. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/typedb_manager.py +89 -8
  180. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/parser.py +249 -12
  181. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/utils/common.py +2 -4
  182. type_bridge-1.4.2/type_bridge/proxy.py +263 -0
  183. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/query/__init__.py +3 -2
  184. type_bridge-1.4.2/type_bridge/query/parser.py +321 -0
  185. type_bridge-1.4.2/type_bridge/rules.py +146 -0
  186. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/session.py +20 -11
  187. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/validation.py +79 -0
  188. type_bridge-1.4.0.dev0/type-bridge-core/Cargo.lock +0 -256
  189. type_bridge-1.4.0.dev0/type-bridge-core/README.md +0 -30
  190. type_bridge-1.4.0.dev0/type-bridge-core/src/ast/mod.rs +0 -890
  191. type_bridge-1.4.0.dev0/type-bridge-core/src/core/ast.rs +0 -152
  192. type_bridge-1.4.0.dev0/type-bridge-core/src/core/compiler.rs +0 -326
  193. type_bridge-1.4.0.dev0/type-bridge-core/src/core/mod.rs +0 -5
  194. type_bridge-1.4.0.dev0/type-bridge-core/src/core/schema.rs +0 -43
  195. type_bridge-1.4.0.dev0/type-bridge-core/src/core/validation.rs +0 -297
  196. type_bridge-1.4.0.dev0/type-bridge-core/src/lib.rs +0 -135
  197. type_bridge-1.4.0.dev0/type-bridge-core/src/test_clone.rs +0 -8
  198. type_bridge-1.4.0.dev0/type-bridge-core/src/test_manual_clone.rs +0 -10
  199. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.claude/hooks/check-preexisting.sh +0 -0
  200. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.pre-commit-config.yaml +0 -0
  201. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/.python-version +0 -0
  202. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/AGENTS.md +0 -0
  203. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/LICENSE +0 -0
  204. {type_bridge-1.4.0.dev0/tests/integration → type_bridge-1.4.2/benchmarks}/__init__.py +0 -0
  205. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/check.sh +0 -0
  206. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/docker-compose.yml +0 -0
  207. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/docs/SKILL.md +0 -0
  208. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/dto.md +0 -0
  209. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/functions.md +0 -0
  210. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/generator.md +0 -0
  211. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/logging.md +0 -0
  212. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/schema.md +0 -0
  213. {type_bridge-1.4.0.dev0/docs/api → type_bridge-1.4.2/docs/guide}/validation.md +0 -0
  214. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/README.md +0 -0
  215. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/config_01_typename_case.py +0 -0
  216. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/config_02_attribute_case.py +0 -0
  217. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/config_03_typeflags.py +0 -0
  218. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/crud_07_chainable_operations.py +0 -0
  219. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/features_01_pydantic.py +0 -0
  220. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/features_02_type_safety.py +0 -0
  221. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/features_03_string_repr.py +0 -0
  222. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/features_04_base_flag.py +0 -0
  223. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/features_05_implicit_flags.py +0 -0
  224. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/query_01_expressions.py +0 -0
  225. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/schema_01_manager.py +0 -0
  226. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/schema_02_comparison.py +0 -0
  227. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/schema_03_conflict.py +0 -0
  228. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/validation_01_reserved_words.py +0 -0
  229. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/advanced/validation_02_edge_cases.py +0 -0
  230. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud.py +0 -0
  231. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_01_define.py +0 -0
  232. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_02_insert.py +0 -0
  233. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_03_read.py +0 -0
  234. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_04_update.py +0 -0
  235. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_05_filter.py +0 -0
  236. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_06_aggregate.py +0 -0
  237. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_07_delete.py +0 -0
  238. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/basic/crud_08_put.py +0 -0
  239. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/patterns/cardinality_01_multi_value.py +0 -0
  240. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/examples/patterns/inheritance_01_abstract.py +0 -0
  241. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/find_type_ignores.sh +0 -0
  242. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/pyrightconfig.json +0 -0
  243. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/test-integration.sh +0 -0
  244. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/test.sh +0 -0
  245. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/conftest.py +0 -0
  246. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/README.md +0 -0
  247. {type_bridge-1.4.0.dev0/tests/integration/crud → type_bridge-1.4.2/tests/integration}/__init__.py +0 -0
  248. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/conftest.py +0 -0
  249. {type_bridge-1.4.0.dev0/tests/integration/crud/attributes → type_bridge-1.4.2/tests/integration/crud}/__init__.py +0 -0
  250. {type_bridge-1.4.0.dev0/tests/integration/crud/entities → type_bridge-1.4.2/tests/integration/crud/attributes}/__init__.py +0 -0
  251. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_boolean.py +0 -0
  252. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_date.py +0 -0
  253. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_datetime.py +0 -0
  254. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_datetimetz.py +0 -0
  255. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_decimal.py +0 -0
  256. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_double.py +0 -0
  257. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_duration.py +0 -0
  258. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_integer.py +0 -0
  259. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_multi_value.py +0 -0
  260. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_multivalue_escaping.py +0 -0
  261. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/attributes/test_string.py +0 -0
  262. {type_bridge-1.4.0.dev0/tests/integration/crud/interop → type_bridge-1.4.2/tests/integration/crud/entities}/__init__.py +0 -0
  263. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_bulk_operations.py +0 -0
  264. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_chainable.py +0 -0
  265. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_delete.py +0 -0
  266. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_fetch.py +0 -0
  267. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_insert.py +0 -0
  268. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_integer_key_bug.py +0 -0
  269. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_put.py +0 -0
  270. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/entities/test_update.py +0 -0
  271. {type_bridge-1.4.0.dev0/tests/integration/crud/relations → type_bridge-1.4.2/tests/integration/crud/interop}/__init__.py +0 -0
  272. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/interop/test_mixed_entity.py +0 -0
  273. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/interop/test_mixed_queries.py +0 -0
  274. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/interop/test_type_combinations.py +0 -0
  275. {type_bridge-1.4.0.dev0/tests/integration/migration/fixtures/v1 → type_bridge-1.4.2/tests/integration/crud/relations}/__init__.py +0 -0
  276. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_abstract_roles.py +0 -0
  277. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_chainable.py +0 -0
  278. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_delete.py +0 -0
  279. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_fetch.py +0 -0
  280. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_filter.py +0 -0
  281. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_insert.py +0 -0
  282. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_multi_role.py +0 -0
  283. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_put.py +0 -0
  284. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/relations/test_update.py +0 -0
  285. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_complex_relations.py +0 -0
  286. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_crud_edge_cases.py +0 -0
  287. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_filter_validation.py +0 -0
  288. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_iid_feature.py +0 -0
  289. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_inherited_attribute_filter.py +0 -0
  290. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_issue_47.py +0 -0
  291. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_polymorphic_queries.py +0 -0
  292. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_range_validation.py +0 -0
  293. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_typedb_manager.py +0 -0
  294. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/crud/test_update_advanced.py +0 -0
  295. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/expressions/__init__.py +0 -0
  296. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/expressions/test_builtin.py +0 -0
  297. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/__init__.py +0 -0
  298. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/fixtures/bookstore.tql +0 -0
  299. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/fixtures/role_cardinality.tql +0 -0
  300. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/fixtures/social_media.tql +0 -0
  301. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/fixtures/type_theoretic.tql +0 -0
  302. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/test_generate_and_import.py +0 -0
  303. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/generator/test_generator_use_pipeline.py +0 -0
  304. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/migration/__init__.py +0 -0
  305. {type_bridge-1.4.0.dev0/tests/integration/migration/fixtures/v2 → type_bridge-1.4.2/tests/integration/migration/fixtures/v1}/__init__.py +0 -0
  306. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/migration/fixtures/v1/models.py +0 -0
  307. {type_bridge-1.4.0.dev0/tests/integration/queries → type_bridge-1.4.2/tests/integration/migration/fixtures/v2}/__init__.py +0 -0
  308. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/migration/fixtures/v2/models.py +0 -0
  309. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/migration/test_autogenerate.py +0 -0
  310. {type_bridge-1.4.0.dev0/tests/integration/schema → type_bridge-1.4.2/tests/integration/proxy}/__init__.py +0 -0
  311. {type_bridge-1.4.0.dev0/tests/unit → type_bridge-1.4.2/tests/integration/queries}/__init__.py +0 -0
  312. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_bookstore_queries.py +0 -0
  313. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_compiler_integration.py +0 -0
  314. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_complex_graph.py +0 -0
  315. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_cyber_threat_queries.py +0 -0
  316. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_drug_discovery_queries.py +0 -0
  317. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_expressions.py +0 -0
  318. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_filters.py +0 -0
  319. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_function_query.py +0 -0
  320. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_iam_queries.py +0 -0
  321. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_lookup_filters.py +0 -0
  322. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_match.py +0 -0
  323. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_order_by.py +0 -0
  324. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_pagination.py +0 -0
  325. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_role_field_expressions.py +0 -0
  326. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_role_lookup_filters.py +0 -0
  327. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_role_multi_lookup_filters.py +0 -0
  328. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_role_players.py +0 -0
  329. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_social_network_queries.py +0 -0
  330. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/queries/test_typedb_38_builtins.py +0 -0
  331. {type_bridge-1.4.0.dev0/tests/unit/attributes → type_bridge-1.4.2/tests/integration/schema}/__init__.py +0 -0
  332. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_annotation_sync.py +0 -0
  333. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_attributes.py +0 -0
  334. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_cardinality.py +0 -0
  335. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_conflict.py +0 -0
  336. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_constraint_enforcement.py +0 -0
  337. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_creation.py +0 -0
  338. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_diff.py +0 -0
  339. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_inheritance.py +0 -0
  340. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_migration.py +0 -0
  341. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_relations.py +0 -0
  342. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_role_player_diff.py +0 -0
  343. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/schema/test_types.py +0 -0
  344. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/session/test_session_lifecycle.py +0 -0
  345. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/session/test_transaction_context.py +0 -0
  346. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/session/test_transaction_edge_cases.py +0 -0
  347. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/integration/validation/test_reserved_words_integration.py +0 -0
  348. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/README.md +0 -0
  349. {type_bridge-1.4.0.dev0/tests/unit/core → type_bridge-1.4.2/tests/unit}/__init__.py +0 -0
  350. {type_bridge-1.4.0.dev0/tests/unit/crud → type_bridge-1.4.2/tests/unit/attributes}/__init__.py +0 -0
  351. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_boolean.py +0 -0
  352. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_date.py +0 -0
  353. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_datetime_tz.py +0 -0
  354. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_decimal.py +0 -0
  355. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_double.py +0 -0
  356. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_duration.py +0 -0
  357. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_formatting.py +0 -0
  358. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_integer.py +0 -0
  359. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_multivalue_escaping.py +0 -0
  360. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_range_validation.py +0 -0
  361. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/attributes/test_string.py +0 -0
  362. {type_bridge-1.4.0.dev0/tests/unit/flags → type_bridge-1.4.2/tests/unit/core}/__init__.py +0 -0
  363. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_entity_dict.py +0 -0
  364. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_entity_to_ast.py +0 -0
  365. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_inheritance.py +0 -0
  366. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_inherited_attribute_filter.py +0 -0
  367. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_multi_role_players.py +0 -0
  368. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/core/test_relation_to_ast.py +0 -0
  369. /type_bridge-1.4.0.dev0/tests/utils/schema_helpers.py → /type_bridge-1.4.2/tests/unit/crud/__init__.py +0 -0
  370. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_exceptions.py +0 -0
  371. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_format_value.py +0 -0
  372. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_get_by_iid.py +0 -0
  373. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_negative_cases.py +0 -0
  374. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_polymorphic_role_player.py +0 -0
  375. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_recursive_relations.py +0 -0
  376. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_role_lookup_parser.py +0 -0
  377. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_typedb_manager.py +0 -0
  378. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_update_queries.py +0 -0
  379. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/crud/test_wrap_attribute_value.py +0 -0
  380. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/exceptions/test_exceptions.py +0 -0
  381. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_arithmetic.py +0 -0
  382. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_boolean_expr.py +0 -0
  383. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_builtin.py +0 -0
  384. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_field_refs.py +0 -0
  385. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_function_query.py +0 -0
  386. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_role_player_expr.py +0 -0
  387. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/expressions/test_utils.py +0 -0
  388. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/fields/test_field_descriptor.py +0 -0
  389. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/fields/test_role_ref.py +0 -0
  390. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/flags/test_attribute_typename_case.py +0 -0
  391. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/flags/test_base_flag.py +0 -0
  392. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/flags/test_typename_case.py +0 -0
  393. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/__init__.py +0 -0
  394. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/fixtures/bookstore.tql +0 -0
  395. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_annotations.py +0 -0
  396. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_api_dto.py +0 -0
  397. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_functions.py +0 -0
  398. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_generator.py +0 -0
  399. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_naming.py +0 -0
  400. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_range_generation.py +0 -0
  401. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/generator/test_registry.py +0 -0
  402. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/migration/__init__.py +0 -0
  403. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/models/test_registry_resolve.py +0 -0
  404. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/query/test_ast.py +0 -0
  405. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/query/test_compiler.py +0 -0
  406. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/query/test_query_builder.py +0 -0
  407. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/schema/test_annotation_generation.py +0 -0
  408. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/schema/test_breaking.py +0 -0
  409. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/schema/test_role_changes.py +0 -0
  410. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/session/test_session_unit.py +0 -0
  411. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_basic.py +0 -0
  412. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_cardinality.py +0 -0
  413. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_list_default.py +0 -0
  414. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_multi_role_players_invalid.py +0 -0
  415. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_pydantic.py +0 -0
  416. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/type-check-except/test_update_api.py +0 -0
  417. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/typeql/__init__.py +0 -0
  418. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/typeql/test_annotations.py +0 -0
  419. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/validation/test_duplicate_attributes.py +0 -0
  420. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/unit/validation/test_reserved_words.py +0 -0
  421. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/utils/__init__.py +0 -0
  422. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/utils/assertions.py +0 -0
  423. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/utils/data_builders.py +0 -0
  424. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/tests/utils/typedb_lifecycle.py +0 -0
  425. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type-bridge-core/.cargo/config.toml +0 -0
  426. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/_rust.py +0 -0
  427. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/__init__.py +0 -0
  428. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/base.py +0 -0
  429. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/boolean.py +0 -0
  430. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/date.py +0 -0
  431. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/datetime.py +0 -0
  432. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/datetimetz.py +0 -0
  433. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/decimal.py +0 -0
  434. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/double.py +0 -0
  435. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/duration.py +0 -0
  436. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/flags.py +0 -0
  437. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/integer.py +0 -0
  438. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/numeric.py +0 -0
  439. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/attribute/string.py +0 -0
  440. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/aggregates.py +0 -0
  441. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/base.py +0 -0
  442. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/exceptions.py +0 -0
  443. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/lookup.py +0 -0
  444. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/manager.py +0 -0
  445. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/patterns.py +0 -0
  446. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/role_lookup.py +0 -0
  447. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/role_players.py +0 -0
  448. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/strategies.py +0 -0
  449. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/types.py +0 -0
  450. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/crud/utils.py +0 -0
  451. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/__init__.py +0 -0
  452. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/aggregate.py +0 -0
  453. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/arithmetic.py +0 -0
  454. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/base.py +0 -0
  455. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/boolean.py +0 -0
  456. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/builtin.py +0 -0
  457. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/comparison.py +0 -0
  458. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/functions.py +0 -0
  459. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/iid.py +0 -0
  460. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/role_player.py +0 -0
  461. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/string.py +0 -0
  462. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/expressions/utils.py +0 -0
  463. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/fields/__init__.py +0 -0
  464. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/fields/base.py +0 -0
  465. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/fields/role.py +0 -0
  466. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/__init__.py +0 -0
  467. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/__main__.py +0 -0
  468. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/annotations.py +0 -0
  469. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/dto_config.py +0 -0
  470. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/models.py +0 -0
  471. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/naming.py +0 -0
  472. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/__init__.py +0 -0
  473. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/api_dto.py +0 -0
  474. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/attributes.py +0 -0
  475. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/entities.py +0 -0
  476. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/functions.py +0 -0
  477. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/package.py +0 -0
  478. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/registry.py +0 -0
  479. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/relations.py +0 -0
  480. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/structs.py +0 -0
  481. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/render/template_loader.py +0 -0
  482. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/_dto_macros.jinja +0 -0
  483. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/api_dto.py.jinja +0 -0
  484. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/attributes.py.jinja +0 -0
  485. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/entities.py.jinja +0 -0
  486. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/package_init.py.jinja +0 -0
  487. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/registry.py.jinja +0 -0
  488. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/relations.py.jinja +0 -0
  489. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/templates/structs.py.jinja +0 -0
  490. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/typeql.lark +0 -0
  491. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/typeql.pest +0 -0
  492. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/utils/__init__.py +0 -0
  493. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/generator/utils/types.py +0 -0
  494. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/__init__.py +0 -0
  495. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/__main__.py +0 -0
  496. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/base.py +0 -0
  497. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/breaking.py +0 -0
  498. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/diff.py +0 -0
  499. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/exceptions.py +0 -0
  500. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/executor.py +0 -0
  501. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/generator.py +0 -0
  502. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/info.py +0 -0
  503. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/introspection.py +0 -0
  504. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/loader.py +0 -0
  505. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/operations.py +0 -0
  506. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/registry.py +0 -0
  507. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/schema_manager.py +0 -0
  508. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/simple_migration.py +0 -0
  509. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/state.py +0 -0
  510. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/migration/utils.py +0 -0
  511. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/__init__.py +0 -0
  512. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/base.py +0 -0
  513. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/entity.py +0 -0
  514. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/registry.py +0 -0
  515. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/relation.py +0 -0
  516. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/role.py +0 -0
  517. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/schema_scanner.py +0 -0
  518. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/models/utils.py +0 -0
  519. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/query/ast.py +0 -0
  520. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/query/compiler.py +0 -0
  521. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/reserved_words.py +0 -0
  522. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/typedb_driver.py +0 -0
  523. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/typeql/__init__.py +0 -0
  524. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/type_bridge/typeql/annotations.py +0 -0
  525. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/typings/isodate/__init__.pyi +0 -0
  526. {type_bridge-1.4.0.dev0 → type_bridge-1.4.2}/typings/typedb/driver.pyi +0 -0
@@ -18,6 +18,11 @@ jobs:
18
18
  - name: Checkout code
19
19
  uses: actions/checkout@v4
20
20
 
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.13"
25
+
21
26
  - name: Install Rust toolchain
22
27
  uses: dtolnay/rust-toolchain@stable
23
28
 
@@ -44,6 +49,45 @@ jobs:
44
49
  working-directory: type-bridge-core
45
50
  run: cargo clippy --all-targets -- -D warnings
46
51
 
52
+ # Rust code coverage (informational, does not block CI)
53
+ rust-coverage:
54
+ name: Rust Coverage
55
+ runs-on: ubuntu-latest
56
+ continue-on-error: true
57
+ steps:
58
+ - name: Checkout code
59
+ uses: actions/checkout@v4
60
+
61
+ - name: Install Rust nightly
62
+ uses: dtolnay/rust-toolchain@nightly
63
+ with:
64
+ components: llvm-tools-preview
65
+
66
+ - name: Install cargo-llvm-cov
67
+ uses: taiki-e/install-action@cargo-llvm-cov
68
+
69
+ - name: Cache cargo registry and build
70
+ uses: actions/cache@v4
71
+ with:
72
+ path: |
73
+ ~/.cargo/registry
74
+ ~/.cargo/git
75
+ type-bridge-core/target
76
+ key: ${{ runner.os }}-cargo-nightly-${{ hashFiles('type-bridge-core/Cargo.lock') }}
77
+ restore-keys: |
78
+ ${{ runner.os }}-cargo-nightly-
79
+
80
+ - name: Generate LCOV report
81
+ run: ./scripts/coverage.sh branch --lcov
82
+
83
+ - name: Upload Rust coverage to Codecov
84
+ uses: codecov/codecov-action@v5
85
+ with:
86
+ token: ${{ secrets.CODECOV_TOKEN }}
87
+ files: type-bridge-core/target/llvm-cov/lcov.branch.info
88
+ flags: rust
89
+ fail_ci_if_error: false
90
+
47
91
  # Build maturin wheels for all platforms (parallel with other jobs)
48
92
  build-wheels:
49
93
  name: Build wheel (${{ matrix.target }})
@@ -194,8 +238,21 @@ jobs:
194
238
  - name: Install pytest-xdist for parallel execution
195
239
  run: uv pip install pytest-xdist
196
240
 
197
- - name: Run unit tests in parallel
198
- run: uv run pytest tests/unit/ -v --tb=short -n auto
241
+ - name: Run unit tests with coverage
242
+ run: |
243
+ uv run pytest tests/unit/ -v --tb=short -n auto \
244
+ --cov=type_bridge --cov-branch \
245
+ --cov-report=xml:coverage.xml \
246
+ --cov-report=term-missing
247
+
248
+ - name: Upload Python coverage to Codecov
249
+ uses: codecov/codecov-action@v5
250
+ if: always()
251
+ with:
252
+ token: ${{ secrets.CODECOV_TOKEN }}
253
+ files: coverage.xml
254
+ flags: python
255
+ fail_ci_if_error: false
199
256
 
200
257
  # Integration tests (require TypeDB server, parallel by test category)
201
258
  test-integration:
@@ -0,0 +1,86 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ paths:
7
+ - "docs/**"
8
+ - "type_bridge/**"
9
+ - "mkdocs.yml"
10
+ - "scripts/gen_ref_pages.py"
11
+ pull_request:
12
+ branches: [master]
13
+ paths:
14
+ - "docs/**"
15
+ - "type_bridge/**"
16
+ - "mkdocs.yml"
17
+ - "scripts/gen_ref_pages.py"
18
+ workflow_dispatch:
19
+
20
+ # Allow only one concurrent deployment
21
+ concurrency:
22
+ group: pages-${{ github.ref }}
23
+ cancel-in-progress: true
24
+
25
+ # Sets permissions for GitHub Pages deployment
26
+ permissions:
27
+ contents: read
28
+ pages: write
29
+ id-token: write
30
+
31
+ jobs:
32
+ build:
33
+ name: Build docs
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - name: Checkout code
37
+ uses: actions/checkout@v4
38
+
39
+ - name: Set up Python
40
+ uses: actions/setup-python@v5
41
+ with:
42
+ python-version: "3.13"
43
+
44
+ - name: Install Rust toolchain
45
+ uses: dtolnay/rust-toolchain@stable
46
+
47
+ - name: Cache cargo registry and build
48
+ uses: actions/cache@v4
49
+ with:
50
+ path: |
51
+ ~/.cargo/registry
52
+ ~/.cargo/git
53
+ type-bridge-core/target
54
+ key: ${{ runner.os }}-cargo-docs-${{ hashFiles('type-bridge-core/Cargo.lock') }}
55
+ restore-keys: |
56
+ ${{ runner.os }}-cargo-docs-
57
+
58
+ - name: Install uv
59
+ uses: astral-sh/setup-uv@v5
60
+ with:
61
+ enable-cache: true
62
+
63
+ - name: Install dependencies
64
+ run: uv sync --extra docs
65
+
66
+ - name: Build documentation
67
+ run: uv run mkdocs build --strict
68
+
69
+ - name: Upload artifact
70
+ if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
71
+ uses: actions/upload-pages-artifact@v3
72
+ with:
73
+ path: site/
74
+
75
+ deploy:
76
+ name: Deploy to GitHub Pages
77
+ if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
78
+ needs: build
79
+ runs-on: ubuntu-latest
80
+ environment:
81
+ name: github-pages
82
+ url: ${{ steps.deployment.outputs.page_url }}
83
+ steps:
84
+ - name: Deploy to GitHub Pages
85
+ id: deployment
86
+ uses: actions/deploy-pages@v4
@@ -45,6 +45,52 @@ jobs:
45
45
  - name: Run unit tests
46
46
  run: uv run pytest tests/unit/ -v --tb=short
47
47
 
48
+ # Publish Rust crates to crates.io (dependency order)
49
+ publish-crates:
50
+ name: Publish Rust crates to crates.io
51
+ needs: test
52
+ runs-on: ubuntu-latest
53
+ environment: release
54
+ steps:
55
+ - name: Checkout code
56
+ uses: actions/checkout@v4
57
+
58
+ - name: Install Rust toolchain
59
+ uses: dtolnay/rust-toolchain@stable
60
+
61
+ - name: Publish type-bridge-core-lib
62
+ working-directory: type-bridge-core
63
+ env:
64
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
65
+ run: cargo publish -p type-bridge-core-lib || true
66
+
67
+ - name: Wait for crates.io index
68
+ run: sleep 30
69
+
70
+ - name: Publish type-bridge-orm-derive
71
+ working-directory: type-bridge-core
72
+ env:
73
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
74
+ run: cargo publish -p type-bridge-orm-derive || true
75
+
76
+ - name: Wait for crates.io index
77
+ run: sleep 30
78
+
79
+ - name: Publish type-bridge-orm
80
+ working-directory: type-bridge-core
81
+ env:
82
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
83
+ run: cargo publish -p type-bridge-orm || true
84
+
85
+ - name: Wait for crates.io index
86
+ run: sleep 30
87
+
88
+ - name: Publish type-bridge-server
89
+ working-directory: type-bridge-core
90
+ env:
91
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
92
+ run: cargo publish -p type-bridge-server || true
93
+
48
94
  # Build type-bridge-core wheels for all platforms
49
95
  build-core-wheels:
50
96
  name: Build core wheel (${{ matrix.target }})
@@ -178,6 +224,8 @@ jobs:
178
224
 
179
225
  - name: Publish to PyPI
180
226
  uses: pypa/gh-action-pypi-publish@release/v1
227
+ with:
228
+ skip-existing: true
181
229
 
182
230
  # Publish type-bridge to PyPI (after core is available)
183
231
  publish-python-pypi:
@@ -196,11 +244,13 @@ jobs:
196
244
 
197
245
  - name: Publish to PyPI
198
246
  uses: pypa/gh-action-pypi-publish@release/v1
247
+ with:
248
+ skip-existing: true
199
249
 
200
250
  # Create draft GitHub Release with all artifacts
201
251
  github-release:
202
252
  name: Create GitHub Release
203
- needs: publish-python-pypi
253
+ needs: [publish-python-pypi, publish-crates]
204
254
  runs-on: ubuntu-latest
205
255
  permissions:
206
256
  contents: write
@@ -22,10 +22,20 @@ packages/typescript/dist/
22
22
  # Coverage
23
23
  .coverage
24
24
  htmlcov/
25
+ coverage.xml
25
26
 
26
27
  # Temporary
27
28
  tmp/
28
29
 
30
+ # Benchmarks
31
+ benchmarks/.results/
32
+ .benchmarks/
33
+
34
+ # MkDocs build output
35
+ site/
36
+
29
37
  # Reference repos
30
38
  typeql-ref/
31
- type-bridge-core/target/
39
+ type-bridge-core/**/target/
40
+ *.profraw
41
+ *.profdata
@@ -2,6 +2,127 @@
2
2
 
3
3
  All notable changes to TypeBridge will be documented in this file.
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ## [1.4.2] - 2026-03-04
8
+
9
+ ##### Rust Server — `type-bridge-server`
10
+ - **`CrudInfo`** on `RequestContext` — operation, type_name, type_kind, attribute_names, iid
11
+ - **`CrudInterceptor` trait** with `on_crud_request` / `on_crud_response` and `should_intercept`
12
+ - **`CrudInterceptorAdapter`** bridges `CrudInterceptor` into the existing `Interceptor` chain
13
+
14
+ ## [1.4.1] - 2026-03-03
15
+
16
+ ### New Features
17
+
18
+ #### Lifecycle Hook System (PR #118, closes #116)
19
+
20
+ Three-layer hook system for reacting to CRUD lifecycle events (audit logging, validation, cache invalidation, async notifications).
21
+
22
+ ##### Python ORM — `type_bridge.crud.hooks`
23
+ - **`CrudEvent` enum** — `PRE_INSERT`, `POST_INSERT`, `PRE_UPDATE`, `POST_UPDATE`, `PRE_DELETE`, `POST_DELETE`, `PRE_PUT`, `POST_PUT`
24
+ - **`LifecycleHook` protocol** — implement only the methods you need (`pre_insert`, `post_delete`, etc.)
25
+ - **`HookCancelled` exception** — raise in a pre-hook to abort the operation
26
+ - **Per-manager registration** — `manager.add_hook(hook)` / `manager.remove_hook(hook)`, chainable
27
+ - **`should_run(event, sender)`** filtering by event type or model class
28
+ - Pre-hooks run in registration order; post-hooks run in reverse order (middleware unwinding)
29
+ - Zero overhead when no hooks are registered
30
+
31
+ ##### Rust ORM — `type-bridge-orm`
32
+ - **`LifecycleHook` trait** with `HookContext`, `PreHookResult` (Continue/Reject), and `HookRunner`
33
+ - Integrated into `EntityManager` and `RelationManager` via `add_hook()`
34
+ - Same semantics as the Python layer (registration-order pre-hooks, reverse-order post-hooks)
35
+
36
+ #### Put (Upsert) Clause — `type-bridge-core-lib`
37
+ - **Added `Clause::Put(Vec<Statement>)` variant** for idempotent insert (upsert) operations
38
+ - Parser: `parse_put_clause` with keyword lookahead in both `parse_patterns` and `parse_statements`
39
+ - Compiler: Generates `put\n<statements>;` TypeQL output
40
+ - Validation: Reuses Insert validation rules (`Clause::Insert | Clause::Put`)
41
+ - Full roundtrip support (parse → AST → compile → parse)
42
+
43
+ ### Refactoring
44
+
45
+ #### Server API Simplification — `type-bridge-server`
46
+ - **Removed standalone CRUD module** (`/entities/*`, `/relations/*` endpoints, `CrudQueryBuilder`, raw query support) — superseded by the interceptor-based design
47
+ - **Removed `crud_builder` benchmark** and `criterion` dev-dependency
48
+ - **Server now has 4 endpoints**: `POST /query`, `POST /query/validate`, `GET /health`, `GET /schema`
49
+
50
+ ## [1.4.0] - 2026-02-20
51
+
52
+ ### Highlights
53
+
54
+ - 5 new Rust crates: `core-lib`, `orm`, `orm-derive`, `server`, and `python` (PyO3 bindings)
55
+ - Up to **40x faster validation** and **2.5x faster query compilation** via the Rust backend
56
+ - Async Rust ORM with derive macros, chainable queries, and batch operations
57
+ - Query-intercepting proxy server with REST endpoints
58
+ - MkDocs Material documentation site
59
+
60
+ ### New Features
61
+
62
+ #### Rust Core — `type-bridge-core-lib` (PRs #95, #101-#108)
63
+ - **TypeQL schema parser** with inheritance resolution and PyO3 bindings
64
+ - **TypeQL query parser** with bidirectional AST roundtrip
65
+ - **Schema-aware query validation** with statement and pattern validators
66
+ - **Rust-backed value coercion** and `format_value`
67
+ - **Custom validation rules** with portable JSON DSL
68
+ - **Wired Rust core into Python** compiler and validation pipeline
69
+
70
+ #### Async Rust ORM — `type-bridge-orm` (PR #114)
71
+ - **Async ORM** with entity CRUD and mock-testable session layer
72
+ - **Derive macros** — `#[derive(TypeBridgeEntity)]`, `#[derive(TypeBridgeRelation)]`, `#[derive(TypeBridgeAttribute)]`
73
+ - **Chainable query builders** with expression filtering and aggregation
74
+ - **Schema management** — registration, generation, diff, and sync
75
+ - **Abstract types** with inheritance and code generation
76
+ - **Batch operations** — `insert_many`, `delete_many`, `update_many`
77
+ - **`FieldRef<A>`** for type-safe query field references
78
+ - **`include_schema!`** proc-macro for compile-time TQL codegen
79
+ - **Schema introspection** from live TypeDB database
80
+ - **Group-by queries** with `GroupByResult`
81
+ - **Role player field access** for relation query filtering
82
+ - **Expression helpers** — `in_range()`, `startswith()`, `endswith()`
83
+ - **Connection pooling** with `Database::into_shared()`
84
+ - **Serde support** on all ORM model types
85
+ - **Structured tracing** spans on all public methods
86
+
87
+ #### Query Intercept Proxy — `type-bridge-server` (PR #109)
88
+ - **REST CRUD endpoints** with schema-aware query building
89
+ - **`CrudQueryBuilder` PyO3 class** for TypeQL generation from Python
90
+ - **Extensible library/framework** — pluggable `QueryExecutor`, `Interceptor`, `SchemaSource`
91
+ - **207 tests** with 100% MC/DC coverage
92
+
93
+ ### Performance: Python vs Rust
94
+
95
+ #### Validation
96
+
97
+ | Operation | Python | Rust | Speedup |
98
+ |-----------|--------|------|---------|
99
+ | Single type name | 1.89 us | 354.75 ns | **5.3x** |
100
+ | Long name (100+ chars) | 24.90 us | 620.52 ns | **40.1x** |
101
+ | Batch 1,000 names | 5.32 ms | 266.80 us | **19.9x** |
102
+ | Batch 5,000 names | 28.02 ms | 1.33 ms | **21.1x** |
103
+
104
+ #### Query Compilation (via serde bridge)
105
+
106
+ | Operation | Python | Rust | Speedup |
107
+ |-----------|--------|------|---------|
108
+ | Standalone update | 93.28 us | 37.82 us | **2.5x** |
109
+ | Large batch (200 clauses) | 2.26 ms | 1.07 ms | **2.1x** |
110
+ | Heavy insert (100x6) | 1.71 ms | 896.19 us | **1.9x** |
111
+
112
+ ### Documentation & CI
113
+
114
+ - **MkDocs + Material** documentation site with auto-generated API reference (PR #98)
115
+ - **Rust crate CI** with multi-platform wheel builds — Linux (x86_64, aarch64), macOS (x86_64, aarch64), Windows (x86_64) (PR #95)
116
+ - **Comprehensive benchmark suite** with TOML storage, comparison reports, and markdown generation (PR #103)
117
+ - **Codecov integration** for Rust coverage tracking (PR #109)
118
+
119
+ ### Bug Fixes
120
+
121
+ - Resolve Rust 1.93.0 clippy lint errors
122
+ - Pin Python 3.13 for Rust CI jobs and fix coverage script
123
+ - Add version specifiers to inter-crate path dependencies for crates.io publishing
124
+ - Make release workflow idempotent (skip already-published packages)
125
+
5
126
  ## [1.3.0] - 2026-02-09
6
127
 
7
128
  ### New Features
@@ -84,6 +84,7 @@ type_bridge/
84
84
  │ ├── base.py # Type variables (E, R)
85
85
  │ ├── utils.py # Shared utilities (format_value, is_multi_value_attribute)
86
86
  │ ├── exceptions.py # CRUD exceptions
87
+ │ ├── hooks.py # Lifecycle hooks (CrudEvent, HookCancelled, CrudHook, HookRunner)
87
88
  │ ├── entity/ # Entity CRUD operations
88
89
  │ │ ├── __init__.py # Entity module exports
89
90
  │ │ ├── manager.py # EntityManager class
@@ -187,37 +188,39 @@ The project requires:
187
188
 
188
189
  ## Documentation
189
190
 
191
+ Full documentation site: **[https://ds1sqe.github.io/type-bridge/](https://ds1sqe.github.io/type-bridge/)**
192
+
190
193
  ### User Documentation
191
194
 
192
195
  - **[README.md](README.md)** - Quick start guide for users
193
196
 
194
197
  ### Development Guides
195
198
 
196
- - **[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)** - Development setup, commands, code quality standards
197
- - **[docs/TESTING.md](docs/TESTING.md)** - Testing strategy, patterns, and execution
199
+ - **[docs/development/setup.md](docs/development/setup.md)** - Development setup, commands, code quality standards
200
+ - **[docs/development/testing.md](docs/development/testing.md)** - Testing strategy, patterns, and execution
198
201
 
199
202
  ### TypeDB Integration
200
203
 
201
- - **[docs/TYPEDB.md](docs/TYPEDB.md)** - TypeDB concepts, driver API, TypeQL syntax, 3.x changes
202
- - **[docs/ABSTRACT_TYPES.md](docs/ABSTRACT_TYPES.md)** - Abstract types and interface hierarchies in TypeDB
204
+ - **[docs/development/typedb.md](docs/development/typedb.md)** - TypeDB concepts, driver API, TypeQL syntax, 3.x changes
205
+ - **[docs/development/abstract-types.md](docs/development/abstract-types.md)** - Abstract types and interface hierarchies in TypeDB
203
206
 
204
207
  ### Architecture & Internals
205
208
 
206
- - **[docs/INTERNALS.md](docs/INTERNALS.md)** - Internal type system, ModelAttrInfo, modern Python standards
207
-
208
- ### API Reference
209
-
210
- - **[docs/api/README.md](docs/api/README.md)** - API overview and quick reference
211
- - **[docs/api/attributes.md](docs/api/attributes.md)** - Attribute types and value types
212
- - **[docs/api/entities.md](docs/api/entities.md)** - Entity definition and ownership
213
- - **[docs/api/relations.md](docs/api/relations.md)** - Relations, roles, and role players
214
- - **[docs/api/abstract_types.md](docs/api/abstract_types.md)** - Abstract types implementation and patterns
215
- - **[docs/api/cardinality.md](docs/api/cardinality.md)** - Card API and Flag system
216
- - **[docs/api/crud.md](docs/api/crud.md)** - CRUD operations and managers
217
- - **[docs/api/queries.md](docs/api/queries.md)** - Query expressions and aggregations
218
- - **[docs/api/schema.md](docs/api/schema.md)** - Schema management and conflict detection
219
- - **[docs/api/generator.md](docs/api/generator.md)** - Code generator (TQL → Python)
220
- - **[docs/api/validation.md](docs/api/validation.md)** - Pydantic integration and type safety
209
+ - **[docs/development/internals.md](docs/development/internals.md)** - Internal type system, ModelAttrInfo, modern Python standards
210
+
211
+ ### User Guide (API docs)
212
+
213
+ - **[docs/guide/index.md](docs/guide/index.md)** - API overview and quick reference
214
+ - **[docs/guide/attributes.md](docs/guide/attributes.md)** - Attribute types and value types
215
+ - **[docs/guide/entities.md](docs/guide/entities.md)** - Entity definition and ownership
216
+ - **[docs/guide/relations.md](docs/guide/relations.md)** - Relations, roles, and role players
217
+ - **[docs/guide/abstract-types.md](docs/guide/abstract-types.md)** - Abstract types implementation and patterns
218
+ - **[docs/guide/cardinality.md](docs/guide/cardinality.md)** - Card API and Flag system
219
+ - **[docs/guide/crud.md](docs/guide/crud.md)** - CRUD operations and managers
220
+ - **[docs/guide/queries.md](docs/guide/queries.md)** - Query expressions and aggregations
221
+ - **[docs/guide/schema.md](docs/guide/schema.md)** - Schema management and conflict detection
222
+ - **[docs/guide/generator.md](docs/guide/generator.md)** - Code generator (TQL → Python)
223
+ - **[docs/guide/validation.md](docs/guide/validation.md)** - Pydantic integration and type safety
221
224
 
222
225
  ## Getting Help
223
226
 
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: type-bridge
3
- Version: 1.4.0.dev0
3
+ Version: 1.4.2
4
4
  Summary: A modern, Pythonic ORM for TypeDB with an Attribute-based API
5
5
  Project-URL: Homepage, https://github.com/ds1sqe/type-bridge
6
6
  Project-URL: Repository, https://github.com/ds1sqe/type-bridge
7
- Project-URL: Documentation, https://github.com/ds1sqe/type-bridge/blob/master/README.md
7
+ Project-URL: Documentation, https://ds1sqe.github.io/type-bridge/
8
8
  Project-URL: Issues, https://github.com/ds1sqe/type-bridge/issues
9
9
  Author-email: ds1sqe <ds1sqe@mensakorea.org>
10
10
  License: MIT
@@ -22,16 +22,24 @@ Requires-Dist: isodate==0.7.2
22
22
  Requires-Dist: jinja2>=3.1.0
23
23
  Requires-Dist: lark>=1.1.9
24
24
  Requires-Dist: pydantic>=2.12.4
25
- Requires-Dist: type-bridge-core>=0.1.0.dev0
25
+ Requires-Dist: type-bridge-core>=1.4.2
26
26
  Requires-Dist: typedb-driver>=3.8.0
27
27
  Requires-Dist: typer>=0.15.0
28
28
  Provides-Extra: dev
29
29
  Requires-Dist: pyright>=1.1.407; extra == 'dev'
30
30
  Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
31
+ Requires-Dist: pytest-benchmark>=5.1.0; extra == 'dev'
31
32
  Requires-Dist: pytest-cov>=6.0.0; extra == 'dev'
32
33
  Requires-Dist: pytest-order>=1.2.0; extra == 'dev'
33
34
  Requires-Dist: pytest>=9.0.1; extra == 'dev'
34
35
  Requires-Dist: ruff>=0.14.5; extra == 'dev'
36
+ Provides-Extra: docs
37
+ Requires-Dist: mkdocs-gen-files>=0.5; extra == 'docs'
38
+ Requires-Dist: mkdocs-literate-nav>=0.6; extra == 'docs'
39
+ Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
40
+ Requires-Dist: mkdocs-section-index>=0.3; extra == 'docs'
41
+ Requires-Dist: mkdocs>=1.6; extra == 'docs'
42
+ Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
35
43
  Description-Content-Type: text/markdown
36
44
 
37
45
  # TypeBridge
@@ -61,6 +69,7 @@ A modern, Pythonic ORM for [TypeDB](https://github.com/typedb/typedb) with an At
61
69
  - **Data Validation**: Automatic type checking and coercion via Pydantic, including keyword validation
62
70
  - **JSON Support**: Seamless JSON serialization/deserialization
63
71
  - **CRUD Operations**: Full CRUD with fetching API (get, filter, all, update) for entities and relations
72
+ - **Lifecycle Hooks**: Pre/post-operation hooks for audit logging, validation, cache invalidation, and async notifications
64
73
  - **Chainable Operations**: Filter, delete, and bulk update with method chaining and lambda functions
65
74
  - **Query Builder**: Pythonic interface for building TypeQL queries
66
75
  - **Multi-player Roles**: A single role can accept multiple entity types via `Role.multi(...)`
@@ -72,18 +81,19 @@ A modern, Pythonic ORM for [TypeDB](https://github.com/typedb/typedb) with an At
72
81
  ## Installation
73
82
 
74
83
  ```bash
75
- # Clone the repository
76
- git clone https://github.com/ds1sqe/type-bridge.git
77
- cd type_bridge
84
+ # Install from PyPI
85
+ pip install type-bridge
78
86
 
79
- # Install with uv
80
- uv sync
87
+ # Or with uv
88
+ uv add type-bridge
89
+ ```
81
90
 
82
- # Or with pip
83
- pip install -e .
91
+ **From source:**
84
92
 
85
- # Or add to project with uv
86
- uv add type-bridge
93
+ ```bash
94
+ git clone https://github.com/ds1sqe/type-bridge.git
95
+ cd type_bridge
96
+ uv sync
87
97
  ```
88
98
 
89
99
  ## Quick Start
@@ -292,31 +302,16 @@ The generator supports:
292
302
  - Registry module generation for schema metadata and JSON Schema fragments
293
303
  - Both `#` and `//` comment styles
294
304
 
295
- See [docs/api/generator.md](docs/api/generator.md) for full documentation.
305
+ See the [Code Generator guide](https://ds1sqe.github.io/type-bridge/guide/generator/) for full documentation.
296
306
 
297
307
  ## Documentation
298
308
 
299
- - **[CLAUDE.md](CLAUDE.md)** - Project guidance for development, TypeDB concepts, and quick reference
300
- - **[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)** - Development setup, commands, and code quality standards
301
- - **[docs/TESTING.md](docs/TESTING.md)** - Testing strategy, patterns, and execution
302
- - **[docs/TYPEDB.md](docs/TYPEDB.md)** - TypeDB concepts, driver API, and TypeQL syntax
303
- - **[docs/ABSTRACT_TYPES.md](docs/ABSTRACT_TYPES.md)** - Abstract types and interface hierarchies in TypeDB
304
- - **[docs/INTERNALS.md](docs/INTERNALS.md)** - Internal type system and architecture
305
- - **[docs/SKILL.md](docs/SKILL.md)** - AI assistant skill for using type-bridge (for Claude, GPT, etc.)
306
-
307
- ### API Reference
308
-
309
- - **[docs/api/README.md](docs/api/README.md)** - API overview and quick reference
310
- - **[docs/api/attributes.md](docs/api/attributes.md)** - Attribute types and value types
311
- - **[docs/api/entities.md](docs/api/entities.md)** - Entity definition and ownership
312
- - **[docs/api/relations.md](docs/api/relations.md)** - Relations, roles, and role players
313
- - **[docs/api/abstract_types.md](docs/api/abstract_types.md)** - Abstract types implementation and patterns
314
- - **[docs/api/cardinality.md](docs/api/cardinality.md)** - Card API and Flag system
315
- - **[docs/api/crud.md](docs/api/crud.md)** - CRUD operations and managers
316
- - **[docs/api/queries.md](docs/api/queries.md)** - Query expressions and aggregations
317
- - **[docs/api/schema.md](docs/api/schema.md)** - Schema management and conflict detection
318
- - **[docs/api/generator.md](docs/api/generator.md)** - Code generator (TQL → Python)
319
- - **[docs/api/validation.md](docs/api/validation.md)** - Pydantic integration and type safety
309
+ **[https://ds1sqe.github.io/type-bridge/](https://ds1sqe.github.io/type-bridge/)** Full documentation site with user guide, API reference, and development guides.
310
+
311
+ - [Getting Started](https://ds1sqe.github.io/type-bridge/getting-started/) Installation and quick start
312
+ - [User Guide](https://ds1sqe.github.io/type-bridge/guide/) Attributes, entities, relations, CRUD, queries, and more
313
+ - [API Reference](https://ds1sqe.github.io/type-bridge/reference/) — Auto-generated from source docstrings
314
+ - [Development](https://ds1sqe.github.io/type-bridge/development/) Setup, testing, and internals
320
315
 
321
316
  ## Pydantic Integration
322
317
 
@@ -374,7 +369,7 @@ TypeBridge uses a two-tier testing approach with **100% test pass rate**:
374
369
 
375
370
  ```bash
376
371
  # Unit tests (fast, no external dependencies) - DEFAULT
377
- uv run pytest # Run unit tests (0.3s)
372
+ uv run pytest # Run unit tests
378
373
  uv run pytest tests/unit/attributes/ -v # Test all 9 attribute types
379
374
  uv run pytest tests/unit/core/ -v # Test core functionality
380
375
  uv run pytest tests/unit/flags/ -v # Test flag system
@@ -399,11 +394,31 @@ uv run pytest -m "" -v # Run all tests
399
394
  ./check.sh # Run linting and type checking
400
395
  ```
401
396
 
397
+ ## Rust Core
398
+
399
+ The project includes a Rust core (`type-bridge-core/`) that provides high-performance implementations of the query compiler, validation engine, and value coercer. When the native extension is installed, Python automatically delegates to Rust for:
400
+
401
+ - **Validation** — up to 40x faster schema-aware query validation
402
+ - **Compilation** — up to 2.5x faster AST-to-TypeQL compilation via serde bridge
403
+ - **Value coercion** — Type-safe value coercion and TypeQL literal formatting
404
+
405
+ The Rust core is a Cargo workspace with five crates:
406
+
407
+ | Crate | Description |
408
+ |-------|-------------|
409
+ | `type-bridge-core-lib` | Pure-Rust AST, schema parser, query compiler, and validation engine |
410
+ | `type-bridge-orm` | Async ORM with entity/relation managers, chainable queries, and batch operations |
411
+ | `type-bridge-orm-derive` | Derive macros for `TypeBridgeEntity`, `TypeBridgeRelation`, `TypeBridgeAttribute` |
412
+ | `type-bridge-core` | PyO3 bindings exposing the Rust core to Python |
413
+ | `type-bridge-server` | Transport-agnostic query pipeline with interceptor chain and HTTP API |
414
+
415
+ See [`type-bridge-core/README.md`](type-bridge-core/README.md) for build instructions and architecture details.
416
+
402
417
  ## Requirements
403
418
 
404
419
  - Python 3.13+
405
- - TypeDB 3.7.0-rc0 server (fully compatible)
406
- - typedb-driver>=3.7.0
420
+ - TypeDB 3.x server
421
+ - typedb-driver>=3.8.0
407
422
  - pydantic>=2.12.4
408
423
  - isodate==0.7.2 (for Duration type support)
409
424
  - lark>=1.1.9 (for schema parsing)