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.

@@ -4,7 +4,7 @@ requires = [ "hatchling" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.25.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
- "D106",
96
- "D107",
97
- "E402",
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
- reportMissingTypeStubs = false
197
- reportOptionalMemberAccess = false
198
- reportOptionalCall = false
199
- reportUnknownMemberType = false
200
- reportUnknownVariableType = false
201
- reportUnknownArgumentType = false
202
- reportInvalidTypeForm = false
203
- reportUnknownLambdaType = false
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
- "B301",
256
- "B311",
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.26.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,,