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