crackerjack 0.30.3__py3-none-any.whl → 0.31.7__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 crackerjack might be problematic. Click here for more details.
- crackerjack/CLAUDE.md +1005 -0
- crackerjack/RULES.md +380 -0
- crackerjack/__init__.py +42 -13
- crackerjack/__main__.py +227 -299
- crackerjack/agents/__init__.py +41 -0
- crackerjack/agents/architect_agent.py +281 -0
- crackerjack/agents/base.py +170 -0
- crackerjack/agents/coordinator.py +512 -0
- crackerjack/agents/documentation_agent.py +498 -0
- crackerjack/agents/dry_agent.py +388 -0
- crackerjack/agents/formatting_agent.py +245 -0
- crackerjack/agents/import_optimization_agent.py +281 -0
- crackerjack/agents/performance_agent.py +669 -0
- crackerjack/agents/proactive_agent.py +104 -0
- crackerjack/agents/refactoring_agent.py +788 -0
- crackerjack/agents/security_agent.py +529 -0
- crackerjack/agents/test_creation_agent.py +657 -0
- crackerjack/agents/test_specialist_agent.py +486 -0
- crackerjack/agents/tracker.py +212 -0
- crackerjack/api.py +560 -0
- crackerjack/cli/__init__.py +24 -0
- crackerjack/cli/facade.py +104 -0
- crackerjack/cli/handlers.py +267 -0
- crackerjack/cli/interactive.py +471 -0
- crackerjack/cli/options.py +409 -0
- crackerjack/cli/utils.py +18 -0
- crackerjack/code_cleaner.py +618 -928
- crackerjack/config/__init__.py +19 -0
- crackerjack/config/hooks.py +218 -0
- crackerjack/core/__init__.py +0 -0
- crackerjack/core/async_workflow_orchestrator.py +406 -0
- crackerjack/core/autofix_coordinator.py +200 -0
- crackerjack/core/container.py +104 -0
- crackerjack/core/enhanced_container.py +542 -0
- crackerjack/core/performance.py +243 -0
- crackerjack/core/phase_coordinator.py +585 -0
- crackerjack/core/proactive_workflow.py +316 -0
- crackerjack/core/session_coordinator.py +289 -0
- crackerjack/core/workflow_orchestrator.py +826 -0
- crackerjack/dynamic_config.py +94 -103
- crackerjack/errors.py +263 -41
- crackerjack/executors/__init__.py +11 -0
- crackerjack/executors/async_hook_executor.py +431 -0
- crackerjack/executors/cached_hook_executor.py +242 -0
- crackerjack/executors/hook_executor.py +345 -0
- crackerjack/executors/individual_hook_executor.py +669 -0
- crackerjack/intelligence/__init__.py +44 -0
- crackerjack/intelligence/adaptive_learning.py +751 -0
- crackerjack/intelligence/agent_orchestrator.py +551 -0
- crackerjack/intelligence/agent_registry.py +414 -0
- crackerjack/intelligence/agent_selector.py +502 -0
- crackerjack/intelligence/integration.py +290 -0
- crackerjack/interactive.py +576 -315
- crackerjack/managers/__init__.py +11 -0
- crackerjack/managers/async_hook_manager.py +135 -0
- crackerjack/managers/hook_manager.py +137 -0
- crackerjack/managers/publish_manager.py +433 -0
- crackerjack/managers/test_command_builder.py +151 -0
- crackerjack/managers/test_executor.py +443 -0
- crackerjack/managers/test_manager.py +258 -0
- crackerjack/managers/test_manager_backup.py +1124 -0
- crackerjack/managers/test_progress.py +114 -0
- crackerjack/mcp/__init__.py +0 -0
- crackerjack/mcp/cache.py +336 -0
- crackerjack/mcp/client_runner.py +104 -0
- crackerjack/mcp/context.py +621 -0
- crackerjack/mcp/dashboard.py +636 -0
- crackerjack/mcp/enhanced_progress_monitor.py +479 -0
- crackerjack/mcp/file_monitor.py +336 -0
- crackerjack/mcp/progress_components.py +569 -0
- crackerjack/mcp/progress_monitor.py +949 -0
- crackerjack/mcp/rate_limiter.py +332 -0
- crackerjack/mcp/server.py +22 -0
- crackerjack/mcp/server_core.py +244 -0
- crackerjack/mcp/service_watchdog.py +501 -0
- crackerjack/mcp/state.py +395 -0
- crackerjack/mcp/task_manager.py +257 -0
- crackerjack/mcp/tools/__init__.py +17 -0
- crackerjack/mcp/tools/core_tools.py +249 -0
- crackerjack/mcp/tools/error_analyzer.py +308 -0
- crackerjack/mcp/tools/execution_tools.py +372 -0
- crackerjack/mcp/tools/execution_tools_backup.py +1097 -0
- crackerjack/mcp/tools/intelligence_tool_registry.py +80 -0
- crackerjack/mcp/tools/intelligence_tools.py +314 -0
- crackerjack/mcp/tools/monitoring_tools.py +502 -0
- crackerjack/mcp/tools/proactive_tools.py +384 -0
- crackerjack/mcp/tools/progress_tools.py +217 -0
- crackerjack/mcp/tools/utility_tools.py +341 -0
- crackerjack/mcp/tools/workflow_executor.py +565 -0
- crackerjack/mcp/websocket/__init__.py +14 -0
- crackerjack/mcp/websocket/app.py +39 -0
- crackerjack/mcp/websocket/endpoints.py +559 -0
- crackerjack/mcp/websocket/jobs.py +253 -0
- crackerjack/mcp/websocket/server.py +116 -0
- crackerjack/mcp/websocket/websocket_handler.py +78 -0
- crackerjack/mcp/websocket_server.py +10 -0
- crackerjack/models/__init__.py +31 -0
- crackerjack/models/config.py +93 -0
- crackerjack/models/config_adapter.py +230 -0
- crackerjack/models/protocols.py +118 -0
- crackerjack/models/task.py +154 -0
- crackerjack/monitoring/ai_agent_watchdog.py +450 -0
- crackerjack/monitoring/regression_prevention.py +638 -0
- crackerjack/orchestration/__init__.py +0 -0
- crackerjack/orchestration/advanced_orchestrator.py +970 -0
- crackerjack/orchestration/coverage_improvement.py +223 -0
- crackerjack/orchestration/execution_strategies.py +341 -0
- crackerjack/orchestration/test_progress_streamer.py +636 -0
- crackerjack/plugins/__init__.py +15 -0
- crackerjack/plugins/base.py +200 -0
- crackerjack/plugins/hooks.py +246 -0
- crackerjack/plugins/loader.py +335 -0
- crackerjack/plugins/managers.py +259 -0
- crackerjack/py313.py +8 -3
- crackerjack/services/__init__.py +22 -0
- crackerjack/services/cache.py +314 -0
- crackerjack/services/config.py +358 -0
- crackerjack/services/config_integrity.py +99 -0
- crackerjack/services/contextual_ai_assistant.py +516 -0
- crackerjack/services/coverage_ratchet.py +356 -0
- crackerjack/services/debug.py +736 -0
- crackerjack/services/dependency_monitor.py +617 -0
- crackerjack/services/enhanced_filesystem.py +439 -0
- crackerjack/services/file_hasher.py +151 -0
- crackerjack/services/filesystem.py +421 -0
- crackerjack/services/git.py +176 -0
- crackerjack/services/health_metrics.py +611 -0
- crackerjack/services/initialization.py +873 -0
- crackerjack/services/log_manager.py +286 -0
- crackerjack/services/logging.py +174 -0
- crackerjack/services/metrics.py +578 -0
- crackerjack/services/pattern_cache.py +362 -0
- crackerjack/services/pattern_detector.py +515 -0
- crackerjack/services/performance_benchmarks.py +653 -0
- crackerjack/services/security.py +163 -0
- crackerjack/services/server_manager.py +234 -0
- crackerjack/services/smart_scheduling.py +144 -0
- crackerjack/services/tool_version_service.py +61 -0
- crackerjack/services/unified_config.py +437 -0
- crackerjack/services/version_checker.py +248 -0
- crackerjack/slash_commands/__init__.py +14 -0
- crackerjack/slash_commands/init.md +122 -0
- crackerjack/slash_commands/run.md +163 -0
- crackerjack/slash_commands/status.md +127 -0
- crackerjack-0.31.7.dist-info/METADATA +742 -0
- crackerjack-0.31.7.dist-info/RECORD +149 -0
- crackerjack-0.31.7.dist-info/entry_points.txt +2 -0
- crackerjack/.gitignore +0 -34
- crackerjack/.libcst.codemod.yaml +0 -18
- crackerjack/.pdm.toml +0 -1
- crackerjack/crackerjack.py +0 -3805
- crackerjack/pyproject.toml +0 -286
- crackerjack-0.30.3.dist-info/METADATA +0 -1290
- crackerjack-0.30.3.dist-info/RECORD +0 -16
- {crackerjack-0.30.3.dist-info → crackerjack-0.31.7.dist-info}/WHEEL +0 -0
- {crackerjack-0.30.3.dist-info → crackerjack-0.31.7.dist-info}/licenses/LICENSE +0 -0
crackerjack/pyproject.toml
DELETED
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
build-backend = "hatchling.build"
|
|
3
|
-
requires = [ "hatchling" ]
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "crackerjack"
|
|
7
|
-
version = "0.30.2"
|
|
8
|
-
description = "Crackerjack: code quality toolkit"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
keywords = [
|
|
11
|
-
"bandit",
|
|
12
|
-
"black",
|
|
13
|
-
"creosote",
|
|
14
|
-
"mypy",
|
|
15
|
-
"pyright",
|
|
16
|
-
"pytest",
|
|
17
|
-
"refurb",
|
|
18
|
-
"ruff",
|
|
19
|
-
]
|
|
20
|
-
license.text = "BSD-3-CLAUSE"
|
|
21
|
-
maintainers = [
|
|
22
|
-
{ name = "lesleslie", email = "les@wedgwoodwebworks.com" },
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
authors = [
|
|
26
|
-
{ name = "lesleslie", email = "les@wedgwoodwebworks.com" },
|
|
27
|
-
]
|
|
28
|
-
requires-python = ">=3.13"
|
|
29
|
-
classifiers = [
|
|
30
|
-
"Development Status :: 4 - Beta",
|
|
31
|
-
"Environment :: Console",
|
|
32
|
-
"License :: OSI Approved :: BSD License",
|
|
33
|
-
"Operating System :: POSIX",
|
|
34
|
-
"Programming Language :: Python",
|
|
35
|
-
"Programming Language :: Python :: 3 :: Only",
|
|
36
|
-
"Programming Language :: Python :: 3.13",
|
|
37
|
-
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
38
|
-
"Topic :: Software Development :: Quality Assurance",
|
|
39
|
-
"Topic :: Software Development :: Testing",
|
|
40
|
-
"Topic :: Utilities",
|
|
41
|
-
"Typing :: Typed",
|
|
42
|
-
]
|
|
43
|
-
dependencies = [
|
|
44
|
-
"aiofiles>=24.1",
|
|
45
|
-
"autotyping>=24.9",
|
|
46
|
-
"hatchling>=1.25",
|
|
47
|
-
"jinja2>=3.1",
|
|
48
|
-
"keyring>=25.6",
|
|
49
|
-
"pre-commit>=4.2",
|
|
50
|
-
"pydantic>=2.11.7",
|
|
51
|
-
"pyleak>=0.1.14",
|
|
52
|
-
"pytest>=8.4.1",
|
|
53
|
-
"pytest-asyncio>=1",
|
|
54
|
-
"pytest-benchmark>=5.1",
|
|
55
|
-
"pytest-cov>=6.2.1",
|
|
56
|
-
"pytest-mock>=3.14.1",
|
|
57
|
-
"pytest-timeout>=2.4",
|
|
58
|
-
"pytest-xdist>=3.8",
|
|
59
|
-
"pyyaml>=6.0.2",
|
|
60
|
-
"rich>=14",
|
|
61
|
-
"tomli-w>=1.2",
|
|
62
|
-
"typer>=0.16",
|
|
63
|
-
"uv>=0.7.20",
|
|
64
|
-
]
|
|
65
|
-
urls.documentation = "https://github.com/lesleslie/crackerjack"
|
|
66
|
-
urls.homepage = "https://github.com/lesleslie/crackerjack"
|
|
67
|
-
urls.repository = "https://github.com/lesleslie/crackerjack"
|
|
68
|
-
|
|
69
|
-
[dependency-groups]
|
|
70
|
-
dev = [
|
|
71
|
-
"complexipy>=3.3",
|
|
72
|
-
"pyyaml>=6.0.2",
|
|
73
|
-
"refurb>=2.1",
|
|
74
|
-
]
|
|
75
|
-
|
|
76
|
-
[tool.ruff]
|
|
77
|
-
target-version = "py313"
|
|
78
|
-
line-length = 88
|
|
79
|
-
fix = true
|
|
80
|
-
unsafe-fixes = true
|
|
81
|
-
|
|
82
|
-
show-fixes = true
|
|
83
|
-
output-format = "full"
|
|
84
|
-
format.docstring-code-format = true
|
|
85
|
-
lint.extend-select = [
|
|
86
|
-
"C901",
|
|
87
|
-
"F", # pyflakes
|
|
88
|
-
"I",
|
|
89
|
-
"UP", # pyupgrade (includes F-string conversion)
|
|
90
|
-
]
|
|
91
|
-
lint.ignore = [
|
|
92
|
-
"E402", # Module level import not at top - sometimes necessary
|
|
93
|
-
"F821", # Undefined name - can be resolved with proper imports
|
|
94
|
-
]
|
|
95
|
-
lint.fixable = [ "ALL" ]
|
|
96
|
-
lint.unfixable = [ ]
|
|
97
|
-
lint.isort.no-lines-before = [
|
|
98
|
-
"first-party",
|
|
99
|
-
]
|
|
100
|
-
lint.mccabe.max-complexity = 13
|
|
101
|
-
|
|
102
|
-
[tool.codespell]
|
|
103
|
-
skip = "*/data/*"
|
|
104
|
-
quiet-level = 3
|
|
105
|
-
ignore-words-list = "crate,uptodate,nd,nin"
|
|
106
|
-
|
|
107
|
-
[tool.pyproject-fmt]
|
|
108
|
-
column_width = 120
|
|
109
|
-
indent = 4
|
|
110
|
-
|
|
111
|
-
[tool.pytest.ini_options]
|
|
112
|
-
# Core pytest configuration
|
|
113
|
-
asyncio_mode = "auto"
|
|
114
|
-
asyncio_default_fixture_loop_scope = "function"
|
|
115
|
-
python_files = [ "test_*.py", "*_test.py" ]
|
|
116
|
-
testpaths = [ "tests", "crackerjack" ]
|
|
117
|
-
python_classes = [ "Test*" ]
|
|
118
|
-
python_functions = [ "test_*" ]
|
|
119
|
-
|
|
120
|
-
# Markers
|
|
121
|
-
markers = [
|
|
122
|
-
"unit: marks test as a unit test",
|
|
123
|
-
"benchmark: mark test as a benchmark (disables parallel execution)",
|
|
124
|
-
"integration: marks test as an integration test",
|
|
125
|
-
"no_leaks: detect asyncio task leaks, thread leaks, and event loop blocking",
|
|
126
|
-
]
|
|
127
|
-
|
|
128
|
-
# Default timeout settings
|
|
129
|
-
timeout = 300
|
|
130
|
-
timeout_method = "thread"
|
|
131
|
-
|
|
132
|
-
# Test command options
|
|
133
|
-
addopts = "--cov=crackerjack --cov-report=term --cov-fail-under=42"
|
|
134
|
-
|
|
135
|
-
# Filter out benchmark warnings when xdist is active
|
|
136
|
-
filterwarnings = [
|
|
137
|
-
"ignore::pytest_benchmark.logger.PytestBenchmarkWarning",
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
[tool.pytest.benchmark]
|
|
141
|
-
disable_gc = true
|
|
142
|
-
warmup = false
|
|
143
|
-
warmup_iterations = 0
|
|
144
|
-
min_rounds = 1
|
|
145
|
-
max_time = 5.0
|
|
146
|
-
|
|
147
|
-
[tool.coverage.run]
|
|
148
|
-
branch = false
|
|
149
|
-
source = [ "crackerjack" ]
|
|
150
|
-
data_file = ".coverage"
|
|
151
|
-
parallel = false
|
|
152
|
-
omit = [
|
|
153
|
-
"*/tests/*",
|
|
154
|
-
"*/site-packages/*",
|
|
155
|
-
"*/__pycache__/*",
|
|
156
|
-
"*/__init__.py",
|
|
157
|
-
"*/_version.py",
|
|
158
|
-
"*/conftest.py",
|
|
159
|
-
"*/test_*.py",
|
|
160
|
-
"*/_test.py",
|
|
161
|
-
]
|
|
162
|
-
|
|
163
|
-
[tool.coverage.report]
|
|
164
|
-
exclude_also = [
|
|
165
|
-
"pragma: no cover",
|
|
166
|
-
"def __repr__",
|
|
167
|
-
"raise NotImplementedError",
|
|
168
|
-
"if __name__ == .__main__.:",
|
|
169
|
-
"pass",
|
|
170
|
-
"raise ImportError",
|
|
171
|
-
"except ImportError",
|
|
172
|
-
"def __str__",
|
|
173
|
-
"@abstractmethod",
|
|
174
|
-
]
|
|
175
|
-
ignore_errors = false
|
|
176
|
-
|
|
177
|
-
[tool.pyright]
|
|
178
|
-
verboseOutput = true
|
|
179
|
-
include = [
|
|
180
|
-
"crackerjack",
|
|
181
|
-
"tests",
|
|
182
|
-
]
|
|
183
|
-
exclude = [
|
|
184
|
-
"scratch",
|
|
185
|
-
".venv",
|
|
186
|
-
"build",
|
|
187
|
-
"dist",
|
|
188
|
-
]
|
|
189
|
-
extraPaths = [
|
|
190
|
-
".venv/lib/python3.13/site-packages/",
|
|
191
|
-
]
|
|
192
|
-
typeCheckingMode = "strict"
|
|
193
|
-
# Enhanced strictness - only disable what's absolutely necessary
|
|
194
|
-
reportMissingTypeStubs = false # Third-party libraries often lack stubs
|
|
195
|
-
reportOptionalMemberAccess = "warning" # Upgrade from false to warning
|
|
196
|
-
reportOptionalCall = "warning" # Upgrade from false to warning
|
|
197
|
-
reportUnknownMemberType = "warning" # Upgrade from false to warning
|
|
198
|
-
reportUnknownVariableType = false # Too noisy for dynamic code
|
|
199
|
-
reportUnknownArgumentType = "warning" # Upgrade from false to warning
|
|
200
|
-
reportInvalidTypeForm = "warning" # Upgrade from false to warning
|
|
201
|
-
reportUnknownLambdaType = "warning" # Upgrade from false to warning
|
|
202
|
-
reportUnknownParameterType = "warning"
|
|
203
|
-
reportPrivateUsage = "warning" # Upgrade from false to warning
|
|
204
|
-
reportUnnecessaryTypeIgnoreComment = "warning" # New - catch unused ignores
|
|
205
|
-
reportUnnecessaryComparison = "warning" # New - catch unnecessary comparisons
|
|
206
|
-
reportConstantRedefinition = "warning" # New - catch constant redefinitions
|
|
207
|
-
pythonVersion = "3.13"
|
|
208
|
-
|
|
209
|
-
[tool.uv]
|
|
210
|
-
keyring-provider = "subprocess"
|
|
211
|
-
publish-url = "https://upload.pypi.org/legacy/"
|
|
212
|
-
check-url = "https://pypi.org/simple/"
|
|
213
|
-
|
|
214
|
-
[tool.vulture]
|
|
215
|
-
min_confidence = 86
|
|
216
|
-
paths = [ "crackerjack" ]
|
|
217
|
-
ignore_names = [ "cls" ]
|
|
218
|
-
|
|
219
|
-
[tool.creosote]
|
|
220
|
-
paths = [
|
|
221
|
-
"crackerjack",
|
|
222
|
-
]
|
|
223
|
-
deps-file = "pyproject.toml"
|
|
224
|
-
exclude-deps = [
|
|
225
|
-
"autotyping",
|
|
226
|
-
"hatchling",
|
|
227
|
-
"pre-commit",
|
|
228
|
-
"pytest",
|
|
229
|
-
"pytest-asyncio",
|
|
230
|
-
"pytest-cov",
|
|
231
|
-
"pytest-mock",
|
|
232
|
-
"pytest-xdist",
|
|
233
|
-
"pytest-benchmark",
|
|
234
|
-
"pyfiglet",
|
|
235
|
-
"pyyaml",
|
|
236
|
-
"uv",
|
|
237
|
-
"tomli-w",
|
|
238
|
-
"google-crc32c",
|
|
239
|
-
"pytest-timeout",
|
|
240
|
-
"keyring",
|
|
241
|
-
"inflection",
|
|
242
|
-
"pydantic-settings",
|
|
243
|
-
"pyleak",
|
|
244
|
-
]
|
|
245
|
-
|
|
246
|
-
[tool.refurb]
|
|
247
|
-
enable_all = true
|
|
248
|
-
quiet = true
|
|
249
|
-
# Enable Python 3.13+ specific modernizations
|
|
250
|
-
python_version = "3.13"
|
|
251
|
-
|
|
252
|
-
[tool.bandit]
|
|
253
|
-
target = [
|
|
254
|
-
"crackerjack",
|
|
255
|
-
"tests", # Include tests for security analysis
|
|
256
|
-
]
|
|
257
|
-
# Minimal skips - only skip what's absolutely necessary for this codebase
|
|
258
|
-
skips = [
|
|
259
|
-
"B101", # assert_used - tests legitimately use assert
|
|
260
|
-
"B603", # subprocess_without_shell_equals_true - we use shell=False safely
|
|
261
|
-
"B607", # start_process_with_partial_path - controlled subprocess calls
|
|
262
|
-
]
|
|
263
|
-
# Enhanced security scanning
|
|
264
|
-
exclude_dirs = [
|
|
265
|
-
"tests/data", # Test data might contain examples
|
|
266
|
-
]
|
|
267
|
-
|
|
268
|
-
# Autotyping optimization
|
|
269
|
-
|
|
270
|
-
[tool.autotyping]
|
|
271
|
-
exclude = [
|
|
272
|
-
"tests/data/*",
|
|
273
|
-
"*/conftest.py",
|
|
274
|
-
]
|
|
275
|
-
safe = true
|
|
276
|
-
aggressive = true
|
|
277
|
-
|
|
278
|
-
# Code complexity monitoring
|
|
279
|
-
|
|
280
|
-
[tool.complexipy]
|
|
281
|
-
default_pattern = "**/*.py"
|
|
282
|
-
exclude_patterns = [
|
|
283
|
-
"**/tests/**",
|
|
284
|
-
"**/test_*.py",
|
|
285
|
-
]
|
|
286
|
-
max_complexity = 13
|