agent-sdlc 0.4.2__tar.gz → 0.4.3__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 (42) hide show
  1. {agent_sdlc-0.4.2/agent_sdlc.egg-info → agent_sdlc-0.4.3}/PKG-INFO +1 -1
  2. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3/agent_sdlc.egg-info}/PKG-INFO +1 -1
  3. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/__init__.py +1 -1
  4. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/coverage_map.py +2 -1
  5. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/runner.py +3 -2
  6. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/LICENSE +0 -0
  7. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/NOTICE.md +0 -0
  8. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/README.md +0 -0
  9. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/agent_sdlc.egg-info/SOURCES.txt +0 -0
  10. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/agent_sdlc.egg-info/dependency_links.txt +0 -0
  11. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/agent_sdlc.egg-info/entry_points.txt +0 -0
  12. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/agent_sdlc.egg-info/requires.txt +0 -0
  13. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/agent_sdlc.egg-info/top_level.txt +0 -0
  14. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/adversary.py +0 -0
  15. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/cli.py +0 -0
  16. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/commit_msg.py +0 -0
  17. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/diff_discipline.py +0 -0
  18. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/model_vv.py +0 -0
  19. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/mutants.py +0 -0
  20. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/no_comments.py +0 -0
  21. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/no_leaks.py +0 -0
  22. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/no_new_docs.py +0 -0
  23. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/repo.py +0 -0
  24. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/rules.py +0 -0
  25. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/token.py +0 -0
  26. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary.py +0 -0
  27. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary_check.py +0 -0
  28. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary_core.toml +0 -0
  29. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary_molds.py +0 -0
  30. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary_path.py +0 -0
  31. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/vocabulary_wordnet.py +0 -0
  32. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/mutation_gate/waivers.py +0 -0
  33. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/pyproject.toml +0 -0
  34. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/code-clarity.md +0 -0
  35. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/diff-discipline.md +0 -0
  36. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/model-vv.md +0 -0
  37. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/naming.md +0 -0
  38. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/testing.md +0 -0
  39. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/tickets.md +0 -0
  40. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/rules/voice.md +0 -0
  41. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/setup.cfg +0 -0
  42. {agent_sdlc-0.4.2 → agent_sdlc-0.4.3}/tests/test_say_narrate_bin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-sdlc
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Diff-scoped mutation gate for pre-commit and agent Stop hooks
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/PavelGuzenfeld/agent-sdlc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-sdlc
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Diff-scoped mutation gate for pre-commit and agent Stop hooks
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/PavelGuzenfeld/agent-sdlc
@@ -1,3 +1,3 @@
1
1
  """Diff-scoped mutation gate. Spec: PavelGuzenfeld/dotfiles#9."""
2
2
 
3
- __version__ = "0.4.2"
3
+ __version__ = "0.4.3"
@@ -9,6 +9,7 @@ from __future__ import annotations
9
9
 
10
10
  import ast
11
11
  import json
12
+ import shlex
12
13
  import sqlite3
13
14
  import time
14
15
  from pathlib import Path, PurePosixPath
@@ -254,7 +255,7 @@ def covering_tests(
254
255
  if not cands:
255
256
  return {}
256
257
  lang_cfg = repo.config.for_language("python")
257
- rels = " ".join(str(p.relative_to(repo.root)) for p in cands)
258
+ rels = shlex.join(str(p.relative_to(repo.root)) for p in cands)
258
259
  cmd = lang_cfg.coverage_command.format(file=_cov_scope(target), tests=rels)
259
260
  # Same suite plus instrumentation, so the baseline cap is the honest bound.
260
261
  run_start = time.time()
@@ -10,6 +10,7 @@ from __future__ import annotations
10
10
  import contextlib
11
11
  import os
12
12
  import re
13
+ import shlex
13
14
  import shutil
14
15
  import signal
15
16
  import subprocess
@@ -191,7 +192,7 @@ def _run_tests(
191
192
  """Verdict within `timeout`. Timing out is not-green: a mutant can make the
192
193
  suite hang — `break` to `continue`, or a divide that never settles — and a
193
194
  hung gate is worse than a wrong verdict."""
194
- return run_capped(repo, test_command.format(tests=" ".join(tests)), timeout)
195
+ return run_capped(repo, test_command.format(tests=shlex.join(tests)), timeout)
195
196
 
196
197
 
197
198
  def _looks_like_collection_failure(returncode: int, output: bytes) -> bool:
@@ -235,7 +236,7 @@ def baseline_green(repo: Repo, tests: list[str], test_command: str) -> float:
235
236
  """Seconds the unmutated suite takes. Refuses rather than reporting, because
236
237
  a baseline that is not green makes every later verdict a fabrication."""
237
238
  start = time.monotonic()
238
- command = test_command.format(tests=" ".join(tests))
239
+ command = test_command.format(tests=shlex.join(tests))
239
240
  verdict = _baseline_outcome(repo, command, repo.config.baseline_timeout)
240
241
  if verdict == NO_PASS_MARKER:
241
242
  raise GateError(
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes