Skip to main content

loomweave-plugin-python

The Python language plugin for Loomweave. Extracts Python entities from source files and serves them to the Loomweave core over the JSON-RPC protocol defined in WP2 L4.

Status: Python structural extractor. It emits modules, classes, functions, contains, calls, references, imports, and versioned entity signatures for Stable Entity Identity (SEI) matching. It also reads Wardline's NG-25 trust-vocabulary descriptor without importing Wardline and emits source-observed Wardline decorator metadata/tags on decorated entities when a descriptor is available.

Install (development)

python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'

This places loomweave-plugin-python on your $PATH and installs the dev-time toolchain (ruff, mypy, pytest, pytest-cov, pre-commit).

ADR-023 tooling gates

Every commit must pass all four:

ruff check plugins/python
ruff format --check plugins/python
mypy --strict plugins/python
pytest plugins/python

CI runs the same four gates in the python-plugin job.

Interpreter discovery

pyright-langserver type-checks against whatever python it finds — the plugin points it at the project's own interpreter deterministically, rather than trusting whatever happened to be first on the launching process's PATH (clarion-5cf9643de9). discover_project_interpreter (src/loomweave_plugin_python/interpreter.py) walks a fixed order and stops at the first usable candidate — a regular file (Path.is_file()) that passes os.access(path, os.X_OK):

Rung Source Pinned?
1 LOOMWEAVE_PYTHON_INTERPRETER env var names an executable file yes
2 <project_root>/.venv/bin/python yes
3 $VIRTUAL_ENV/bin/python yes
4 $CONDA_PREFIX/bin/python yes
5 first python / python3 on PATH no
6 nothing found no

An empty env value counts as unset at every rung. The returned path is absolute and lexically normalised but never symlink-resolved — a venv's bin/python is typically a symlink to the base interpreter, and pyright needs the symlink path to stay inside the venv's site-packages.

This order is a cross-language contract shared with the Rust host (crates/loomweave-core/src/plugin/interpreter.rs); the host runs the same discovery and, for a [capabilities.runtime.pyright] plugin, exports its pinned answer to the child as LOOMWEAVE_PYTHON_INTERPRETER (unless the operator already set it). The plugin's own discovery therefore sees the host's choice at rung 1 whenever the host found one.

When discovery lands on rung 5 or 6 (no project-owned interpreter), an otherwise-complete calls/references facet is honestly demoted to degraded with reason interpreter_unpinned — cross-module call/reference targets may be missing because pyright resolved against a guessed interpreter, even though nothing else went wrong. Fix it by creating .venv in the project root or setting LOOMWEAVE_PYTHON_INTERPRETER to the project's interpreter. See ADR-058 for the full design and the interpreter_unpinned coverage semantics.

Design references

  • WP3 plan — task ledger, lock-ins, and UQ resolutions.
  • ADR-003 — 3-segment EntityId format this plugin produces.
  • ADR-018 — cross-product identity join with Wardline.
  • ADR-022 — manifest schema and ontology-boundary enforcement.
  • ADR-023 — the four Python gates and the pre-commit setup.

Metadata

Release files for loomweave-plugin-python 1.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for loomweave-plugin-python 1.6.1
File Size Uploaded Provenance Actions
loomweave_plugin_python-1.6.1.tar.gz 222.0 kB With provenance Details for loomweave_plugin_python-1.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for loomweave-plugin-python 1.6.1
File Interpreter ABI Platform Actions
loomweave_plugin_python-1.6.1-py3-none-any.whl Python 3 none any Details for loomweave_plugin_python-1.6.1-py3-none-any.whl

Total release size: 308.3 kB

Release files / loomweave_plugin_python-1.6.1.tar.gz

Download URL loomweave_plugin_python-1.6.1.tar.gz
Size 222.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5704284de6ce698d9c9331245dd06d94fc877b73738557101374fa49eb8d0e75
BLAKE2b-256 checksum
How to use checksums
8b459e8d8be0436c3165ef1f6cac8be18df5fb49198f715cd890b681c07bc228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / loomweave_plugin_python-1.6.1-py3-none-any.whl

Download URL loomweave_plugin_python-1.6.1-py3-none-any.whl
Size 86.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b42657987ff4d0ac17a4c2eb133740d17b3d73af29449e65a6228ab704ff5e6
BLAKE2b-256 checksum
How to use checksums
fd01ba6522d57078c9bd86481c132b9c26e184ca2173fddba661c81bc20ee8cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Security for loomweave-plugin-python 1.6.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for loomweave_plugin_python-1.6.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page