loomweave-plugin-python 1.0.0__py3-none-any.whl

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.
@@ -0,0 +1,71 @@
1
+ [plugin]
2
+ name = "loomweave-plugin-python"
3
+ plugin_id = "python"
4
+ version = "1.0.0"
5
+ protocol_version = "1.0"
6
+ # Bare basename per ADR-021 §Layer 1 + WP2 scrub commit eb0a41d — the host
7
+ # refuses manifests whose `executable` carries any path component.
8
+ executable = "loomweave-plugin-python"
9
+ language = "python"
10
+ extensions = ["py"]
11
+
12
+ [capabilities.runtime]
13
+ # Plugin's declared RSS envelope (MiB). Effective prlimit is
14
+ # min(this, core default 2 GiB). Pyright's Node-based language server
15
+ # inherits this limit from the plugin process, so B.4* declares the core
16
+ # ceiling rather than the Sprint-1 CPython-only working set.
17
+ expected_max_rss_mb = 2048
18
+ # Triggers LMWV-INFRA-PLUGIN-ENTITY-OVERRUN-WARNING well before the 500k
19
+ # core cap (warning emission itself is deferred to Tier B — Sprint 1
20
+ # only lands the declaration).
21
+ expected_entities_per_file = 5000
22
+ # Wardline semantic extraction reads the NG-25 vocabulary descriptor without
23
+ # importing Wardline, then emits source-observed decorator metadata on entities.
24
+ wardline_aware = true
25
+ # v0.1 rejects `true` at initialize with LMWV-INFRA-MANIFEST-UNSUPPORTED-CAPABILITY.
26
+ reads_outside_project_root = false
27
+
28
+ [capabilities.runtime.pyright]
29
+ pin = "1.1.409"
30
+
31
+ [ontology]
32
+ # Sprint 2 B.2: classes + modules join the kind set. B.3 (ADR-026) adds
33
+ # the first edge kind, `contains`. B.4* adds scan-time `calls` edges.
34
+ # B.5* adds scan-time `references` edges. Phase 3 Task 3 adds scan-time
35
+ # `imports` candidate edges.
36
+ entity_kinds = ["function", "class", "module"]
37
+ edge_kinds = ["contains", "calls", "references", "imports"]
38
+ # Per ADR-022: uppercase `LMWV-{PLUGIN_ID_UPPER}-`. Reserved at parse
39
+ # against the LMWV-INFRA-* and LMWV-FACT-* namespaces.
40
+ rule_id_prefix = "LMWV-PY-"
41
+ # Bumps per ADR-027 when the entity/edge/rule set shifts. Phase 3 Task 3 is a
42
+ # MINOR bump (additive `imports` edge kind). NOTE: ADR-007's summary-cache key
43
+ # is the 5-tuple (entity_id, content_hash, prompt_template_id, model_tier,
44
+ # guidance_fingerprint) — ontology_version is handshake-validation, NOT a
45
+ # cache-key component. New edge rows miss the cache by component-1 of
46
+ # the 5-tuple organically (no edges live in the 5-tuple yet anyway).
47
+ ontology_version = "0.7.0"
48
+
49
+ [integrations.wardline]
50
+ expected_descriptor_version = "wardline-generic-2"
51
+
52
+ [ontology.roles]
53
+ file_scope = ["module"]
54
+ callable = ["function"]
55
+ syntax_degraded_module = ["module"]
56
+
57
+ # SEI signature declaration (ADR-038 REQ-C-01 / Wave 1). The plugin emits a
58
+ # versioned `signature` object per function/class entity, stored verbatim by the
59
+ # core and compared by string equality as the matcher's move-case input. Modules
60
+ # and packages declare no signature (the move case abstains for them — fail
61
+ # closed). A `schema_version` bump voids cached signature equality.
62
+ [signature]
63
+ schema_version = 1
64
+
65
+ [signature.schemas.function]
66
+ v = 1
67
+ fields = ["params", "return_ann"]
68
+
69
+ [signature.schemas.class]
70
+ v = 1
71
+ fields = ["bases"]
@@ -0,0 +1,73 @@
1
+ Metadata-Version: 2.4
2
+ Name: loomweave-plugin-python
3
+ Version: 1.0.0
4
+ Summary: Loomweave Python language plugin — v1.0 release
5
+ Author-email: John Morrissey <qacona@gmail.com>
6
+ Classifier: Development Status :: 4 - Beta
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.11
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Requires-Python: >=3.11
11
+ Requires-Dist: packaging>=24
12
+ Requires-Dist: pyright==1.1.409
13
+ Requires-Dist: pyyaml>=6.0
14
+ Provides-Extra: dev
15
+ Requires-Dist: build>=1.2; extra == 'dev'
16
+ Requires-Dist: mypy>=1.11; extra == 'dev'
17
+ Requires-Dist: pip-audit>=2.9; extra == 'dev'
18
+ Requires-Dist: pre-commit>=3.8; extra == 'dev'
19
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
20
+ Requires-Dist: pytest>=8.0; extra == 'dev'
21
+ Requires-Dist: ruff>=0.6; extra == 'dev'
22
+ Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
23
+ Description-Content-Type: text/markdown
24
+
25
+ # loomweave-plugin-python
26
+
27
+ The Python language plugin for [Loomweave](../../README.md). Extracts Python
28
+ entities from source files and serves them to the Loomweave core over the
29
+ JSON-RPC protocol defined in [WP2 L4](../../docs/implementation/sprint-1/wp2-plugin-host.md#l4--json-rpc-method-set--content-length-framing).
30
+
31
+ **Status**: Python structural extractor. It emits modules, classes, functions,
32
+ `contains`, `calls`, `references`, `imports`, and versioned entity signatures
33
+ for Stable Entity Identity (SEI) matching. It also reads Wardline's NG-25
34
+ trust-vocabulary descriptor without importing Wardline and emits source-observed
35
+ Wardline decorator metadata/tags on decorated entities when a descriptor is
36
+ available.
37
+
38
+ ## Install (development)
39
+
40
+ ```bash
41
+ python -m venv .venv
42
+ source .venv/bin/activate
43
+ pip install -e '.[dev]'
44
+ ```
45
+
46
+ This places `loomweave-plugin-python` on your `$PATH` and installs the
47
+ dev-time toolchain (`ruff`, `mypy`, `pytest`, `pytest-cov`, `pre-commit`).
48
+
49
+ ## ADR-023 tooling gates
50
+
51
+ Every commit must pass all four:
52
+
53
+ ```bash
54
+ ruff check plugins/python
55
+ ruff format --check plugins/python
56
+ mypy --strict plugins/python
57
+ pytest plugins/python
58
+ ```
59
+
60
+ CI runs the same four gates in the `python-plugin` job.
61
+
62
+ ## Design references
63
+
64
+ - [WP3 plan](../../docs/implementation/sprint-1/wp3-python-plugin.md) — task
65
+ ledger, lock-ins, and UQ resolutions.
66
+ - [ADR-003](../../docs/loomweave/adr/ADR-003-entity-id-scheme.md) — 3-segment
67
+ `EntityId` format this plugin produces.
68
+ - [ADR-018](../../docs/loomweave/adr/ADR-018-identity-reconciliation.md) —
69
+ cross-product identity join with Wardline.
70
+ - [ADR-022](../../docs/loomweave/adr/ADR-022-core-plugin-ontology.md) —
71
+ manifest schema and ontology-boundary enforcement.
72
+ - [ADR-023](../../docs/loomweave/adr/ADR-023-tooling-baseline.md) — the four
73
+ Python gates and the `pre-commit` setup.
@@ -0,0 +1,17 @@
1
+ loomweave_plugin_python/__init__.py,sha256=wmv6wivp3tnzIGHWWG9eO2JiGwxYZW9uqvggUibOLlA,95
2
+ loomweave_plugin_python/__main__.py,sha256=oy1S1Ru7WdX6jcAVhsqNI25LxAbQq3jHBlETBt20fyM,376
3
+ loomweave_plugin_python/call_resolver.py,sha256=V6w5AEmWgjkKuWdgUPJTXStOavmmbyvjP0PQOeT3xkU,1692
4
+ loomweave_plugin_python/entity_id.py,sha256=l7_5yyh6WVH9xIzrQVCDb2GmBMhovOVmuQezcZIVf8k,2691
5
+ loomweave_plugin_python/extractor.py,sha256=niapsUWBbHlQXI17eYY6teJoQB4XxF-Nh2fcqa7dvro,48316
6
+ loomweave_plugin_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ loomweave_plugin_python/pyright_session.py,sha256=0qXZFTzprefLYEaM7wMP6DjylR_ej9XqDbngQKIkvS4,60871
8
+ loomweave_plugin_python/qualname.py,sha256=7JVETZnQkgU1FxPbyTmzSVZDBm_2SrXGZlqUOjB51W0,2090
9
+ loomweave_plugin_python/reference_resolver.py,sha256=7r2QsM9tRWeYHeRD62-jBvByGkdLC-0AWYhhgKNBgV4,1871
10
+ loomweave_plugin_python/server.py,sha256=UARexfFun59sOpFSMWP7t6baLcOoi98Thbc_Gq6JQ3Q,12329
11
+ loomweave_plugin_python/stdout_guard.py,sha256=tUzcXyvXuy3-dXB81_xCNk8KWE3mqtsWSge81KPDhKg,2007
12
+ loomweave_plugin_python/wardline_descriptor.py,sha256=49yYtIUdUfv4FGKyINql5yEZ2JTOUkl8sJXF3J6fPF8,7197
13
+ loomweave_plugin_python-1.0.0.data/data/share/loomweave/plugins/python/plugin.toml,sha256=0H-_lBqflTkXsm_sqySmS6j0s7pGDQdDntkf1TcCRz0,2908
14
+ loomweave_plugin_python-1.0.0.dist-info/METADATA,sha256=UzoJmnhdF1IOPaIuIBRvwAVxlfkg37zoss3xUBCYem0,2751
15
+ loomweave_plugin_python-1.0.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
16
+ loomweave_plugin_python-1.0.0.dist-info/entry_points.txt,sha256=X1DQOYU5o1z2lBOJoh9JgQR5pg9fd_Yd8KozTHdfZqA,82
17
+ loomweave_plugin_python-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ loomweave-plugin-python = loomweave_plugin_python.__main__:main