crackerjack 0.20.1__tar.gz → 0.20.2__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.

Potentially problematic release.


This version of crackerjack might be problematic. Click here for more details.

Files changed (85) hide show
  1. {crackerjack-0.20.1 → crackerjack-0.20.2}/PKG-INFO +59 -3
  2. {crackerjack-0.20.1 → crackerjack-0.20.2}/README.md +58 -2
  3. crackerjack-0.20.2/crackerjack/.ruff_cache/0.11.13/1867267426380906393 +0 -0
  4. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/pyproject.toml +1 -1
  5. {crackerjack-0.20.1 → crackerjack-0.20.2}/pyproject.toml +1 -1
  6. crackerjack-0.20.1/crackerjack/.ruff_cache/0.11.13/1867267426380906393 +0 -0
  7. {crackerjack-0.20.1 → crackerjack-0.20.2}/LICENSE +0 -0
  8. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.gitignore +0 -0
  9. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.libcst.codemod.yaml +0 -0
  10. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pdm.toml +0 -0
  11. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pre-commit-config.yaml +0 -0
  12. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pytest_cache/.gitignore +0 -0
  13. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pytest_cache/CACHEDIR.TAG +0 -0
  14. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pytest_cache/README.md +0 -0
  15. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pytest_cache/v/cache/nodeids +0 -0
  16. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.pytest_cache/v/cache/stepwise +0 -0
  17. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/.gitignore +0 -0
  18. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
  19. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
  20. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
  21. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
  22. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
  23. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
  24. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.11/18187162184424859798 +0 -0
  25. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.12/16869036553936192448 +0 -0
  26. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.12/1867267426380906393 +0 -0
  27. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.12/4240757255861806333 +0 -0
  28. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.12/4441409093023629623 +0 -0
  29. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
  30. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
  31. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
  32. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
  33. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
  34. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
  35. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
  36. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
  37. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
  38. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
  39. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
  40. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
  41. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
  42. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
  43. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
  44. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
  45. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
  46. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
  47. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
  48. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
  49. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
  50. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
  51. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
  52. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
  53. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
  54. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
  55. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
  56. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
  57. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
  58. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
  59. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
  60. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
  61. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
  62. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/.ruff_cache/CACHEDIR.TAG +0 -0
  63. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/__init__.py +0 -0
  64. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/__main__.py +0 -0
  65. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/crackerjack.py +0 -0
  66. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/errors.py +0 -0
  67. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/interactive.py +0 -0
  68. {crackerjack-0.20.1 → crackerjack-0.20.2}/crackerjack/py313.py +0 -0
  69. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/TESTING.md +0 -0
  70. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/__init__.py +0 -0
  71. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/conftest.py +0 -0
  72. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/data/comments_sample.txt +0 -0
  73. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/data/docstrings_sample.txt +0 -0
  74. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/data/expected_comments_sample.txt +0 -0
  75. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/data/init.py +0 -0
  76. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_crackerjack.py +0 -0
  77. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_crackerjack_runner.py +0 -0
  78. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_errors.py +0 -0
  79. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_interactive.py +0 -0
  80. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_interactive_run.py +0 -0
  81. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_main.py +0 -0
  82. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_py313_advanced.py +0 -0
  83. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_py313_features.py +0 -0
  84. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_pytest_features.py +0 -0
  85. {crackerjack-0.20.1 → crackerjack-0.20.2}/tests/test_structured_errors.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crackerjack
3
- Version: 0.20.1
3
+ Version: 0.20.2
4
4
  Summary: Crackerjack: code quality toolkit
5
5
  Keywords: bandit,black,creosote,mypy,pyright,pytest,refurb,ruff
6
6
  Author-Email: lesleslie <les@wedgwoodwebworks.com>
@@ -192,9 +192,35 @@ Crackerjack provides advanced testing capabilities powered by pytest:
192
192
  ### Standard Testing
193
193
 
194
194
  - **Parallel Test Execution:** Tests run in parallel by default using pytest-xdist for faster execution
195
- - **Timeout Protection:** All tests have a default 60-second timeout to prevent hanging tests
195
+ - **Smart Parallelization:** Automatically adjusts the number of worker processes based on project size
196
+ - **Timeout Protection:** Tests have dynamic timeouts based on project size to prevent hanging tests
196
197
  - **Coverage Reports:** Automatically generates test coverage reports with configurable thresholds
197
198
 
199
+ ### Advanced Test Configuration
200
+
201
+ Crackerjack offers fine-grained control over test execution:
202
+
203
+ - **Worker Control:** Set the number of parallel workers with `--test-workers` (0 = auto-detect, 1 = disable parallelization)
204
+ - **Timeout Control:** Customize test timeouts with `--test-timeout` (in seconds)
205
+ - **Project Size Detection:** Automatically detects project size and adjusts timeout and parallelization settings
206
+ - **Deadlock Prevention:** Uses advanced threading techniques to prevent deadlocks in test output processing
207
+ - **Progress Tracking:** Shows periodic heartbeat messages for long-running tests
208
+
209
+ Example test execution options:
210
+ ```bash
211
+ # Run tests with a single worker (no parallelization)
212
+ python -m crackerjack -t --test-workers=1
213
+
214
+ # Run tests with a specific number of workers (e.g., 4)
215
+ python -m crackerjack -t --test-workers=4
216
+
217
+ # Run tests with a custom timeout (5 minutes per test)
218
+ python -m crackerjack -t --test-timeout=300
219
+
220
+ # Combine options for maximum control
221
+ python -m crackerjack -t --test-workers=2 --test-timeout=600
222
+ ```
223
+
198
224
  ### Benchmark Testing
199
225
 
200
226
  Crackerjack includes benchmark testing capabilities:
@@ -278,10 +304,16 @@ class MyOptions:
278
304
  # Process options
279
305
  self.clean = True # Clean code (remove docstrings, comments, etc.)
280
306
  self.test = True # Run tests using pytest
307
+ self.skip_hooks = False # Skip running pre-commit hooks
308
+
309
+ # Test execution options
310
+ self.test_workers = 2 # Number of parallel workers (0 = auto-detect, 1 = disable parallelization)
311
+ self.test_timeout = 120 # Timeout in seconds for individual tests (0 = use default based on project size)
312
+
313
+ # Benchmark options
281
314
  self.benchmark = False # Run tests in benchmark mode
282
315
  self.benchmark_regression = False # Fail tests if benchmarks regress beyond threshold
283
316
  self.benchmark_regression_threshold = 5.0 # Threshold percentage for benchmark regression
284
- self.skip_hooks = False # Skip running pre-commit hooks
285
317
 
286
318
  # Version and publishing options
287
319
  self.publish = None # Publish to PyPI (micro, minor, major)
@@ -321,6 +353,8 @@ runner.process(MyOptions())
321
353
  - `-s`, `--skip-hooks`: Skip running pre-commit hooks (useful with `-t`).
322
354
  - `-x`, `--clean`: Clean code by removing docstrings, line comments, and extra whitespace.
323
355
  - `-t`, `--test`: Run tests using `pytest`.
356
+ - `--test-workers`: Set the number of parallel workers for testing (0 = auto-detect, 1 = disable parallelization).
357
+ - `--test-timeout`: Set the timeout in seconds for individual tests (0 = use default based on project size).
324
358
  - `--benchmark`: Run tests in benchmark mode (disables parallel execution).
325
359
  - `--benchmark-regression`: Fail tests if benchmarks regress beyond threshold.
326
360
  - `--benchmark-regression-threshold`: Set threshold percentage for benchmark regression (default 5.0%).
@@ -356,6 +390,28 @@ runner.process(MyOptions())
356
390
  python -m crackerjack -t -s
357
391
  ```
358
392
 
393
+ #### Test Execution Options
394
+
395
+ - **Single-Process Testing** - Run tests sequentially (no parallelization):
396
+ ```bash
397
+ python -m crackerjack -t --test-workers=1
398
+ ```
399
+
400
+ - **Customized Parallel Testing** - Run tests with a specific number of workers:
401
+ ```bash
402
+ python -m crackerjack -t --test-workers=4
403
+ ```
404
+
405
+ - **Long-Running Tests** - Increase test timeout for complex tests:
406
+ ```bash
407
+ python -m crackerjack -t --test-timeout=600
408
+ ```
409
+
410
+ - **Optimized for Large Projects** - Reduce workers and increase timeout for large codebases:
411
+ ```bash
412
+ python -m crackerjack -t --test-workers=2 --test-timeout=300
413
+ ```
414
+
359
415
  #### Version Management
360
416
 
361
417
  - **Bump and Publish** - Bump version and publish to PyPI:
@@ -150,9 +150,35 @@ Crackerjack provides advanced testing capabilities powered by pytest:
150
150
  ### Standard Testing
151
151
 
152
152
  - **Parallel Test Execution:** Tests run in parallel by default using pytest-xdist for faster execution
153
- - **Timeout Protection:** All tests have a default 60-second timeout to prevent hanging tests
153
+ - **Smart Parallelization:** Automatically adjusts the number of worker processes based on project size
154
+ - **Timeout Protection:** Tests have dynamic timeouts based on project size to prevent hanging tests
154
155
  - **Coverage Reports:** Automatically generates test coverage reports with configurable thresholds
155
156
 
157
+ ### Advanced Test Configuration
158
+
159
+ Crackerjack offers fine-grained control over test execution:
160
+
161
+ - **Worker Control:** Set the number of parallel workers with `--test-workers` (0 = auto-detect, 1 = disable parallelization)
162
+ - **Timeout Control:** Customize test timeouts with `--test-timeout` (in seconds)
163
+ - **Project Size Detection:** Automatically detects project size and adjusts timeout and parallelization settings
164
+ - **Deadlock Prevention:** Uses advanced threading techniques to prevent deadlocks in test output processing
165
+ - **Progress Tracking:** Shows periodic heartbeat messages for long-running tests
166
+
167
+ Example test execution options:
168
+ ```bash
169
+ # Run tests with a single worker (no parallelization)
170
+ python -m crackerjack -t --test-workers=1
171
+
172
+ # Run tests with a specific number of workers (e.g., 4)
173
+ python -m crackerjack -t --test-workers=4
174
+
175
+ # Run tests with a custom timeout (5 minutes per test)
176
+ python -m crackerjack -t --test-timeout=300
177
+
178
+ # Combine options for maximum control
179
+ python -m crackerjack -t --test-workers=2 --test-timeout=600
180
+ ```
181
+
156
182
  ### Benchmark Testing
157
183
 
158
184
  Crackerjack includes benchmark testing capabilities:
@@ -236,10 +262,16 @@ class MyOptions:
236
262
  # Process options
237
263
  self.clean = True # Clean code (remove docstrings, comments, etc.)
238
264
  self.test = True # Run tests using pytest
265
+ self.skip_hooks = False # Skip running pre-commit hooks
266
+
267
+ # Test execution options
268
+ self.test_workers = 2 # Number of parallel workers (0 = auto-detect, 1 = disable parallelization)
269
+ self.test_timeout = 120 # Timeout in seconds for individual tests (0 = use default based on project size)
270
+
271
+ # Benchmark options
239
272
  self.benchmark = False # Run tests in benchmark mode
240
273
  self.benchmark_regression = False # Fail tests if benchmarks regress beyond threshold
241
274
  self.benchmark_regression_threshold = 5.0 # Threshold percentage for benchmark regression
242
- self.skip_hooks = False # Skip running pre-commit hooks
243
275
 
244
276
  # Version and publishing options
245
277
  self.publish = None # Publish to PyPI (micro, minor, major)
@@ -279,6 +311,8 @@ runner.process(MyOptions())
279
311
  - `-s`, `--skip-hooks`: Skip running pre-commit hooks (useful with `-t`).
280
312
  - `-x`, `--clean`: Clean code by removing docstrings, line comments, and extra whitespace.
281
313
  - `-t`, `--test`: Run tests using `pytest`.
314
+ - `--test-workers`: Set the number of parallel workers for testing (0 = auto-detect, 1 = disable parallelization).
315
+ - `--test-timeout`: Set the timeout in seconds for individual tests (0 = use default based on project size).
282
316
  - `--benchmark`: Run tests in benchmark mode (disables parallel execution).
283
317
  - `--benchmark-regression`: Fail tests if benchmarks regress beyond threshold.
284
318
  - `--benchmark-regression-threshold`: Set threshold percentage for benchmark regression (default 5.0%).
@@ -314,6 +348,28 @@ runner.process(MyOptions())
314
348
  python -m crackerjack -t -s
315
349
  ```
316
350
 
351
+ #### Test Execution Options
352
+
353
+ - **Single-Process Testing** - Run tests sequentially (no parallelization):
354
+ ```bash
355
+ python -m crackerjack -t --test-workers=1
356
+ ```
357
+
358
+ - **Customized Parallel Testing** - Run tests with a specific number of workers:
359
+ ```bash
360
+ python -m crackerjack -t --test-workers=4
361
+ ```
362
+
363
+ - **Long-Running Tests** - Increase test timeout for complex tests:
364
+ ```bash
365
+ python -m crackerjack -t --test-timeout=600
366
+ ```
367
+
368
+ - **Optimized for Large Projects** - Reduce workers and increase timeout for large codebases:
369
+ ```bash
370
+ python -m crackerjack -t --test-workers=2 --test-timeout=300
371
+ ```
372
+
317
373
  #### Version Management
318
374
 
319
375
  - **Bump and Publish** - Bump version and publish to PyPI:
@@ -4,7 +4,7 @@ requires = [ "pdm-backend" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.20.0"
7
+ version = "0.20.1"
8
8
  description = "Crackerjack: code quality toolkit"
9
9
  readme = "README.md"
10
10
  keywords = [
@@ -6,7 +6,7 @@ requires = [
6
6
 
7
7
  [project]
8
8
  name = "crackerjack"
9
- version = "0.20.1"
9
+ version = "0.20.2"
10
10
  description = "Crackerjack: code quality toolkit"
11
11
  readme = "README.md"
12
12
  keywords = [
File without changes