tigrbl-canon 0.4.2.dev3__tar.gz → 0.4.3.dev4__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 (69) hide show
  1. tigrbl_canon-0.4.3.dev4/NOTICE +7 -0
  2. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/PKG-INFO +105 -32
  3. tigrbl_canon-0.4.3.dev4/README.md +149 -0
  4. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/pyproject.toml +6 -4
  5. tigrbl_canon-0.4.3.dev4/tigrbl_canon/__init__.py +24 -0
  6. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/__init__.py +4 -0
  7. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/core.py +5 -0
  8. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/jsonhints.py +5 -0
  9. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/planning.py +5 -0
  10. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/types.py +5 -0
  11. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/column/infer/utils.py +5 -0
  12. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/__init__.py +4 -4
  13. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/app_mro_collect.py +5 -0
  14. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/apply.py +5 -0
  15. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/collect.py +6 -1
  16. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/collect_decorated_schemas.py +6 -1
  17. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/column_mro_collect.py +4 -0
  18. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/columns.py +4 -0
  19. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/config_resolver.py +5 -0
  20. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/context.py +5 -0
  21. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/core_resolver.py +7 -2
  22. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/defaults.py +5 -0
  23. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/diagnostics.py +5 -0
  24. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/engine_resolver.py +5 -0
  25. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/__init__.py +5 -0
  26. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/builder.py +5 -0
  27. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/ctx.py +5 -0
  28. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/identifiers.py +5 -0
  29. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/namespaces.py +5 -0
  30. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/handlers/steps.py +6 -1
  31. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/hook_mro_collect.py +8 -3
  32. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/hooks.py +5 -0
  33. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/mapping_resolver.py +5 -0
  34. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/model.py +5 -0
  35. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/model_helpers.py +5 -0
  36. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/model_registry.py +6 -1
  37. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/op_mro_collect.py +7 -2
  38. tigrbl_canon-0.4.3.dev4/tigrbl_canon/mapping/op_resolver.py +7 -0
  39. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/passes.py +6 -1
  40. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/plan.py +5 -0
  41. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/precedence.py +5 -0
  42. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/responses_resolver.py +5 -0
  43. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/__init__.py +4 -0
  44. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/attach.py +5 -0
  45. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/collection.py +5 -0
  46. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/common.py +7 -2
  47. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/helpers.py +5 -0
  48. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/io.py +7 -2
  49. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/io_headers.py +5 -0
  50. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/member.py +5 -0
  51. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/router.py +5 -0
  52. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rest/routing.py +6 -1
  53. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/router/common.py +5 -0
  54. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/router/include.py +5 -0
  55. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/router/resource_proxy.py +5 -0
  56. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/router/rpc.py +5 -0
  57. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/router_mro_collect.py +5 -0
  58. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/rpc.py +5 -0
  59. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/schemas/__init__.py +5 -0
  60. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/schemas/builder.py +5 -0
  61. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/schemas/defaults.py +5 -0
  62. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/schemas/utils.py +5 -0
  63. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/table.py +5 -0
  64. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/table_mro_collect.py +5 -0
  65. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/tigrbl_canon/mapping/traversal.py +5 -0
  66. tigrbl_canon-0.4.2.dev3/README.md +0 -78
  67. tigrbl_canon-0.4.2.dev3/tigrbl_canon/__init__.py +0 -14
  68. tigrbl_canon-0.4.2.dev3/tigrbl_canon/mapping/op_resolver.py +0 -3
  69. {tigrbl_canon-0.4.2.dev3 → tigrbl_canon-0.4.3.dev4}/LICENSE +0 -0
@@ -0,0 +1,7 @@
1
+ Tigrbl
2
+ Copyright 2026 Swarmauri
3
+
4
+ This product includes software developed by Swarmauri.
5
+
6
+ Tigrbl is licensed under the Apache License, Version 2.0.
7
+ See the LICENSE file distributed with this work for the full license text.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-canon
3
- Version: 0.4.2.dev3
4
- Summary: Deprecated compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities.
3
+ Version: 0.4.3.dev4
4
+ Summary: Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities.
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
7
7
  http://www.apache.org/licenses/
@@ -204,6 +204,7 @@ License: Apache License
204
204
  See the License for the specific language governing permissions and
205
205
  limitations under the License.
206
206
  License-File: LICENSE
207
+ License-File: NOTICE
207
208
  Keywords: tigrbl,asgi,api,canonical mapping,compatibility,deprecated,router binding,schema attachment,column inference,json-rpc,rpc,rest,canon,canonicalization,routing,mapping,openapi,openrpc,schema-first,migration
208
209
  Author: Jacob Stewart
209
210
  Author-email: jacob@swarmauri.com
@@ -232,6 +233,7 @@ Classifier: Typing :: Typed
232
233
  Requires-Dist: tigrbl
233
234
  Requires-Dist: tigrbl-atoms
234
235
  Requires-Dist: tigrbl-base
236
+ Requires-Dist: tigrbl-concrete
235
237
  Requires-Dist: tigrbl-core
236
238
  Requires-Dist: tigrbl-ops-oltp
237
239
  Requires-Dist: tigrbl-runtime
@@ -245,18 +247,47 @@ Description-Content-Type: text/markdown
245
247
  <div align="center">
246
248
  <h1>tigrbl-canon</h1>
247
249
  <img src="https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/tigrbl_full_logo.png" alt="Tigrbl logo" width="140"/>
248
- <p><strong>Deprecated compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities.</strong></p>
250
+ <p><strong>Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities.</strong></p>
249
251
  <a href="https://pypi.org/project/tigrbl-canon/"><img src="https://img.shields.io/pypi/v/tigrbl-canon?label=PyPI" alt="PyPI version for tigrbl-canon"/></a>
250
252
  <a href="https://pypi.org/project/tigrbl-canon/"><img src="https://static.pepy.tech/badge/tigrbl-canon" alt="Downloads for tigrbl-canon"/></a>
253
+ <a href="https://discord.gg/K4YTAPapjR"><img src="https://img.shields.io/badge/Discord-Join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord community for tigrbl-canon"/></a>
251
254
  <a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/deprecated/tigrbl_canon/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/deprecated/tigrbl_canon/README.md.svg?label=hits" alt="Repository hits for tigrbl-canon README"/></a>
252
255
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
253
- <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20to%203.15-3776ab" alt="Python requirement for tigrbl-canon"/></a>
256
+ <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-3776ab" alt="Python versions 3.10 | 3.11 | 3.12 | 3.13 | 3.14 for tigrbl-canon"/></a>
254
257
  <a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-deprecated-6b7280" alt="Workspace group for tigrbl-canon"/></a>
255
258
  </div>
256
259
 
257
- ## Deprecation Status
260
+ ## What is tigrbl-canon?
258
261
 
259
- `tigrbl-canon` is deprecated and kept only as a compatibility package while callers migrate to the maintained `tigrbl` facade and package-specific runtime surfaces.
262
+ Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities. New code should not add this package; it exists only to carry older `tigrbl_canon` import paths during migrations.
263
+
264
+ ## Why use tigrbl-canon?
265
+
266
+ Use it only when maintaining older integrations that still import the historical canonical package boundary. Do not use it for new Tigrbl applications or extensions.
267
+
268
+ ## When should I install tigrbl-canon?
269
+
270
+ Install it only for compatibility migrations that still require `tigrbl_canon` imports. Prefer the current split packages for new work.
271
+
272
+ ## Who is tigrbl-canon for?
273
+
274
+ Maintainers carrying legacy Tigrbl integrations forward.
275
+
276
+ ## Where does tigrbl-canon fit?
277
+
278
+ `tigrbl-canon` lives at `pkgs/deprecated/tigrbl_canon` and serves legacy compatibility while migrating to current split packages. It is not part of the active facade dependency path.
279
+
280
+ ## How does tigrbl-canon work?
281
+
282
+ It depends on current split packages and keeps historical import paths available while newer package boundaries own active behavior. It must not depend on the `tigrbl` facade package.
283
+
284
+ ## Certification Status
285
+
286
+ - Package status: deprecated, inactive compatibility package in the `tigrbl/tigrbl` workspace.
287
+ - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
288
+ - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
289
+ - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
290
+ - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
260
291
 
261
292
  ## Install
262
293
 
@@ -268,56 +299,98 @@ uv add tigrbl-canon
268
299
  pip install tigrbl-canon
269
300
  ```
270
301
 
302
+ ## Surface Coverage
303
+
304
+ | Surface | Value |
305
+ |---|---|
306
+ | PyPI package | [`tigrbl-canon`](https://pypi.org/project/tigrbl-canon/) |
307
+ | Repository path | [`pkgs/deprecated/tigrbl_canon`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/deprecated/tigrbl_canon) |
308
+ | Python import root | `tigrbl_canon` |
309
+ | Console scripts | none declared |
310
+ | Entry points | none declared |
311
+ | Optional extras | none declared |
312
+ | Legal files | `LICENSE`, `NOTICE` |
313
+ | Supported Python | `3.10 | 3.11 | 3.12 | 3.13 | 3.14` |
314
+
271
315
  ## What It Owns
272
316
 
273
- `tigrbl-canon` is a deprecated canon boundary inside the split Python workspace. Key implementation roots include `tigrbl_canon` with `tigrbl_canon/mapping/`.
317
+ `tigrbl-canon` owns the `deprecated legacy compatibility package` boundary. It should be installed only when an older integration still needs the historical `tigrbl_canon` import root during migration.
318
+
319
+ Implementation orientation:
320
+ - `tigrbl_canon`: column/, mapping/
321
+
322
+ ## Public API and Import Surface
274
323
 
275
- ## Use It When
324
+ - Import roots: `tigrbl_canon`.
325
+ - Public symbols: `_DEPRECATION_MESSAGE`.
326
+ - Workspace dependencies: [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/), [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/).
327
+ - External runtime dependencies: none declared.
328
+
329
+ ## Usage Examples
276
330
 
277
- Avoid new direct use of `tigrbl-canon`. Existing consumers should treat this package as a migration bridge and prefer the top-level `tigrbl` facade or maintained package-specific surfaces.
331
+ ### Verify the installed package
278
332
 
279
- ## Public Surface
333
+ ```bash
334
+ python -m pip show tigrbl-canon
335
+ python - <<'PY'
336
+ from importlib.metadata import version
337
+ print(version("tigrbl-canon"))
338
+ PY
339
+ ```
280
340
 
281
- - `tigrbl_canon` exposes `_DEPRECATION_MESSAGE`.
341
+ ### Import the compatibility boundary
282
342
 
283
- ## Internal Layout
343
+ ```python
344
+ import tigrbl_canon
284
345
 
285
- - Workspace path: `pkgs/deprecated/tigrbl_canon`.
286
- - Package class: `deprecated compatibility package`.
287
- - Python requirement: `>=3.10,<3.15`.
288
- - `tigrbl_canon` modules: `tigrbl_canon/mapping/`.
346
+ print(tigrbl_canon.__name__)
347
+ ```
289
348
 
290
- ## Dependency Surface
349
+ ### Prefer current split packages for new code
291
350
 
292
- - Workspace package dependencies: [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/), [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/), [`tigrbl`](https://pypi.org/project/tigrbl/).
293
- - External runtime dependencies: none declared.
294
- - Optional extras: none declared.
351
+ ```bash
352
+ uv add tigrbl-core tigrbl-base tigrbl-runtime
353
+ ```
354
+
355
+ ### Audit remaining legacy imports
356
+
357
+ ```bash
358
+ rg "tigrbl_canon|tigrbl-canon" .
359
+ ```
360
+
361
+ ## How To Choose This Package
362
+
363
+ Choose `tigrbl-canon` only when an existing integration still imports `tigrbl_canon` and cannot migrate immediately. Choose lower-level packages such as [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), or [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/) when building framework extensions or testing a specific internal boundary.
295
364
 
296
365
  ## Related Packages
297
366
 
298
- - [`tigrbl`](https://pypi.org/project/tigrbl/)
299
367
  - [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/)
300
368
  - [`tigrbl-base`](https://pypi.org/project/tigrbl-base/)
301
369
  - [`tigrbl-core`](https://pypi.org/project/tigrbl-core/)
302
370
  - [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/)
303
371
  - [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/)
304
372
 
305
- ## Canonical Repository Docs
373
+ ## Documentation Links
374
+
375
+ - [Workspace docs](https://github.com/tigrbl/tigrbl/blob/master/docs/README.md)
376
+ - [Package catalog](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_CATALOG.md)
377
+ - [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
378
+ - [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
379
+ - [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
380
+ - [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
381
+ - [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
382
+
383
+ ## Support
306
384
 
307
- - `docs/README.md`
308
- - `docs/conformance/CURRENT_TARGET.md`
309
- - `docs/conformance/CURRENT_STATE.md`
310
- - `docs/conformance/NEXT_STEPS.md`
311
- - `docs/governance/DOC_POINTERS.md`
312
- - `docs/developer/PACKAGE_CATALOG.md`
313
- - `docs/developer/PACKAGE_LAYOUT.md`
385
+ - Community: [Discord](https://discord.gg/K4YTAPapjR).
386
+ - Issues: [GitHub Issues](https://github.com/tigrbl/tigrbl/issues).
387
+ - Repository: [pkgs/deprecated/tigrbl_canon](https://github.com/tigrbl/tigrbl/tree/master/pkgs/deprecated/tigrbl_canon).
314
388
 
315
389
  ## Package-local Boundary
316
390
 
317
- This file is a package-local distribution entry point.
318
- Use this page for package installation and boundary orientation. Repository governance, conformance state, target status, and release evidence remain governed from `docs/` and `.ssot/`.
391
+ This README is the package-local distribution entry point for `tigrbl-canon`. It answers install, usage, API, ownership, and certification-orientation questions for this package. Broader architectural decisions, release status, and cross-package proof chains remain in the repository-level docs and SSOT registry.
319
392
 
320
393
  ## License
321
394
 
322
- Licensed under the Apache License, Version 2.0. See `LICENSE` and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
395
+ Licensed under the Apache License, Version 2.0. See `LICENSE`, `NOTICE`, and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
323
396
 
@@ -0,0 +1,149 @@
1
+ <div align="center">
2
+ <h1>tigrbl-canon</h1>
3
+ <img src="https://raw.githubusercontent.com/swarmauri/swarmauri-sdk/master/assets/tigrbl_full_logo.png" alt="Tigrbl logo" width="140"/>
4
+ <p><strong>Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities.</strong></p>
5
+ <a href="https://pypi.org/project/tigrbl-canon/"><img src="https://img.shields.io/pypi/v/tigrbl-canon?label=PyPI" alt="PyPI version for tigrbl-canon"/></a>
6
+ <a href="https://pypi.org/project/tigrbl-canon/"><img src="https://static.pepy.tech/badge/tigrbl-canon" alt="Downloads for tigrbl-canon"/></a>
7
+ <a href="https://discord.gg/K4YTAPapjR"><img src="https://img.shields.io/badge/Discord-Join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord community for tigrbl-canon"/></a>
8
+ <a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/deprecated/tigrbl_canon/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/deprecated/tigrbl_canon/README.md.svg?label=hits" alt="Repository hits for tigrbl-canon README"/></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
10
+ <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-3776ab" alt="Python versions 3.10 | 3.11 | 3.12 | 3.13 | 3.14 for tigrbl-canon"/></a>
11
+ <a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-deprecated-6b7280" alt="Workspace group for tigrbl-canon"/></a>
12
+ </div>
13
+
14
+ ## What is tigrbl-canon?
15
+
16
+ Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities. New code should not add this package; it exists only to carry older `tigrbl_canon` import paths during migrations.
17
+
18
+ ## Why use tigrbl-canon?
19
+
20
+ Use it only when maintaining older integrations that still import the historical canonical package boundary. Do not use it for new Tigrbl applications or extensions.
21
+
22
+ ## When should I install tigrbl-canon?
23
+
24
+ Install it only for compatibility migrations that still require `tigrbl_canon` imports. Prefer the current split packages for new work.
25
+
26
+ ## Who is tigrbl-canon for?
27
+
28
+ Maintainers carrying legacy Tigrbl integrations forward.
29
+
30
+ ## Where does tigrbl-canon fit?
31
+
32
+ `tigrbl-canon` lives at `pkgs/deprecated/tigrbl_canon` and serves legacy compatibility while migrating to current split packages. It is not part of the active facade dependency path.
33
+
34
+ ## How does tigrbl-canon work?
35
+
36
+ It depends on current split packages and keeps historical import paths available while newer package boundaries own active behavior. It must not depend on the `tigrbl` facade package.
37
+
38
+ ## Certification Status
39
+
40
+ - Package status: deprecated, inactive compatibility package in the `tigrbl/tigrbl` workspace.
41
+ - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
42
+ - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
43
+ - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
44
+ - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
45
+
46
+ ## Install
47
+
48
+ ```bash
49
+ uv add tigrbl-canon
50
+ ```
51
+
52
+ ```bash
53
+ pip install tigrbl-canon
54
+ ```
55
+
56
+ ## Surface Coverage
57
+
58
+ | Surface | Value |
59
+ |---|---|
60
+ | PyPI package | [`tigrbl-canon`](https://pypi.org/project/tigrbl-canon/) |
61
+ | Repository path | [`pkgs/deprecated/tigrbl_canon`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/deprecated/tigrbl_canon) |
62
+ | Python import root | `tigrbl_canon` |
63
+ | Console scripts | none declared |
64
+ | Entry points | none declared |
65
+ | Optional extras | none declared |
66
+ | Legal files | `LICENSE`, `NOTICE` |
67
+ | Supported Python | `3.10 | 3.11 | 3.12 | 3.13 | 3.14` |
68
+
69
+ ## What It Owns
70
+
71
+ `tigrbl-canon` owns the `deprecated legacy compatibility package` boundary. It should be installed only when an older integration still needs the historical `tigrbl_canon` import root during migration.
72
+
73
+ Implementation orientation:
74
+ - `tigrbl_canon`: column/, mapping/
75
+
76
+ ## Public API and Import Surface
77
+
78
+ - Import roots: `tigrbl_canon`.
79
+ - Public symbols: `_DEPRECATION_MESSAGE`.
80
+ - Workspace dependencies: [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/), [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/).
81
+ - External runtime dependencies: none declared.
82
+
83
+ ## Usage Examples
84
+
85
+ ### Verify the installed package
86
+
87
+ ```bash
88
+ python -m pip show tigrbl-canon
89
+ python - <<'PY'
90
+ from importlib.metadata import version
91
+ print(version("tigrbl-canon"))
92
+ PY
93
+ ```
94
+
95
+ ### Import the compatibility boundary
96
+
97
+ ```python
98
+ import tigrbl_canon
99
+
100
+ print(tigrbl_canon.__name__)
101
+ ```
102
+
103
+ ### Prefer current split packages for new code
104
+
105
+ ```bash
106
+ uv add tigrbl-core tigrbl-base tigrbl-runtime
107
+ ```
108
+
109
+ ### Audit remaining legacy imports
110
+
111
+ ```bash
112
+ rg "tigrbl_canon|tigrbl-canon" .
113
+ ```
114
+
115
+ ## How To Choose This Package
116
+
117
+ Choose `tigrbl-canon` only when an existing integration still imports `tigrbl_canon` and cannot migrate immediately. Choose lower-level packages such as [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), or [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/) when building framework extensions or testing a specific internal boundary.
118
+
119
+ ## Related Packages
120
+
121
+ - [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/)
122
+ - [`tigrbl-base`](https://pypi.org/project/tigrbl-base/)
123
+ - [`tigrbl-core`](https://pypi.org/project/tigrbl-core/)
124
+ - [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/)
125
+ - [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/)
126
+
127
+ ## Documentation Links
128
+
129
+ - [Workspace docs](https://github.com/tigrbl/tigrbl/blob/master/docs/README.md)
130
+ - [Package catalog](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_CATALOG.md)
131
+ - [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
132
+ - [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
133
+ - [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
134
+ - [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
135
+ - [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
136
+
137
+ ## Support
138
+
139
+ - Community: [Discord](https://discord.gg/K4YTAPapjR).
140
+ - Issues: [GitHub Issues](https://github.com/tigrbl/tigrbl/issues).
141
+ - Repository: [pkgs/deprecated/tigrbl_canon](https://github.com/tigrbl/tigrbl/tree/master/pkgs/deprecated/tigrbl_canon).
142
+
143
+ ## Package-local Boundary
144
+
145
+ This README is the package-local distribution entry point for `tigrbl-canon`. It answers install, usage, API, ownership, and certification-orientation questions for this package. Broader architectural decisions, release status, and cross-package proof chains remain in the repository-level docs and SSOT registry.
146
+
147
+ ## License
148
+
149
+ Licensed under the Apache License, Version 2.0. See `LICENSE`, `NOTICE`, and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "tigrbl-canon"
3
- version = "0.4.2.dev3"
4
- description = "Deprecated compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities."
3
+ version = "0.4.3.dev4"
4
+ description = "Deprecated legacy compatibility package for Tigrbl canonical mapping, router binding, schema attachment, RPC and REST exposure, and column inference utilities."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
7
7
  keywords = [
@@ -53,12 +53,13 @@ requires-python = ">=3.10,<3.15"
53
53
  authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
54
54
 
55
55
  dependencies = [
56
+ "tigrbl",
57
+ "tigrbl-concrete",
56
58
  "tigrbl-ops-oltp",
57
59
  "tigrbl-base",
58
60
  "tigrbl-core",
59
61
  "tigrbl-runtime",
60
62
  "tigrbl-atoms",
61
- "tigrbl",
62
63
  ]
63
64
 
64
65
 
@@ -70,12 +71,13 @@ Repository = "https://github.com/tigrbl/tigrbl/tree/master/pkgs/deprecated/tigrb
70
71
  Issues = "https://github.com/tigrbl/tigrbl/issues"
71
72
 
72
73
  [tool.uv.sources]
74
+ "tigrbl" = { workspace = true }
75
+ "tigrbl-concrete" = { workspace = true }
73
76
  "tigrbl-ops-oltp" = { workspace = true }
74
77
  "tigrbl-base" = { workspace = true }
75
78
  "tigrbl-core" = { workspace = true }
76
79
  "tigrbl-runtime" = { workspace = true }
77
80
  "tigrbl-atoms" = { workspace = true }
78
- "tigrbl" = { workspace = true }
79
81
 
80
82
  [build-system]
81
83
  requires = ["poetry-core>=1.0.0"]
@@ -0,0 +1,24 @@
1
+ """Tigrbl canon compatibility package."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import warnings
6
+
7
+ _DEPRECATION_MESSAGE = (
8
+ "tigrbl_canon is deprecated, not supported anymore, and likely to break. "
9
+ "Migrate away from tigrbl_canon imports as soon as possible."
10
+ )
11
+
12
+
13
+ def _warn_deprecated_import(module_name: str = __name__) -> None:
14
+ message = (
15
+ _DEPRECATION_MESSAGE
16
+ if module_name == __name__
17
+ else f"{module_name} imports from deprecated tigrbl_canon. {_DEPRECATION_MESSAGE}"
18
+ )
19
+ warnings.warn(message, DeprecationWarning, stacklevel=2)
20
+
21
+
22
+ _warn_deprecated_import()
23
+
24
+ __all__ = ["_DEPRECATION_MESSAGE", "_warn_deprecated_import"]
@@ -1,3 +1,7 @@
1
+ from tigrbl_canon import _warn_deprecated_import
2
+
3
+ _warn_deprecated_import(__name__)
4
+
1
5
  from .core import infer
2
6
  from .types import (
3
7
  Email,
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from typing import Any, Dict, Optional, get_origin
4
9
 
5
10
  from .types import DataKind, PyTypeInfo, Inferred
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from typing import Optional
4
9
 
5
10
  from .types import DataKind, PyTypeInfo, JsonHint, Email, Phone
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from typing import Any, Dict, Optional
4
9
 
5
10
  from .types import DataKind, PyTypeInfo, SATypePlan, InferenceError
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from dataclasses import dataclass
4
9
  from enum import Enum
5
10
  from typing import Any, Dict, List, Optional, Tuple, Type
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from enum import Enum
4
9
  from typing import (
5
10
  Any,
@@ -1,11 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
- from importlib import import_module
4
- import warnings
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
5
6
 
6
- from tigrbl_canon import _DEPRECATION_MESSAGE
7
7
 
8
- warnings.warn(_DEPRECATION_MESSAGE, DeprecationWarning, stacklevel=2)
8
+ from importlib import import_module
9
9
 
10
10
  __all__ = [
11
11
  "bind",
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from functools import lru_cache
4
9
 
5
10
  from tigrbl_core._spec.app_spec import AppSpec
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from dataclasses import replace
4
9
  from types import SimpleNamespace
5
10
  from typing import Any
@@ -1,10 +1,15 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from dataclasses import replace
4
9
  from typing import Any, Dict, Optional, Set
5
10
 
6
11
  from tigrbl_core._spec import OpSpec
7
- from tigrbl.op import resolve as resolve_ops
12
+ from tigrbl_core._spec.op_spec import resolve as resolve_ops
8
13
  from .op_mro_collect import mro_alias_map_for, mro_collect_decorated_ops
9
14
  from .context import MappingContext, MappingKey
10
15
 
@@ -1,6 +1,11 @@
1
1
  # tigrbl/v3/mapping/collect_decorated_schemas.py
2
2
  from __future__ import annotations
3
3
 
4
+ from tigrbl_canon import _warn_deprecated_import
5
+
6
+ _warn_deprecated_import(__name__)
7
+
8
+
4
9
  import inspect
5
10
  import logging
6
11
  from functools import lru_cache
@@ -8,7 +13,7 @@ from typing import Dict
8
13
 
9
14
  from tigrbl_core.config.constants import TIGRBL_SCHEMA_DECLS_ATTR
10
15
 
11
- from tigrbl.decorators.schema import _SchemaDecl
16
+ from tigrbl_concrete._decorators.schema import _SchemaDecl
12
17
  from pydantic import BaseModel, create_model
13
18
 
14
19
  logger = logging.getLogger("uvicorn")
@@ -1,3 +1,7 @@
1
+ from tigrbl_canon import _warn_deprecated_import
2
+
3
+ _warn_deprecated_import(__name__)
4
+
1
5
  """Compatibility shim for relocated column MRO collector."""
2
6
 
3
7
  from tigrbl_core._spec.column_spec import * # noqa: F403
@@ -1,3 +1,7 @@
1
+ from tigrbl_canon import _warn_deprecated_import
2
+
3
+ _warn_deprecated_import(__name__)
4
+
1
5
  import logging
2
6
 
3
7
  # tigrbl/v3/mapping/columns.py
@@ -1,6 +1,11 @@
1
1
  # tigrbl/v3/config/resolver.py
2
2
  from __future__ import annotations
3
3
 
4
+ from tigrbl_canon import _warn_deprecated_import
5
+
6
+ _warn_deprecated_import(__name__)
7
+
8
+
4
9
  from dataclasses import asdict, is_dataclass
5
10
  from types import MappingProxyType
6
11
  from typing import Any, Dict, Iterable, Mapping, Optional
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from dataclasses import dataclass, field, replace
4
9
  from typing import (
5
10
  Any,
@@ -2,11 +2,16 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from tigrbl_canon import _warn_deprecated_import
6
+
7
+ _warn_deprecated_import(__name__)
8
+
9
+
5
10
  from typing import Annotated, Any, Iterable, get_args, get_origin
6
11
 
7
12
  from tigrbl_ops_oltp.crud.params import Param
8
- from tigrbl_runtime.runtime.status.exceptions import HTTPException
9
- from tigrbl_runtime.runtime.status.mappings import status
13
+ from tigrbl_typing.status.exceptions import HTTPException
14
+ from tigrbl_typing.status.mappings import status
10
15
  from tigrbl_typing.protocols import RequestLike
11
16
 
12
17
 
@@ -1,5 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from tigrbl_canon import _warn_deprecated_import
4
+
5
+ _warn_deprecated_import(__name__)
6
+
7
+
3
8
  from typing import Any
4
9
 
5
10
  DEFAULTS: dict[str, Any] = {