tigrbl-typing 0.4.2.dev3__tar.gz → 0.4.3__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 (26) hide show
  1. tigrbl_typing-0.4.3/NOTICE +7 -0
  2. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/PKG-INFO +117 -27
  3. tigrbl_typing-0.4.3/README.md +158 -0
  4. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/pyproject.toml +1 -1
  5. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/channel.py +1 -1
  6. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/phases.py +8 -1
  7. tigrbl_typing-0.4.2.dev3/README.md +0 -69
  8. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/LICENSE +0 -0
  9. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/__init__.py +0 -0
  10. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/gw/__init__.py +0 -0
  11. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/gw/raw.py +0 -0
  12. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/protocols.py +0 -0
  13. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/request.py +0 -0
  14. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/status/__init__.py +0 -0
  15. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/status/converters.py +0 -0
  16. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/status/exceptions.py +0 -0
  17. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/status/mappings.py +0 -0
  18. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/status/utils.py +0 -0
  19. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/types/__init__.py +0 -0
  20. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/types/authn_abc.py +0 -0
  21. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/types/channel.py +0 -0
  22. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/types/op.py +0 -0
  23. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/types/uuid.py +0 -0
  24. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/vendor/__init__.py +0 -0
  25. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/vendor/pydantic.py +0 -0
  26. {tigrbl_typing-0.4.2.dev3 → tigrbl_typing-0.4.3}/tigrbl_typing/vendor/sqlalchemy.py +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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-typing
3
- Version: 0.4.2.dev3
3
+ Version: 0.4.3
4
4
  Summary: Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -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,json-rpc,rest,sqlalchemy,pydantic,typing,protocols,type-hints,openapi,openrpc,schema-first
208
209
  Author: Jacob Stewart
209
210
  Author-email: jacob@swarmauri.com
@@ -238,12 +239,45 @@ Description-Content-Type: text/markdown
238
239
  <p><strong>Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.</strong></p>
239
240
  <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://img.shields.io/pypi/v/tigrbl-typing?label=PyPI" alt="PyPI version for tigrbl-typing"/></a>
240
241
  <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://static.pepy.tech/badge/tigrbl-typing" alt="Downloads for tigrbl-typing"/></a>
242
+ <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-typing"/></a>
241
243
  <a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md.svg?label=hits" alt="Repository hits for tigrbl-typing README"/></a>
242
244
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
243
- <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20to%203.15-3776ab" alt="Python requirement for tigrbl-typing"/></a>
245
+ <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-typing"/></a>
244
246
  <a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl-typing"/></a>
245
247
  </div>
246
248
 
249
+ ## What is tigrbl-typing?
250
+
251
+ Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.
252
+
253
+ ## Why use tigrbl-typing?
254
+
255
+ Use it when you need this foundational Tigrbl layer directly as a small, focused dependency.
256
+
257
+ ## When should I install tigrbl-typing?
258
+
259
+ Install it for extension packages, package-local tests, or internals that need this boundary without the whole facade.
260
+
261
+ ## Who is tigrbl-typing for?
262
+
263
+ Framework maintainers, extension authors, and advanced users composing Tigrbl from split packages.
264
+
265
+ ## Where does tigrbl-typing fit?
266
+
267
+ `tigrbl-typing` lives at `pkgs/core/tigrbl_typing` and serves a focused layer in the split Tigrbl framework.
268
+
269
+ ## How does tigrbl-typing work?
270
+
271
+ It owns a narrow layer in the split workspace and is consumed by higher-level packages through explicit dependencies.
272
+
273
+ ## Certification Status
274
+
275
+ - Package status: governed package in the `tigrbl/tigrbl` workspace.
276
+ - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
277
+ - 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.
278
+ - 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`.
279
+ - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
280
+
247
281
  ## Install
248
282
 
249
283
  ```bash
@@ -254,51 +288,107 @@ uv add tigrbl-typing
254
288
  pip install tigrbl-typing
255
289
  ```
256
290
 
291
+ ## Surface Coverage
292
+
293
+ | Surface | Value |
294
+ |---|---|
295
+ | PyPI package | [`tigrbl-typing`](https://pypi.org/project/tigrbl-typing/) |
296
+ | Repository path | [`pkgs/core/tigrbl_typing`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_typing) |
297
+ | Python import root | `tigrbl_typing` |
298
+ | Console scripts | none declared |
299
+ | Entry points | none declared |
300
+ | Optional extras | none declared |
301
+ | Legal files | `LICENSE`, `NOTICE` |
302
+ | Supported Python | `3.10 | 3.11 | 3.12 | 3.13 | 3.14` |
303
+
257
304
  ## What It Owns
258
305
 
259
- `tigrbl-typing` owns the typing boundary inside the split Python workspace. Key implementation roots include `tigrbl_typing` with `channel, gw/, phases, protocols, request, status/`.
306
+ `tigrbl-typing` owns the `foundational framework package` boundary. It should be installed when you need this package's focused responsibility without assuming every other Tigrbl workspace package is present.
307
+
308
+ Implementation orientation:
309
+ - `tigrbl_typing`: channel, gw/, phases, protocols, request, status/, types/, vendor/
260
310
 
261
- ## Use It When
311
+ ## Public API and Import Surface
262
312
 
263
- Use `tigrbl-typing` when you want this subsystem directly as a package boundary instead of consuming it only through the top-level `tigrbl` facade.
313
+ - Import roots: `tigrbl_typing`.
314
+ - Public symbols: public surface is module-oriented; import the package boundary and inspect submodules as needed.
315
+ - Workspace dependencies: none declared.
316
+ - External runtime dependencies: `pydantic>=2.10,<3`.
264
317
 
265
- ## Public Surface
318
+ ## Usage Examples
266
319
 
267
- - `tigrbl_typing` exposes `import_module, Any`.
320
+ ### Verify the installed package
268
321
 
269
- ## Internal Layout
322
+ ```bash
323
+ python -m pip show tigrbl-typing
324
+ python - <<'PY'
325
+ from importlib.metadata import version
326
+ print(version("tigrbl-typing"))
327
+ PY
328
+ ```
270
329
 
271
- - Workspace path: `pkgs/core/tigrbl_typing`.
272
- - Package class: `core framework package`.
273
- - Python requirement: `>=3.10,<3.15`.
274
- - `tigrbl_typing` modules: `channel, gw/, phases, protocols, request, status/, types/, vendor/`.
330
+ ### Import the package boundary
275
331
 
276
- ## Dependency Surface
332
+ ```python
333
+ import importlib
277
334
 
278
- - Workspace package dependencies: none declared.
279
- - External runtime dependencies: `pydantic>=2.10,<3`.
280
- - Optional extras: none declared.
335
+ module = importlib.import_module("tigrbl_typing")
336
+ print(module.__name__)
337
+ ```
338
+
339
+ ### Inspect available modules
340
+
341
+ ```python
342
+ import importlib
343
+ import pkgutil
344
+
345
+ module = importlib.import_module("tigrbl_typing")
346
+ for info in pkgutil.iter_modules(getattr(module, "__path__", [])):
347
+ print(info.name)
348
+ ```
349
+
350
+ ### Use with the facade when building applications
351
+
352
+ ```bash
353
+ uv add tigrbl tigrbl-typing
354
+ python - <<'PY'
355
+ import tigrbl
356
+ print(tigrbl.__name__)
357
+ PY
358
+ ```
359
+
360
+ ## How To Choose This Package
361
+
362
+ Choose `tigrbl-typing` when the quick-answer table matches your use case. Choose [`tigrbl`](https://pypi.org/project/tigrbl/) instead when you want the full public facade. Choose a lower-level package 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 you are building framework extensions or testing a specific internal boundary.
281
363
 
282
364
  ## Related Packages
283
365
 
284
366
  - [`tigrbl`](https://pypi.org/project/tigrbl/)
367
+ - [`tigrbl-core`](https://pypi.org/project/tigrbl-core/)
368
+ - [`tigrbl-base`](https://pypi.org/project/tigrbl-base/)
369
+ - [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/)
370
+
371
+ ## Documentation Links
372
+
373
+ - [Workspace docs](https://github.com/tigrbl/tigrbl/blob/master/docs/README.md)
374
+ - [Package catalog](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_CATALOG.md)
375
+ - [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
376
+ - [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
377
+ - [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
378
+ - [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
379
+ - [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
285
380
 
286
- ## Canonical Repository Docs
381
+ ## Support
287
382
 
288
- - `docs/README.md`
289
- - `docs/conformance/CURRENT_TARGET.md`
290
- - `docs/conformance/CURRENT_STATE.md`
291
- - `docs/conformance/NEXT_STEPS.md`
292
- - `docs/governance/DOC_POINTERS.md`
293
- - `docs/developer/PACKAGE_CATALOG.md`
294
- - `docs/developer/PACKAGE_LAYOUT.md`
383
+ - Community: [Discord](https://discord.gg/K4YTAPapjR).
384
+ - Issues: [GitHub Issues](https://github.com/tigrbl/tigrbl/issues).
385
+ - Repository: [pkgs/core/tigrbl_typing](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_typing).
295
386
 
296
387
  ## Package-local Boundary
297
388
 
298
- This file is a package-local distribution entry point.
299
- Use this page for package installation and boundary orientation. Repository governance, conformance state, target status, and release evidence remain governed from `docs/` and `.ssot/`.
389
+ This README is the package-local distribution entry point for `tigrbl-typing`. 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.
300
390
 
301
391
  ## License
302
392
 
303
- 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).
393
+ 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).
304
394
 
@@ -0,0 +1,158 @@
1
+ <div align="center">
2
+ <h1>tigrbl-typing</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>Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.</strong></p>
5
+ <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://img.shields.io/pypi/v/tigrbl-typing?label=PyPI" alt="PyPI version for tigrbl-typing"/></a>
6
+ <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://static.pepy.tech/badge/tigrbl-typing" alt="Downloads for tigrbl-typing"/></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-typing"/></a>
8
+ <a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md.svg?label=hits" alt="Repository hits for tigrbl-typing 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-typing"/></a>
11
+ <a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl-typing"/></a>
12
+ </div>
13
+
14
+ ## What is tigrbl-typing?
15
+
16
+ Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.
17
+
18
+ ## Why use tigrbl-typing?
19
+
20
+ Use it when you need this foundational Tigrbl layer directly as a small, focused dependency.
21
+
22
+ ## When should I install tigrbl-typing?
23
+
24
+ Install it for extension packages, package-local tests, or internals that need this boundary without the whole facade.
25
+
26
+ ## Who is tigrbl-typing for?
27
+
28
+ Framework maintainers, extension authors, and advanced users composing Tigrbl from split packages.
29
+
30
+ ## Where does tigrbl-typing fit?
31
+
32
+ `tigrbl-typing` lives at `pkgs/core/tigrbl_typing` and serves a focused layer in the split Tigrbl framework.
33
+
34
+ ## How does tigrbl-typing work?
35
+
36
+ It owns a narrow layer in the split workspace and is consumed by higher-level packages through explicit dependencies.
37
+
38
+ ## Certification Status
39
+
40
+ - Package status: governed 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-typing
50
+ ```
51
+
52
+ ```bash
53
+ pip install tigrbl-typing
54
+ ```
55
+
56
+ ## Surface Coverage
57
+
58
+ | Surface | Value |
59
+ |---|---|
60
+ | PyPI package | [`tigrbl-typing`](https://pypi.org/project/tigrbl-typing/) |
61
+ | Repository path | [`pkgs/core/tigrbl_typing`](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_typing) |
62
+ | Python import root | `tigrbl_typing` |
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-typing` owns the `foundational framework package` boundary. It should be installed when you need this package's focused responsibility without assuming every other Tigrbl workspace package is present.
72
+
73
+ Implementation orientation:
74
+ - `tigrbl_typing`: channel, gw/, phases, protocols, request, status/, types/, vendor/
75
+
76
+ ## Public API and Import Surface
77
+
78
+ - Import roots: `tigrbl_typing`.
79
+ - Public symbols: public surface is module-oriented; import the package boundary and inspect submodules as needed.
80
+ - Workspace dependencies: none declared.
81
+ - External runtime dependencies: `pydantic>=2.10,<3`.
82
+
83
+ ## Usage Examples
84
+
85
+ ### Verify the installed package
86
+
87
+ ```bash
88
+ python -m pip show tigrbl-typing
89
+ python - <<'PY'
90
+ from importlib.metadata import version
91
+ print(version("tigrbl-typing"))
92
+ PY
93
+ ```
94
+
95
+ ### Import the package boundary
96
+
97
+ ```python
98
+ import importlib
99
+
100
+ module = importlib.import_module("tigrbl_typing")
101
+ print(module.__name__)
102
+ ```
103
+
104
+ ### Inspect available modules
105
+
106
+ ```python
107
+ import importlib
108
+ import pkgutil
109
+
110
+ module = importlib.import_module("tigrbl_typing")
111
+ for info in pkgutil.iter_modules(getattr(module, "__path__", [])):
112
+ print(info.name)
113
+ ```
114
+
115
+ ### Use with the facade when building applications
116
+
117
+ ```bash
118
+ uv add tigrbl tigrbl-typing
119
+ python - <<'PY'
120
+ import tigrbl
121
+ print(tigrbl.__name__)
122
+ PY
123
+ ```
124
+
125
+ ## How To Choose This Package
126
+
127
+ Choose `tigrbl-typing` when the quick-answer table matches your use case. Choose [`tigrbl`](https://pypi.org/project/tigrbl/) instead when you want the full public facade. Choose a lower-level package 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 you are building framework extensions or testing a specific internal boundary.
128
+
129
+ ## Related Packages
130
+
131
+ - [`tigrbl`](https://pypi.org/project/tigrbl/)
132
+ - [`tigrbl-core`](https://pypi.org/project/tigrbl-core/)
133
+ - [`tigrbl-base`](https://pypi.org/project/tigrbl-base/)
134
+ - [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/)
135
+
136
+ ## Documentation Links
137
+
138
+ - [Workspace docs](https://github.com/tigrbl/tigrbl/blob/master/docs/README.md)
139
+ - [Package catalog](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_CATALOG.md)
140
+ - [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
141
+ - [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
142
+ - [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
143
+ - [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
144
+ - [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
145
+
146
+ ## Support
147
+
148
+ - Community: [Discord](https://discord.gg/K4YTAPapjR).
149
+ - Issues: [GitHub Issues](https://github.com/tigrbl/tigrbl/issues).
150
+ - Repository: [pkgs/core/tigrbl_typing](https://github.com/tigrbl/tigrbl/tree/master/pkgs/core/tigrbl_typing).
151
+
152
+ ## Package-local Boundary
153
+
154
+ This README is the package-local distribution entry point for `tigrbl-typing`. 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.
155
+
156
+ ## License
157
+
158
+ 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,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-typing"
3
- version = "0.4.2.dev3"
3
+ version = "0.4.3"
4
4
  description = "Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -16,7 +16,7 @@ OpChannelSubevent = Literal[
16
16
 
17
17
  @dataclass(slots=True)
18
18
  class OpChannel:
19
- """Runtime transport descriptor shared across Python and Rust surfaces."""
19
+ """Runtime transport descriptor for Python execution surfaces."""
20
20
 
21
21
  kind: OpChannelKind
22
22
  family: OpChannelFamily
@@ -11,6 +11,12 @@ PHASE_ALIASES: dict[str, str] = {
11
11
 
12
12
 
13
13
  def normalize_phase(name: str | None) -> str | None:
14
+ if name is None:
15
+ return None
16
+ return str(name)
17
+
18
+
19
+ def canonicalize_phase_input(name: str | None) -> str | None:
14
20
  if name is None:
15
21
  return None
16
22
  return PHASE_ALIASES.get(str(name), str(name))
@@ -93,7 +99,7 @@ class PHASE(str, Enum):
93
99
 
94
100
  @classmethod
95
101
  def _missing_(cls, value: object):
96
- normalized = normalize_phase(str(value)) if value is not None else None
102
+ normalized = canonicalize_phase_input(str(value)) if value is not None else None
97
103
  if normalized != value:
98
104
  return cls(normalized)
99
105
  return None
@@ -157,6 +163,7 @@ __all__ = [
157
163
  "Phase",
158
164
  "HookPhase",
159
165
  "PHASE_ALIASES",
166
+ "canonicalize_phase_input",
160
167
  "compile_protocol_phase_projection",
161
168
  "normalize_phase",
162
169
  ]
@@ -1,69 +0,0 @@
1
- <div align="center">
2
- <h1>tigrbl-typing</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>Typing protocols, aliases, generics, and shared type helpers for Tigrbl framework packages and extensions.</strong></p>
5
- <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://img.shields.io/pypi/v/tigrbl-typing?label=PyPI" alt="PyPI version for tigrbl-typing"/></a>
6
- <a href="https://pypi.org/project/tigrbl-typing/"><img src="https://static.pepy.tech/badge/tigrbl-typing" alt="Downloads for tigrbl-typing"/></a>
7
- <a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_typing/README.md.svg?label=hits" alt="Repository hits for tigrbl-typing README"/></a>
8
- <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
9
- <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%20to%203.15-3776ab" alt="Python requirement for tigrbl-typing"/></a>
10
- <a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl-typing"/></a>
11
- </div>
12
-
13
- ## Install
14
-
15
- ```bash
16
- uv add tigrbl-typing
17
- ```
18
-
19
- ```bash
20
- pip install tigrbl-typing
21
- ```
22
-
23
- ## What It Owns
24
-
25
- `tigrbl-typing` owns the typing boundary inside the split Python workspace. Key implementation roots include `tigrbl_typing` with `channel, gw/, phases, protocols, request, status/`.
26
-
27
- ## Use It When
28
-
29
- Use `tigrbl-typing` when you want this subsystem directly as a package boundary instead of consuming it only through the top-level `tigrbl` facade.
30
-
31
- ## Public Surface
32
-
33
- - `tigrbl_typing` exposes `import_module, Any`.
34
-
35
- ## Internal Layout
36
-
37
- - Workspace path: `pkgs/core/tigrbl_typing`.
38
- - Package class: `core framework package`.
39
- - Python requirement: `>=3.10,<3.15`.
40
- - `tigrbl_typing` modules: `channel, gw/, phases, protocols, request, status/, types/, vendor/`.
41
-
42
- ## Dependency Surface
43
-
44
- - Workspace package dependencies: none declared.
45
- - External runtime dependencies: `pydantic>=2.10,<3`.
46
- - Optional extras: none declared.
47
-
48
- ## Related Packages
49
-
50
- - [`tigrbl`](https://pypi.org/project/tigrbl/)
51
-
52
- ## Canonical Repository Docs
53
-
54
- - `docs/README.md`
55
- - `docs/conformance/CURRENT_TARGET.md`
56
- - `docs/conformance/CURRENT_STATE.md`
57
- - `docs/conformance/NEXT_STEPS.md`
58
- - `docs/governance/DOC_POINTERS.md`
59
- - `docs/developer/PACKAGE_CATALOG.md`
60
- - `docs/developer/PACKAGE_LAYOUT.md`
61
-
62
- ## Package-local Boundary
63
-
64
- This file is a package-local distribution entry point.
65
- Use this page for package installation and boundary orientation. Repository governance, conformance state, target status, and release evidence remain governed from `docs/` and `.ssot/`.
66
-
67
- ## License
68
-
69
- 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).