pyossmtool 0.0.3__tar.gz → 0.0.4__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 (139) hide show
  1. {pyossmtool-0.0.3/src/pyossmtool.egg-info → pyossmtool-0.0.4}/PKG-INFO +4 -3
  2. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/README.md +1 -1
  3. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/pyproject.toml +7 -3
  4. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/__init__.py +1 -1
  5. pyossmtool-0.0.4/src/pyossmtool/bundle/defaults/configs/ruff.toml +11 -0
  6. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/installer.py +6 -10
  7. {pyossmtool-0.0.3 → pyossmtool-0.0.4/src/pyossmtool.egg-info}/PKG-INFO +4 -3
  8. pyossmtool-0.0.3/src/pyossmtool/bundle/defaults/configs/ruff.toml +0 -8
  9. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/LICENSE +0 -0
  10. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/setup.cfg +0 -0
  11. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/bandit.scan.yaml +0 -0
  12. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/codespell.spelling.yaml +0 -0
  13. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/deadcode.scan.yaml +0 -0
  14. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/gate.acronym-allowlist.yaml +0 -0
  15. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/gate.folder-breadth.yaml +0 -0
  16. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/gate.module-private-vars.yaml +0 -0
  17. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/gate.module-size.yaml +0 -0
  18. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/gitleaks.secrets.yaml +0 -0
  19. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/hadolint.dockerfile.yaml +0 -0
  20. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/jscpd.duplication.yaml +0 -0
  21. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/markdownlint.check.yaml +0 -0
  22. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/mdformat.apply.yaml +0 -0
  23. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/mdformat.format.yaml +0 -0
  24. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/mutmut.run.yaml +0 -0
  25. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/pydeps.cycles.yaml +0 -0
  26. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/pytest.coverage.yaml +0 -0
  27. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/pytest.test.yaml +0 -0
  28. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/radon.cc.yaml +0 -0
  29. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/radon.mi.yaml +0 -0
  30. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/ruff.format.apply.yaml +0 -0
  31. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/ruff.format.yaml +0 -0
  32. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/ruff.lint.yaml +0 -0
  33. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/ruff.unused.yaml +0 -0
  34. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/semgrep.scan.yaml +0 -0
  35. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/shellcheck.yaml +0 -0
  36. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/shfmt.apply.yaml +0 -0
  37. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/shfmt.format.yaml +0 -0
  38. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/sourcery.review.yaml +0 -0
  39. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/ty.check.yaml +0 -0
  40. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/vulture.scan.yaml +0 -0
  41. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/yamlfmt.apply.yaml +0 -0
  42. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/yamlfmt.format.yaml +0 -0
  43. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/checks/yamllint.check.yaml +0 -0
  44. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/bandit.yaml +0 -0
  45. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/codespell.yaml +0 -0
  46. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/deadcode.yaml +0 -0
  47. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/gitleaks.yaml +0 -0
  48. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/hadolint.yaml +0 -0
  49. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/jscpd.yaml +0 -0
  50. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/markdownlint.yaml +0 -0
  51. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/mdformat.yaml +0 -0
  52. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/mutmut.yaml +0 -0
  53. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/pydeps.yaml +0 -0
  54. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/pytest.yaml +0 -0
  55. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/radon.yaml +0 -0
  56. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/ruff.yaml +0 -0
  57. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/script.yaml +0 -0
  58. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/semgrep.yaml +0 -0
  59. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/shellcheck.yaml +0 -0
  60. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/shfmt.yaml +0 -0
  61. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/sourcery.yaml +0 -0
  62. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/ty.yaml +0 -0
  63. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/vulture.yaml +0 -0
  64. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/yamlfmt.yaml +0 -0
  65. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/catalog/tools/yamllint.yaml +0 -0
  66. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/allowlists/acronyms.yaml +0 -0
  67. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/allowlists/folder-breadth.txt +0 -0
  68. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/allowlists/module-private-vars.txt +0 -0
  69. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/allowlists/module-size.txt +0 -0
  70. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/bandit.yaml +0 -0
  71. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/gates/acronym-allowlist.yaml +0 -0
  72. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/gates/folder-breadth.yaml +0 -0
  73. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/gates/module-private-vars.yaml +0 -0
  74. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/gates/module-size.yaml +0 -0
  75. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/markdownlint.json +0 -0
  76. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/ty.toml +0 -0
  77. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/yamlfmt.yaml +0 -0
  78. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/configs/yamllint.yaml +0 -0
  79. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/README.md +0 -0
  80. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/acronym-allowlist.sh +0 -0
  81. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/folder-breadth.sh +0 -0
  82. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/lib.sh +0 -0
  83. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/module-private-vars.sh +0 -0
  84. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/gates/module-size.sh +0 -0
  85. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/defaults/semgrep/python-quality.yml +0 -0
  86. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/all.yaml +0 -0
  87. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/demo.yaml +0 -0
  88. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/extended.yaml +0 -0
  89. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/format.yaml +0 -0
  90. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/formatting.yaml +0 -0
  91. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/policy.yaml +0 -0
  92. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/python-quality.yaml +0 -0
  93. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/reslab-parity.yaml +0 -0
  94. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/bundle/suites/standard.yaml +0 -0
  95. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/cli.py +0 -0
  96. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/config_resolver.py +0 -0
  97. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/discovery.py +0 -0
  98. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/error_formatters.py +0 -0
  99. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/gate_config.py +0 -0
  100. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/gates.py +0 -0
  101. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/ignore.py +0 -0
  102. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/ignore_materialize.py +0 -0
  103. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/models.py +0 -0
  104. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/__init__.py +0 -0
  105. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/analysis.py +0 -0
  106. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/base.py +0 -0
  107. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/common.py +0 -0
  108. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/format_text.py +0 -0
  109. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/gates.py +0 -0
  110. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/patterns.py +0 -0
  111. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/prose.py +0 -0
  112. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/ruff.py +0 -0
  113. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/parsers/shell.py +0 -0
  114. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/policy/__init__.py +0 -0
  115. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/policy/acronym_allowlist.py +0 -0
  116. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/policy/folder_breadth.py +0 -0
  117. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/registry.py +0 -0
  118. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/reporter.py +0 -0
  119. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/resolver.py +0 -0
  120. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/runner.py +0 -0
  121. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/runner_script.py +0 -0
  122. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool/target_expand.py +0 -0
  123. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool.egg-info/SOURCES.txt +0 -0
  124. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool.egg-info/dependency_links.txt +0 -0
  125. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool.egg-info/entry_points.txt +0 -0
  126. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool.egg-info/requires.txt +0 -0
  127. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/src/pyossmtool.egg-info/top_level.txt +0 -0
  128. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_check_modes.py +0 -0
  129. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_cli.py +0 -0
  130. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_config_and_targets.py +0 -0
  131. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_discovery.py +0 -0
  132. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_error_formatters.py +0 -0
  133. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_gate_config.py +0 -0
  134. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_ignore.py +0 -0
  135. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_npm_install.py +0 -0
  136. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_packaging.py +0 -0
  137. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_parser_registry.py +0 -0
  138. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_script_gates.py +0 -0
  139. {pyossmtool-0.0.3 → pyossmtool-0.0.4}/tests/test_wheel_install.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyossmtool
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Quality-gate orchestrator for AI-assisted development
5
5
  Author-email: Vishal Kumar Mishra <vishal.k.mishra2@gmail.com>
6
6
  License-Expression: MIT
@@ -17,8 +17,9 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
20
21
  Classifier: Topic :: Software Development :: Quality Assurance
21
- Requires-Python: <3.14,>=3.11
22
+ Requires-Python: <3.15,>=3.11
22
23
  Description-Content-Type: text/markdown
23
24
  License-File: LICENSE
24
25
  Requires-Dist: pydantic>=2.0
@@ -47,7 +48,7 @@ pip install pyossmtool
47
48
  uv add --dev pyossmtool
48
49
  ```
49
50
 
50
- Requires Python 3.11-3.13.
51
+ Requires Python 3.113.14.
51
52
 
52
53
  ## 60-Second Setup
53
54
 
@@ -18,7 +18,7 @@ pip install pyossmtool
18
18
  uv add --dev pyossmtool
19
19
  ```
20
20
 
21
- Requires Python 3.11-3.13.
21
+ Requires Python 3.113.14.
22
22
 
23
23
  ## 60-Second Setup
24
24
 
@@ -1,9 +1,9 @@
1
1
  [project]
2
2
  name = "pyossmtool"
3
- version = "0.0.3"
3
+ version = "0.0.4"
4
4
  description = "Quality-gate orchestrator for AI-assisted development"
5
5
  readme = "README.md"
6
- requires-python = ">=3.11,<3.14"
6
+ requires-python = ">=3.11,<3.15"
7
7
  license = "MIT"
8
8
  license-files = ["LICENSE"]
9
9
  authors = [
@@ -26,6 +26,7 @@ classifiers = [
26
26
  "Programming Language :: Python :: 3.11",
27
27
  "Programming Language :: Python :: 3.12",
28
28
  "Programming Language :: Python :: 3.13",
29
+ "Programming Language :: Python :: 3.14",
29
30
  "Topic :: Software Development :: Quality Assurance",
30
31
  ]
31
32
  dependencies = [
@@ -83,7 +84,10 @@ line-length = 120
83
84
  target-version = "py311"
84
85
 
85
86
  [tool.ruff.lint]
86
- select = ["B", "E", "F", "I", "UP"]
87
+ select = ["B", "C90", "E", "F", "I", "UP"]
88
+
89
+ [tool.ruff.lint.mccabe]
90
+ max-complexity = 10
87
91
 
88
92
  [tool.ty]
89
93
  # Repo-owned config; wins over bundled defaults when configs.mode=auto
@@ -1,3 +1,3 @@
1
1
  """pyossmtool — quality-gate orchestrator for AI-assisted development."""
2
2
 
3
- __version__ = "0.0.3"
3
+ __version__ = "0.0.4"
@@ -0,0 +1,11 @@
1
+ line-length = 120
2
+ target-version = "py311"
3
+
4
+ [lint]
5
+ select = ["E", "F", "I", "UP", "B", "C90"]
6
+
7
+ [lint.mccabe]
8
+ max-complexity = 10
9
+
10
+ [format]
11
+ quote-style = "double"
@@ -76,6 +76,12 @@ class Installer:
76
76
  return False
77
77
 
78
78
  def _managed_python(self) -> str:
79
+ """Prefer a stable CPython for managed tool installs.
80
+
81
+ pyossmtool itself supports 3.11–3.14. Some third-party CLI tools still lag
82
+ on brand-new interpreters, so when the host is 3.14+, prefer 3.13/3.12/3.11
83
+ if available for the managed venv.
84
+ """
79
85
  if sys.version_info < (3, 14):
80
86
  return sys.executable
81
87
  for candidate in ("python3.13", "python3.12", "python3.11"):
@@ -85,16 +91,6 @@ class Installer:
85
91
  return sys.executable
86
92
 
87
93
  def _ensure_managed_venv(self) -> None:
88
- python_bin = self.managed_venv / "bin" / "python"
89
- if python_bin.exists():
90
- version = subprocess.run(
91
- [str(python_bin), "--version"],
92
- capture_output=True,
93
- text=True,
94
- check=True,
95
- ).stdout
96
- if "3.14" in version:
97
- shutil.rmtree(self.managed_venv)
98
94
  if (self.managed_venv / "bin" / "python").exists():
99
95
  return
100
96
  self.managed_venv.parent.mkdir(parents=True, exist_ok=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyossmtool
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Quality-gate orchestrator for AI-assisted development
5
5
  Author-email: Vishal Kumar Mishra <vishal.k.mishra2@gmail.com>
6
6
  License-Expression: MIT
@@ -17,8 +17,9 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
20
21
  Classifier: Topic :: Software Development :: Quality Assurance
21
- Requires-Python: <3.14,>=3.11
22
+ Requires-Python: <3.15,>=3.11
22
23
  Description-Content-Type: text/markdown
23
24
  License-File: LICENSE
24
25
  Requires-Dist: pydantic>=2.0
@@ -47,7 +48,7 @@ pip install pyossmtool
47
48
  uv add --dev pyossmtool
48
49
  ```
49
50
 
50
- Requires Python 3.11-3.13.
51
+ Requires Python 3.113.14.
51
52
 
52
53
  ## 60-Second Setup
53
54
 
@@ -1,8 +0,0 @@
1
- line-length = 100
2
- target-version = "py311"
3
-
4
- [lint]
5
- select = ["E", "F", "I", "UP", "B"]
6
-
7
- [format]
8
- quote-style = "double"
File without changes
File without changes
File without changes