crackerjack 0.26.0__py3-none-any.whl → 0.27.0__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/.gitignore +11 -0
- crackerjack/.pre-commit-config-ai.yaml +54 -34
- crackerjack/.pre-commit-config.yaml +23 -4
- crackerjack/__main__.py +22 -1
- crackerjack/crackerjack.py +1360 -39
- crackerjack/pyproject.toml +68 -30
- {crackerjack-0.26.0.dist-info → crackerjack-0.27.0.dist-info}/METADATA +2 -1
- crackerjack-0.27.0.dist-info/RECORD +16 -0
- crackerjack-0.26.0.dist-info/RECORD +0 -16
- {crackerjack-0.26.0.dist-info → crackerjack-0.27.0.dist-info}/WHEEL +0 -0
- {crackerjack-0.26.0.dist-info → crackerjack-0.27.0.dist-info}/licenses/LICENSE +0 -0
crackerjack/pyproject.toml
CHANGED
|
@@ -4,7 +4,7 @@ requires = [ "hatchling" ]
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crackerjack"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.26.0"
|
|
8
8
|
description = "Crackerjack: code quality toolkit"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
keywords = [
|
|
@@ -41,6 +41,7 @@ classifiers = [
|
|
|
41
41
|
"Typing :: Typed",
|
|
42
42
|
]
|
|
43
43
|
dependencies = [
|
|
44
|
+
"aiofiles>=24.1",
|
|
44
45
|
"autotyping>=24.9",
|
|
45
46
|
"hatchling>=1.25",
|
|
46
47
|
"keyring>=25.6",
|
|
@@ -86,17 +87,15 @@ lint.extend-select = [
|
|
|
86
87
|
"UP", # pyupgrade (includes F-string conversion)
|
|
87
88
|
]
|
|
88
89
|
lint.ignore = [
|
|
89
|
-
"D100",
|
|
90
|
-
"D101",
|
|
91
|
-
"D102",
|
|
92
|
-
"D103",
|
|
93
|
-
"D104",
|
|
94
|
-
"D105",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"F821",
|
|
99
|
-
"UP040",
|
|
90
|
+
"D100", # Missing docstring in public module - can be safely enabled
|
|
91
|
+
"D101", # Missing docstring in public class - conflicts with code cleaning
|
|
92
|
+
"D102", # Missing docstring in public method - conflicts with code cleaning
|
|
93
|
+
"D103", # Missing docstring in public function - conflicts with code cleaning
|
|
94
|
+
"D104", # Missing docstring in public package - package level docs
|
|
95
|
+
"D105", # Missing docstring in magic method - conflicts with code cleaning
|
|
96
|
+
"D107", # Missing docstring in __init__ - conflicts with code cleaning
|
|
97
|
+
"E402", # Module level import not at top - sometimes necessary
|
|
98
|
+
"F821", # Undefined name - can be resolved with proper imports
|
|
100
99
|
]
|
|
101
100
|
lint.fixable = [ "ALL" ]
|
|
102
101
|
lint.unfixable = [ ]
|
|
@@ -185,24 +184,32 @@ ignore_errors = false
|
|
|
185
184
|
verboseOutput = true
|
|
186
185
|
include = [
|
|
187
186
|
"crackerjack",
|
|
187
|
+
"tests",
|
|
188
188
|
]
|
|
189
189
|
exclude = [
|
|
190
190
|
"scratch",
|
|
191
|
+
".venv",
|
|
192
|
+
"build",
|
|
193
|
+
"dist",
|
|
191
194
|
]
|
|
192
195
|
extraPaths = [
|
|
193
196
|
".venv/lib/python3.13/site-packages/",
|
|
194
197
|
]
|
|
195
198
|
typeCheckingMode = "strict"
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
199
|
+
# Enhanced strictness - only disable what's absolutely necessary
|
|
200
|
+
reportMissingTypeStubs = false # Third-party libraries often lack stubs
|
|
201
|
+
reportOptionalMemberAccess = "warning" # Upgrade from false to warning
|
|
202
|
+
reportOptionalCall = "warning" # Upgrade from false to warning
|
|
203
|
+
reportUnknownMemberType = "warning" # Upgrade from false to warning
|
|
204
|
+
reportUnknownVariableType = false # Too noisy for dynamic code
|
|
205
|
+
reportUnknownArgumentType = "warning" # Upgrade from false to warning
|
|
206
|
+
reportInvalidTypeForm = "warning" # Upgrade from false to warning
|
|
207
|
+
reportUnknownLambdaType = "warning" # Upgrade from false to warning
|
|
204
208
|
reportUnknownParameterType = "warning"
|
|
205
|
-
reportPrivateUsage = false
|
|
209
|
+
reportPrivateUsage = "warning" # Upgrade from false to warning
|
|
210
|
+
reportUnnecessaryTypeIgnoreComment = "warning" # New - catch unused ignores
|
|
211
|
+
reportUnnecessaryComparison = "warning" # New - catch unnecessary comparisons
|
|
212
|
+
reportConstantRedefinition = "warning" # New - catch constant redefinitions
|
|
206
213
|
pythonVersion = "3.13"
|
|
207
214
|
|
|
208
215
|
[tool.uv]
|
|
@@ -245,19 +252,50 @@ exclude-deps = [
|
|
|
245
252
|
[tool.refurb]
|
|
246
253
|
enable_all = true
|
|
247
254
|
quiet = true
|
|
255
|
+
# Enable Python 3.13+ specific modernizations
|
|
256
|
+
python_version = "3.13"
|
|
248
257
|
|
|
249
258
|
[tool.bandit]
|
|
250
259
|
target = [
|
|
251
260
|
"crackerjack",
|
|
261
|
+
"tests", # Include tests for security analysis
|
|
252
262
|
]
|
|
263
|
+
# Minimal skips - only skip what's absolutely necessary for this codebase
|
|
253
264
|
skips = [
|
|
254
|
-
"B101",
|
|
255
|
-
"
|
|
256
|
-
"
|
|
257
|
-
"B403",
|
|
258
|
-
"B404",
|
|
259
|
-
"B602",
|
|
260
|
-
"B603",
|
|
261
|
-
"B607",
|
|
262
|
-
"B704",
|
|
265
|
+
"B101", # assert_used - tests legitimately use assert
|
|
266
|
+
"B603", # subprocess_without_shell_equals_true - we use shell=False safely
|
|
267
|
+
"B607", # start_process_with_partial_path - controlled subprocess calls
|
|
263
268
|
]
|
|
269
|
+
# Enhanced security scanning
|
|
270
|
+
exclude_dirs = [
|
|
271
|
+
"tests/data", # Test data might contain examples
|
|
272
|
+
]
|
|
273
|
+
|
|
274
|
+
# Enhanced documentation quality
|
|
275
|
+
|
|
276
|
+
[tool.pydocstyle]
|
|
277
|
+
convention = "google"
|
|
278
|
+
add-ignore = [
|
|
279
|
+
"D100", # Missing docstring in public module
|
|
280
|
+
"D104", # Missing docstring in public package
|
|
281
|
+
]
|
|
282
|
+
|
|
283
|
+
# Autotyping optimization
|
|
284
|
+
|
|
285
|
+
[tool.autotyping]
|
|
286
|
+
exclude = [
|
|
287
|
+
"tests/data/*",
|
|
288
|
+
"*/conftest.py",
|
|
289
|
+
]
|
|
290
|
+
safe = true
|
|
291
|
+
aggressive = true
|
|
292
|
+
|
|
293
|
+
# Code complexity monitoring
|
|
294
|
+
|
|
295
|
+
[tool.complexipy]
|
|
296
|
+
default_pattern = "**/*.py"
|
|
297
|
+
exclude_patterns = [
|
|
298
|
+
"**/tests/**",
|
|
299
|
+
"**/test_*.py",
|
|
300
|
+
]
|
|
301
|
+
max_complexity = 13
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crackerjack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.0
|
|
4
4
|
Summary: Crackerjack: code quality toolkit
|
|
5
5
|
Project-URL: documentation, https://github.com/lesleslie/crackerjack
|
|
6
6
|
Project-URL: homepage, https://github.com/lesleslie/crackerjack
|
|
@@ -23,6 +23,7 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
23
23
|
Classifier: Topic :: Utilities
|
|
24
24
|
Classifier: Typing :: Typed
|
|
25
25
|
Requires-Python: >=3.13
|
|
26
|
+
Requires-Dist: aiofiles>=24.1
|
|
26
27
|
Requires-Dist: autotyping>=24.9
|
|
27
28
|
Requires-Dist: hatchling>=1.25
|
|
28
29
|
Requires-Dist: keyring>=25.6
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
crackerjack/.gitignore,sha256=_d0WeGfNZQeCgzJXmjL9LKf-6jjytBulH-ZfWiIOZWI,453
|
|
2
|
+
crackerjack/.libcst.codemod.yaml,sha256=a8DlErRAIPV1nE6QlyXPAzTOgkB24_spl2E9hphuf5s,772
|
|
3
|
+
crackerjack/.pdm.toml,sha256=dZe44HRcuxxCFESGG8SZIjmc-cGzSoyK3Hs6t4NYA8w,23
|
|
4
|
+
crackerjack/.pre-commit-config-ai.yaml,sha256=-8WIT-6l6crGnQBlX-z3G6-3mKUsBWsURRyeti1ySmI,4267
|
|
5
|
+
crackerjack/.pre-commit-config.yaml,sha256=VcK0a32l_OjR-b9hkfXS-eSQORBxsS0QyaVQXPz8jOc,3345
|
|
6
|
+
crackerjack/__init__.py,sha256=8tBSPAru_YDuPpjz05cL7pNbZjYFoRT_agGd_FWa3gY,839
|
|
7
|
+
crackerjack/__main__.py,sha256=4BxL6-o1wrfouAgcXd91eInS2FJiEyhT3a6V5ZfnBWU,7082
|
|
8
|
+
crackerjack/crackerjack.py,sha256=5JZKO_CjbTmiQAVDlso7XSkfTWbs-O80H_3UUEjs79o,102989
|
|
9
|
+
crackerjack/errors.py,sha256=Wcv0rXfzV9pHOoXYrhQEjyJd4kUUBbdiY-5M9nI8pDw,4050
|
|
10
|
+
crackerjack/interactive.py,sha256=pFItgRUyjOakABLCRz6nIp6_Ycx2LBSeojpYNiTelv0,16126
|
|
11
|
+
crackerjack/py313.py,sha256=buYE7LO11Q64ffowEhTZRFQoAGj_8sg3DTlZuv8M9eo,5890
|
|
12
|
+
crackerjack/pyproject.toml,sha256=7lWQyzNq4anXZVpfDmIRkJZc3pXso-LbCHAI4rKnZIw,7647
|
|
13
|
+
crackerjack-0.27.0.dist-info/METADATA,sha256=6HxK2bFU_5w-0-Uxr0LVWaCISHmUOSpzsDiV2XITUes,28788
|
|
14
|
+
crackerjack-0.27.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
15
|
+
crackerjack-0.27.0.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
|
|
16
|
+
crackerjack-0.27.0.dist-info/RECORD,,
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
crackerjack/.gitignore,sha256=n8cD6U16L3XZn__PvhYm_F7-YeFHFucHCyxWj2NZCGs,259
|
|
2
|
-
crackerjack/.libcst.codemod.yaml,sha256=a8DlErRAIPV1nE6QlyXPAzTOgkB24_spl2E9hphuf5s,772
|
|
3
|
-
crackerjack/.pdm.toml,sha256=dZe44HRcuxxCFESGG8SZIjmc-cGzSoyK3Hs6t4NYA8w,23
|
|
4
|
-
crackerjack/.pre-commit-config-ai.yaml,sha256=0TDQp0HIiRiy5q09H0ytJk3M6l3rLOdJNWHgkHIRCGA,3274
|
|
5
|
-
crackerjack/.pre-commit-config.yaml,sha256=gXFolNsl6aBeyAefmJ6igmwaNtUHjyfziocBDiulRwU,2642
|
|
6
|
-
crackerjack/__init__.py,sha256=8tBSPAru_YDuPpjz05cL7pNbZjYFoRT_agGd_FWa3gY,839
|
|
7
|
-
crackerjack/__main__.py,sha256=-h6Au8CGHS9QdzzbDMGzKHAlNEx7cYmzCrV4g4vV19k,6407
|
|
8
|
-
crackerjack/crackerjack.py,sha256=iYzhBdEvhCdyrqv-t0jQ862JNn3rwV15P2beaOzu3zs,49463
|
|
9
|
-
crackerjack/errors.py,sha256=Wcv0rXfzV9pHOoXYrhQEjyJd4kUUBbdiY-5M9nI8pDw,4050
|
|
10
|
-
crackerjack/interactive.py,sha256=pFItgRUyjOakABLCRz6nIp6_Ycx2LBSeojpYNiTelv0,16126
|
|
11
|
-
crackerjack/py313.py,sha256=buYE7LO11Q64ffowEhTZRFQoAGj_8sg3DTlZuv8M9eo,5890
|
|
12
|
-
crackerjack/pyproject.toml,sha256=twaeui2pJCQnpe92JN1ACxUEHJrGb4T6F6m2Jazc4JI,5401
|
|
13
|
-
crackerjack-0.26.0.dist-info/METADATA,sha256=m2Xb72Fq2Py8_QE_Lu61MccpxVMYZtspu75sZ4M7l00,28758
|
|
14
|
-
crackerjack-0.26.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
15
|
-
crackerjack-0.26.0.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
|
|
16
|
-
crackerjack-0.26.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|