crackerjack 0.22.1__tar.gz → 0.22.3__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 (90) hide show
  1. {crackerjack-0.22.1 → crackerjack-0.22.3}/PKG-INFO +1 -1
  2. crackerjack-0.22.3/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
  3. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/crackerjack.py +27 -1
  4. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/pyproject.toml +1 -1
  5. {crackerjack-0.22.1 → crackerjack-0.22.3}/pyproject.toml +1 -1
  6. crackerjack-0.22.1/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
  7. {crackerjack-0.22.1 → crackerjack-0.22.3}/LICENSE +0 -0
  8. {crackerjack-0.22.1 → crackerjack-0.22.3}/README.md +0 -0
  9. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.gitignore +0 -0
  10. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.libcst.codemod.yaml +0 -0
  11. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pdm.toml +0 -0
  12. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pre-commit-config-ai.yaml +0 -0
  13. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pre-commit-config.yaml +0 -0
  14. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pytest_cache/.gitignore +0 -0
  15. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pytest_cache/CACHEDIR.TAG +0 -0
  16. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pytest_cache/README.md +0 -0
  17. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pytest_cache/v/cache/nodeids +0 -0
  18. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.pytest_cache/v/cache/stepwise +0 -0
  19. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/.gitignore +0 -0
  20. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
  21. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
  22. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
  23. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
  24. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
  25. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
  26. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.11/18187162184424859798 +0 -0
  27. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.12/16869036553936192448 +0 -0
  28. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.12/1867267426380906393 +0 -0
  29. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.12/4240757255861806333 +0 -0
  30. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.12/4441409093023629623 +0 -0
  31. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.13/1867267426380906393 +0 -0
  32. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.13/4240757255861806333 +0 -0
  33. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
  34. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
  35. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
  36. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
  37. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
  38. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
  39. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
  40. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.12.0/5056746222905752453 +0 -0
  41. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
  42. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
  43. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
  44. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
  45. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
  46. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
  47. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
  48. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
  49. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
  50. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
  51. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
  52. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
  53. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
  54. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
  55. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
  56. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
  57. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
  58. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
  59. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
  60. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
  61. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
  62. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
  63. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
  64. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
  65. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
  66. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
  67. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/.ruff_cache/CACHEDIR.TAG +0 -0
  68. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/__init__.py +0 -0
  69. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/__main__.py +0 -0
  70. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/errors.py +0 -0
  71. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/interactive.py +0 -0
  72. {crackerjack-0.22.1 → crackerjack-0.22.3}/crackerjack/py313.py +0 -0
  73. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/TESTING.md +0 -0
  74. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/__init__.py +0 -0
  75. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/conftest.py +0 -0
  76. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/data/comments_sample.txt +0 -0
  77. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/data/docstrings_sample.txt +0 -0
  78. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/data/expected_comments_sample.txt +0 -0
  79. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/data/init.py +0 -0
  80. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_crackerjack.py +0 -0
  81. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_crackerjack_runner.py +0 -0
  82. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_errors.py +0 -0
  83. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_interactive.py +0 -0
  84. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_interactive_run.py +0 -0
  85. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_main.py +0 -0
  86. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_multiline_functions.py +0 -0
  87. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_py313_advanced.py +0 -0
  88. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_py313_features.py +0 -0
  89. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_pytest_features.py +0 -0
  90. {crackerjack-0.22.1 → crackerjack-0.22.3}/tests/test_structured_errors.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crackerjack
3
- Version: 0.22.1
3
+ Version: 0.22.3
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>
@@ -79,6 +79,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
79
79
  try:
80
80
  code = file_path.read_text(encoding="utf-8")
81
81
  original_code = code
82
+ cleaning_failed = False
82
83
  try:
83
84
  code = self.remove_line_comments(code)
84
85
  except Exception as e:
@@ -86,6 +87,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
86
87
  f"[yellow]Warning: Failed to remove line comments from {file_path}: {e}[/yellow]"
87
88
  )
88
89
  code = original_code
90
+ cleaning_failed = True
89
91
  try:
90
92
  code = self.remove_docstrings(code)
91
93
  except Exception as e:
@@ -93,21 +95,34 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
93
95
  f"[yellow]Warning: Failed to remove docstrings from {file_path}: {e}[/yellow]"
94
96
  )
95
97
  code = original_code
98
+ cleaning_failed = True
96
99
  try:
97
100
  code = self.remove_extra_whitespace(code)
98
101
  except Exception as e:
99
102
  self.console.print(
100
103
  f"[yellow]Warning: Failed to remove extra whitespace from {file_path}: {e}[/yellow]"
101
104
  )
105
+ code = original_code
106
+ cleaning_failed = True
102
107
  try:
103
108
  code = self.reformat_code(code)
104
109
  except Exception as e:
105
110
  self.console.print(
106
111
  f"[yellow]Warning: Failed to reformat {file_path}: {e}[/yellow]"
107
112
  )
113
+ code = original_code
114
+ cleaning_failed = True
108
115
  file_path.write_text(code, encoding="utf-8")
109
- self.console.print(f"Cleaned: {file_path}")
116
+ if cleaning_failed:
117
+ self.console.print(
118
+ f"[yellow]⚠️ Partially cleaned: {file_path}[/yellow]"
119
+ )
120
+ else:
121
+ self.console.print(f"[green]✅ Cleaned: {file_path}[/green]")
110
122
  except PermissionError as e:
123
+ self.console.print(
124
+ f"[red]❌ Failed to clean: {file_path} (Permission denied)[/red]"
125
+ )
111
126
  handle_error(
112
127
  ExecutionError(
113
128
  message=f"Permission denied while cleaning {file_path}",
@@ -119,6 +134,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
119
134
  exit_on_error=False,
120
135
  )
121
136
  except OSError as e:
137
+ self.console.print(
138
+ f"[red]❌ Failed to clean: {file_path} (File system error)[/red]"
139
+ )
122
140
  handle_error(
123
141
  ExecutionError(
124
142
  message=f"File system error while cleaning {file_path}",
@@ -130,6 +148,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
130
148
  exit_on_error=False,
131
149
  )
132
150
  except UnicodeDecodeError as e:
151
+ self.console.print(
152
+ f"[red]❌ Failed to clean: {file_path} (Encoding error)[/red]"
153
+ )
133
154
  handle_error(
134
155
  ExecutionError(
135
156
  message=f"Encoding error while reading {file_path}",
@@ -141,6 +162,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
141
162
  exit_on_error=False,
142
163
  )
143
164
  except Exception as e:
165
+ self.console.print(
166
+ f"[red]❌ Failed to clean: {file_path} (Unexpected error)[/red]"
167
+ )
144
168
  handle_error(
145
169
  ExecutionError(
146
170
  message=f"Unexpected error while cleaning {file_path}",
@@ -599,6 +623,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
599
623
  recovery="Check Ruff configuration and formatting rules",
600
624
  ),
601
625
  console=self.console,
626
+ exit_on_error=False,
602
627
  )
603
628
  formatted_code = code
604
629
  except Exception as e:
@@ -611,6 +636,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
611
636
  recovery="Verify Ruff is installed and configured correctly",
612
637
  ),
613
638
  console=self.console,
639
+ exit_on_error=False,
614
640
  )
615
641
  formatted_code = code
616
642
  finally:
@@ -4,7 +4,7 @@ requires = [ "pdm-backend" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.22.0"
7
+ version = "0.22.2"
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.22.1"
9
+ version = "0.22.3"
10
10
  description = "Crackerjack: code quality toolkit"
11
11
  readme = "README.md"
12
12
  keywords = [
File without changes
File without changes