keble-positioning
keble-positioning owns positioning grids, views, viewport actions,
positionable item records, and agent tools for market-positioning studies.
Verified State
Checked on 2026-06-30 against pyproject.toml, AGENTS.md, package exports,
keble_positioning/, CODE_GUIDELINES.md, and the rebased origin/main test
layout.
- Package:
keble-positioning 0.38.1 - Package version:
0.38.1 - Python:
>=3.13,<3.14 - Critical deps:
pydantic,keble-db,keble-helpers,keble-agentic-chat,keble-segmenting,pydantic-ai-slim,griffe,keble-task - Segmenting dependency line:
keble-segmenting >=0.38.0,<1 - Task dependency line:
keble-task >=2.21.0,<3.0.0 - Test/dev chat source: bundled compatible
deps/keble_agentic_chat-3.44.0-py3-none-any.whl - Source roots:
schemas/,crud/,client/,agent/ - Test roots:
tests/unit,tests/integration,tests/live/keepa,tests/live/llm, and tracked JSON/static fixtures undertests/assets - Test helpers:
keble_positioning.testingowns package-local settings, Redis namespace helpers, reusable datasets, and dependency builders shared across test layers. - Storage and live-provider tests can read
keble.backend/.envthroughkeble_db.testing; package-local env variables still win when set. - Public exports:
PositioningClient, positioning task metadata, view/grid schemas, action events/results, and query/mutation chat tool providers.
Runtime Contract
- Positioning is schema/protocol first. Backend owns task identity; this package owns positioning domain shapes, action handling, and grid/view contracts.
- Public bootstrap exports include
PositioningTaskMetadata,PositioningBootstrapResult, andPositioningViewDetailed. abootstrap_positioning(...)seeds the first positioning rows from typed task metadata, includingsearch_terms=payload.search_terms; positioning rows do not persistsearch_terms.atask_handler(...)executes the task request path, for exampleawait positioning_client.atask_handler(request=request), but this package still does not own background orchestration or runtime status recovery.- Public frontend-facing create flows are product-market-only unless backend,
keble-core, and frontend are migrated together. - Grouped positioning followers are metadata-only. Missing follower
SegmentedResultrows are expected and must not be backfilled by copying main/group rows. - Agent tools must validate arguments term by term and raise typed retry errors for model-correctable inputs.
Testing
Default fast tests are offline:
uv sync --group test
uv run python -c "import keble_segmenting"
uv run python -c "import keble_positioning"
uv run pytest -m "not live and not slow and not eval and not local_stack and not db_stack and not container"
uv run npx --yes pyright .
Compatibility validation commands:
uv run pytest tests -quv run pytest -m "not live" tests -quv run pytest -m live tests -quv lockuv sync
Opt-in layers from AGENTS.md:
RUN_INTEGRATION=1 uv run pytest -m "integration and local_stack"
RUN_INTEGRATION=1 RUN_KEEPA_LIVE=1 RUN_LLM_LIVE=1 uv run pytest -m keepa_live
RUN_INTEGRATION=1 RUN_LLM_LIVE=1 uv run pytest -m "live and llm"
Keep real-service behavior under explicit integration/live markers and env
switches. Do not place DB, Keepa, or LLM calls in the default test path.
Live Keepa and LLM tests assert current structured invariants directly. Do not
reintroduce tracked Keepa or LLM response cache files as proof for live behavior.
If real DB or Keepa fixtures are missing, enrich keble-db or keble-keepa
testing helpers first instead of adding package-local fake placeholders.
Do not add root tests/config.py, tests/redis_namespace.py, or duplicate
tests/pytest.ini; shared helpers belong in keble_positioning.testing.
Keep tests/assets non-executable and data-only.
The test/dev keble-agentic-chat source is pinned to the bundled compatible
deps/keble_agentic_chat-3.44.0-py3-none-any.whl. Do not point it at the
sibling ../keble-agentic-chat checkout unless this repo also moves to that
checkout's keble-helpers dependency line; otherwise uv run can fail before
pytest collection.
Change Logs
Historical release notes and long AI change history live under logs/.
Side Effect If Changes
- Backend positioning room APIs, task room sockets, frontend workspace tables, and segmenting integration depend on these schemas and events.
- View/action identity changes must propagate to backend,
keble-core, and frontend task-row/rendering code together. - Testing-layer changes must preserve the marker/env-gate split above so the default suite stays offline.
- Test/dev dependency source changes affect every
uv run pytestand pyright proof command in this repo; keeppyproject.toml,uv.lock, and bundled dependency wheels aligned.
Metadata
Release files for keble-positioning 0.38.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| keble_positioning-0.38.1.tar.gz | 1.1 MB | Without provenance | Details for keble_positioning-0.38.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| keble_positioning-0.38.1-py3-none-any.whl | Python 3 | none | any | Details for keble_positioning-0.38.1-py3-none-any.whl |
Total release size: 1.2 MB
Release files / keble_positioning-0.38.1.tar.gz
| Download URL | keble_positioning-0.38.1.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da47d88d4a08c54a31871521caba342b1897c37288310896dd0f181855e3606a
|
|
BLAKE2b-256 checksum How to use checksums |
1f6355c5c7978e07c1ac1806f16ea2927f997e293346426f6373fffc93d74b85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / keble_positioning-0.38.1-py3-none-any.whl
| Download URL | keble_positioning-0.38.1-py3-none-any.whl |
|---|---|
| Size | 91.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7e3f2e73670d31b6833f3dfcb676028bcbbd26d94dbcc97d08a451fcc87a747
|
|
BLAKE2b-256 checksum How to use checksums |
0e7435f23453172ea9a417e34583728b6efc903fdf53506fa577c58266c1daf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for keble-positioning 0.38.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.