sourcecode 4.10.0__py3-none-any.whl → 4.10.1__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.

Potentially problematic release.


This version of sourcecode might be problematic. Click here for more details.

sourcecode/__init__.py CHANGED
@@ -4,4 +4,4 @@ ASK Engine is the product. ``ask`` is the canonical CLI command; ``sourcecode``
4
4
  the legacy compatibility alias and the Python/PyPI package name. See
5
5
  docs/PRODUCT_IDENTITY.md (normative)."""
6
6
 
7
- __version__ = "4.10.0"
7
+ __version__ = "4.10.1"
@@ -3008,6 +3008,7 @@ def run_migrate_check(
3008
3008
  "target_jdk": target_jdk,
3009
3009
  "keep_boot": keep_boot,
3010
3010
  },
3011
+ include_generated_at=False,
3011
3012
  )
3012
3013
  return report
3013
3014
 
sourcecode/provenance.py CHANGED
@@ -162,6 +162,7 @@ def build_evidence_manifest(
162
162
  command: str,
163
163
  root: Path,
164
164
  inputs: Optional[dict[str, Any]] = None,
165
+ include_generated_at: bool = True,
165
166
  ) -> dict[str, Any]:
166
167
  """Build a machine-readable provenance index for an existing payload."""
167
168
  root = Path(root).resolve()
@@ -173,17 +174,19 @@ def build_evidence_manifest(
173
174
  for claim in claims
174
175
  if (claim.get("source") or {}).get("path")
175
176
  })
177
+ run: dict[str, Any] = {
178
+ "command": command,
179
+ "tool": "ask",
180
+ "tool_version": __version__,
181
+ "repository": str(root),
182
+ "git_head": _git_head(root),
183
+ "inputs": inputs or {},
184
+ }
185
+ if include_generated_at:
186
+ run["generated_at"] = datetime.now(timezone.utc).isoformat()
176
187
  return {
177
188
  "schema_version": PROVENANCE_SCHEMA,
178
- "run": {
179
- "command": command,
180
- "tool": "ask",
181
- "tool_version": __version__,
182
- "repository": str(root),
183
- "git_head": _git_head(root),
184
- "generated_at": datetime.now(timezone.utc).isoformat(),
185
- "inputs": inputs or {},
186
- },
189
+ "run": run,
187
190
  "claims": claims,
188
191
  "sources": [{"path": path} for path in sources],
189
192
  "claims_cap": (
@@ -6975,6 +6975,27 @@ def compute_blast_radius(
6975
6975
  )
6976
6976
  except Exception:
6977
6977
  _impl_graph = None
6978
+ if _impl_graph is not None:
6979
+ _class_fqns = {
6980
+ n.get("fqn") or ""
6981
+ for n in graph_nodes
6982
+ if (n.get("symbol_kind") or n.get("type"))
6983
+ in {"class", "interface", "enum", "record", "annotation"}
6984
+ }
6985
+
6986
+ def _seed_class(_sym: str) -> str:
6987
+ return _sym if _sym in _class_fqns else _enclosing_class(_sym)
6988
+
6989
+ _seed_set = set(matched_fqns)
6990
+ _expanded = set(matched_fqns)
6991
+ _symbols_by_class: dict[str, list[str]] = {}
6992
+ for _sym in reverse_graph:
6993
+ _symbols_by_class.setdefault(_seed_class(_sym), []).append(_sym)
6994
+ for _seed in sorted(_seed_set):
6995
+ for _subtype in getattr(_impl_graph, "all_subtypes_of")(_seed_class(_seed)):
6996
+ for _sym in _symbols_by_class.get(_subtype, ()):
6997
+ _expanded.add(_sym)
6998
+ matched_fqns = _expanded
6978
6999
  for seed in matched_fqns:
6979
7000
  _seed_callers = _all_callers_from_rg(seed, reverse_graph, _rg_index, _impl_graph)
6980
7001
  if len(_seed_callers) > _HUB_CALLER_THRESHOLD and max_depth > 1:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 4.10.0
3
+ Version: 4.10.1
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -42,7 +42,7 @@ Description-Content-Type: text/markdown
42
42
 
43
43
  **Context · Impact · Migration · Architecture · Review — everything from one structural model.**
44
44
 
45
- ![Version](https://img.shields.io/badge/version-4.10.0-blue)
45
+ ![Version](https://img.shields.io/badge/version-4.10.1-blue)
46
46
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
47
47
 
48
48
  > **ASK Engine** is the product. The CLI command is **`ask`**. The legacy **`sourcecode`**
@@ -99,7 +99,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
99
99
  # pip / pipx
100
100
  pipx install sourcecode # or: pip install sourcecode
101
101
 
102
- ask version # ask 4.10.0 — and, on a build that has aged,
102
+ ask version # ask 4.10.1 — and, on a build that has aged,
103
103
  # how many releases have probably shipped since
104
104
  ```
105
105
 
@@ -1,4 +1,4 @@
1
- sourcecode/__init__.py,sha256=MFedfFJXLCVqucQyx5Jqlt-xSDcJri6POgd64ozxHY4,309
1
+ sourcecode/__init__.py,sha256=bZfhB676iKPqbeqLZO21xhmWnrXFygsr1pQZ-4LbcWc,309
2
2
  sourcecode/adaptive_scanner.py,sha256=yJBKjNpkY6bpueYJ2YnRezen3sYZDecEt7WaaNWdqug,9466
3
3
  sourcecode/archetype.py,sha256=CZvRLpkHot_D8D3JFQVorr-EHDJyh0BbS7RnSTqBigM,40499
4
4
  sourcecode/architectural_baseline.py,sha256=agDSwGEakdkgLLh5xnd3hiD_TC6pRujWt4klnuYF1wo,18689
@@ -66,7 +66,7 @@ sourcecode/jdk_exports.py,sha256=fCrlwNAXUT9gge_joq6kMnY3zJxYB2pxqy-0w3o3MJI,874
66
66
  sourcecode/license.py,sha256=vvgE1vBUWh8ozWI7USYuteh6noxntnjuzDQIPF-l4rA,27795
67
67
  sourcecode/mcp_nudge.py,sha256=lKemOqK_wny2u7Ymcr2Idi5Kx8pXY02jCi-_nJYLGMg,2992
68
68
  sourcecode/metrics_analyzer.py,sha256=gLoRWKygF18jLgwsqmGXSWopw-f5iO1VbM7Jjdif6ag,22809
69
- sourcecode/migrate_check.py,sha256=1X3iMVhy4PRAryrrYoX1-8sUOpDyZWQkLRdGZRO2_Qk,148992
69
+ sourcecode/migrate_check.py,sha256=8KKgsiiWu21XwCXgFV1bB8AVsB-pl6KNBTmMW6NYGB8,149028
70
70
  sourcecode/migration_blast.py,sha256=OPryWkM6-PbvcG3eJFdcWUnlpXBje41nu2BkrZnE2hg,9359
71
71
  sourcecode/non_coverage.py,sha256=N4pLd0zKOEdkObzMz3TSMTCDRmV0dwqZtXWFFPR9gSo,12001
72
72
  sourcecode/openapi_surface.py,sha256=BTt0K-woZbkbWTN77IkqeBm_Okag9owR0848fmot8sk,16207
@@ -82,7 +82,7 @@ sourcecode/pr_comment_renderer.py,sha256=239PmJdf95av_ZW236C7_tvq_ahECeuF9AZxrhe
82
82
  sourcecode/pr_impact.py,sha256=eaFgcPMDsjaF8VZvcitFWCPCabMTi-khtGdxpK0wXTQ,22461
83
83
  sourcecode/prepare_context.py,sha256=B8TiBQbazxUOz6D37Dt9zqbOtD5b2S_fR3MB15P9DrI,237206
84
84
  sourcecode/progress.py,sha256=hbOPMSNMfoHYS-BL1HAH0VAQFR4u3TzWq0oJdeAPdjM,3921
85
- sourcecode/provenance.py,sha256=nAkzUQ6OzvHanhA4PCTRuBgyhrlaJXdN71YjQdcguDE,6590
85
+ sourcecode/provenance.py,sha256=1_EGgBtJA3f8dOA_XKuENr0mQLnIJw87lXWdlkgFgqY,6661
86
86
  sourcecode/ranking_engine.py,sha256=ZAucq_YX2KkWUuAZf4P0lhtQ_38vEFnUhuGtSZd1S0E,12970
87
87
  sourcecode/readiness_timeline.py,sha256=qqc14vL9nj9E4qw4bVZpGhfMLaVaYr9s6Pak_VUIwt0,8008
88
88
  sourcecode/reconciliation.py,sha256=GU-1PTcVr8zcbtC7BASfpHcZndP9AdboXPNQiBc0fzo,34251
@@ -93,7 +93,7 @@ sourcecode/relevance_scorer.py,sha256=0AgEt4KrV73nioMqBgjhGjtY7L2C7L7cSyKtj3IKcr
93
93
  sourcecode/remedies.py,sha256=8lgvKkW1WuBG-QfTnA0uBhEKnwWGSvgSMWCfTjzYhEY,6516
94
94
  sourcecode/rename_refactor.py,sha256=h6dNFlB9aZ_3q6heeHBkgXQeXaT03nvPSsYH6P8qxFg,12965
95
95
  sourcecode/repo_classifier.py,sha256=FG1vaWKdWXsWdl-S8hjVMiTqcwgaRXkDyvK4rPcOGtQ,22681
96
- sourcecode/repository_ir.py,sha256=yrQd8yB9NO0M2SLkI0bQ5ty1RjTldQOhVbr3IoNkXJk,357437
96
+ sourcecode/repository_ir.py,sha256=UdA13zDUvhgZvdUt8BIbfHOXi40OkdvqtpMJG7hYkms,358320
97
97
  sourcecode/ris.py,sha256=SjjDNMcc9Zr9us9G8ikBVkoPXKK3BpM-dBodSGMh_g4,24783
98
98
  sourcecode/risk.py,sha256=UgTVdMc8XBArO6D9e2Xx9I-kKqx-PW4W0hSe1Jy9qjU,54491
99
99
  sourcecode/rule_catalog.py,sha256=xmphuULUCtg_GWTbriwY25D-N2IaeMXXvB5CNU1xSuA,4925
@@ -193,8 +193,8 @@ sourcecode/telemetry/consent.py,sha256=pQdl-QeLl6Gcibn0eWHSKZrm-HYSsjpVqOnjrgFp8
193
193
  sourcecode/telemetry/events.py,sha256=4_yeO58U-Cwc1Qb27VB0_EjhmroY0k91n3_VGxeALB8,2776
194
194
  sourcecode/telemetry/filters.py,sha256=RzxauTz8HliO4BllQnXEXc7zTeqdCZi5MgqGEDuW7OQ,6570
195
195
  sourcecode/telemetry/transport.py,sha256=4gGHsq0WeY9VywEZXA3vUxykfiYnw9uuqfjAAec7F8o,1681
196
- sourcecode-4.10.0.dist-info/METADATA,sha256=tYoP9ow-Bpxs6ymxGGKiZW8aQEF5ZMuF25GsiiiKuXQ,36435
197
- sourcecode-4.10.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
198
- sourcecode-4.10.0.dist-info/entry_points.txt,sha256=-JEAdChrK5We51kZcb7OaDcyil-dHBjBPL-NhuO-QY8,89
199
- sourcecode-4.10.0.dist-info/licenses/LICENSE,sha256=7DdHrU9Z_3e7dSvq4ISijZNjnuHo5NIHNiHDouMQ9JU,10491
200
- sourcecode-4.10.0.dist-info/RECORD,,
196
+ sourcecode-4.10.1.dist-info/METADATA,sha256=C03K4BPIPgHtCgRNb8t39MBqlERAAQTfSEv75MGXYpg,36435
197
+ sourcecode-4.10.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
198
+ sourcecode-4.10.1.dist-info/entry_points.txt,sha256=-JEAdChrK5We51kZcb7OaDcyil-dHBjBPL-NhuO-QY8,89
199
+ sourcecode-4.10.1.dist-info/licenses/LICENSE,sha256=7DdHrU9Z_3e7dSvq4ISijZNjnuHo5NIHNiHDouMQ9JU,10491
200
+ sourcecode-4.10.1.dist-info/RECORD,,