loomweave-plugin-python 1.5.1__tar.gz → 1.6.1__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 (34) hide show
  1. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/.gitignore +13 -0
  2. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/PKG-INFO +1 -1
  3. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/plugin.toml +7 -3
  4. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/pyproject.toml +1 -1
  5. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/__init__.py +1 -1
  6. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/call_resolver.py +3 -0
  7. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/extractor.py +4 -0
  8. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/pyright_session.py +323 -40
  9. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/server.py +5 -1
  10. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_package.py +3 -3
  11. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_pyright_session.py +405 -26
  12. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_server.py +15 -11
  13. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/uv.lock +1 -1
  14. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/README.md +0 -0
  15. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/__main__.py +0 -0
  16. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/entity_id.py +0 -0
  17. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/interpreter.py +0 -0
  18. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/py.typed +0 -0
  19. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/qualname.py +0 -0
  20. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/reference_resolver.py +0 -0
  21. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/stdout_guard.py +0 -0
  22. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/src/loomweave_plugin_python/wardline_descriptor.py +0 -0
  23. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/__init__.py +0 -0
  24. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/fixtures/wardline-vocabulary-descriptor.generic-3.preview.yaml +0 -0
  25. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/fixtures/wardline-vocabulary-descriptor.golden.yaml +0 -0
  26. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_dogfood_uniqueness.py +0 -0
  27. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_entity_id.py +0 -0
  28. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_extractor.py +0 -0
  29. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_interpreter.py +0 -0
  30. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_qualname.py +0 -0
  31. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_round_trip.py +0 -0
  32. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_stdout_guard.py +0 -0
  33. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_wardline_descriptor.py +0 -0
  34. {loomweave_plugin_python-1.5.1 → loomweave_plugin_python-1.6.1}/tests/test_wardline_vocabulary_descriptor_conformance.py +0 -0
@@ -10,6 +10,7 @@ Cargo.lock.bak
10
10
  # entries below and the blanket .weft/ rule)
11
11
  *.db-journal
12
12
  *.db-wal
13
+ *.db-shm
13
14
 
14
15
  # Rust-analyzer / IDE caches
15
16
  /.idea
@@ -23,6 +24,7 @@ __pycache__/
23
24
  .pytest_cache/
24
25
  .ruff_cache/
25
26
  .coverage
27
+ coverage.xml
26
28
  htmlcov/
27
29
  .claude/
28
30
 
@@ -65,9 +67,20 @@ CLAUDE.md
65
67
  # Developer config / local tooling — not part of the solution
66
68
  .agents/
67
69
  /.worktrees/
70
+ /.codex/
68
71
 
69
72
  # Local tool/federation config — not part of the solution
70
73
  .mcp.json
71
74
  loomweave.yaml
72
75
  .wardline
73
76
  dist-reconcile/
77
+
78
+ # Release build output (release.yml runs maturin/sdist builds with --out dist).
79
+ /dist/
80
+
81
+ # Editor / merge artifacts
82
+ .DS_Store
83
+ *.orig
84
+ *.rej
85
+ *.swp
86
+ *~
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: loomweave-plugin-python
3
- Version: 1.5.1
3
+ Version: 1.6.1
4
4
  Summary: Loomweave Python language plugin — v1.0 release
5
5
  Author-email: John Morrissey <qacona@gmail.com>
6
6
  Classifier: Development Status :: 4 - Beta
@@ -1,7 +1,7 @@
1
1
  [plugin]
2
2
  name = "loomweave-plugin-python"
3
3
  plugin_id = "python"
4
- version = "1.5.1"
4
+ version = "1.6.1"
5
5
  protocol_version = "1.0"
6
6
  # Bare basename per ADR-021 §Layer 1 + WP2 scrub commit eb0a41d — the host
7
7
  # refuses manifests whose `executable` carries any path component.
@@ -57,13 +57,17 @@ rule_id_prefix = "LMWV-PY-"
57
57
  # runner-wrapper, `sys.argv`, and argparse `cli-command` tagging; 0.12.0
58
58
  # declares the complete static classifier set so supported-empty results are
59
59
  # distinguishable from unsupported classifiers and forces unchanged files to
60
- # re-dispatch. Classifier declarations do not create entity-tag rows. NOTE:
60
+ # re-dispatch. Classifier declarations do not create entity-tag rows. 0.13.0
61
+ # widens `calls` targets to class entities: an instantiation ``Name(...)``
62
+ # is a call to the class (clarion-e5224c3aff) -- a semantic widening of an
63
+ # existing kind, bumped so unchanged files re-dispatch and pick up the edges.
64
+ # NOTE:
61
65
  # ADR-007's summary-cache key is the 5-tuple (entity_id, content_hash,
62
66
  # prompt_template_id, model_tier, guidance_fingerprint) — ontology_version is
63
67
  # handshake-validation, NOT a cache-key component. New edge rows miss the
64
68
  # cache by component-1 of the 5-tuple organically (no edges live in the
65
69
  # 5-tuple yet anyway).
66
- ontology_version = "0.12.0"
70
+ ontology_version = "0.13.0"
67
71
  classifier_tags = [
68
72
  "cli-command",
69
73
  "data-model",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "loomweave-plugin-python"
7
- version = "1.5.1"
7
+ version = "1.6.1"
8
8
  description = "Loomweave Python language plugin — v1.0 release"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,3 +1,3 @@
1
1
  """loomweave-plugin-python — Python language plugin for Loomweave."""
2
2
 
3
- __version__ = "1.5.1"
3
+ __version__ = "1.6.1"
@@ -115,6 +115,9 @@ class FacetCoverage:
115
115
  class CallResolutionResult:
116
116
  edges: list[CallsRawEdge] = field(default_factory=list)
117
117
  unresolved_call_sites_total: int = 0
118
+ # Bare unshadowed-builtin calls dropped before persistence; disclosed so
119
+ # the omission is visible in run stats (clarion-8a862d8f7e).
120
+ unresolved_call_sites_skipped_builtin_total: int = 0
118
121
  unresolved_call_sites: list[UnresolvedCallSite] = field(default_factory=list)
119
122
  pyright_query_latency_ms: list[int] = field(default_factory=list)
120
123
  pyright_index_parse_latency_ms: list[int] = field(default_factory=list)
@@ -260,6 +260,7 @@ class ImportsEdgeProperties(TypedDict):
260
260
  @dataclass
261
261
  class ExtractionStats:
262
262
  unresolved_call_sites_total: int = 0
263
+ unresolved_call_sites_skipped_builtin_total: int = 0
263
264
  unresolved_call_sites: list[UnresolvedCallSite] = field(default_factory=list)
264
265
  reference_sites_total: int = 0
265
266
  references_resolved_total: int = 0
@@ -307,6 +308,9 @@ class ExtractionStats:
307
308
  calls_coverage=calls.coverage,
308
309
  references_coverage=references.coverage,
309
310
  unresolved_call_sites_total=calls.unresolved_call_sites_total,
311
+ unresolved_call_sites_skipped_builtin_total=(
312
+ calls.unresolved_call_sites_skipped_builtin_total
313
+ ),
310
314
  unresolved_call_sites=calls.unresolved_call_sites,
311
315
  reference_sites_total=references.reference_sites_total,
312
316
  references_resolved_total=references.references_resolved_total,