crackerjack 0.22.2__py3-none-any.whl → 0.22.3__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.

@@ -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,6 +95,7 @@ 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:
@@ -100,6 +103,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
100
103
  f"[yellow]Warning: Failed to remove extra whitespace from {file_path}: {e}[/yellow]"
101
104
  )
102
105
  code = original_code
106
+ cleaning_failed = True
103
107
  try:
104
108
  code = self.reformat_code(code)
105
109
  except Exception as e:
@@ -107,9 +111,18 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
107
111
  f"[yellow]Warning: Failed to reformat {file_path}: {e}[/yellow]"
108
112
  )
109
113
  code = original_code
114
+ cleaning_failed = True
110
115
  file_path.write_text(code, encoding="utf-8")
111
- 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]")
112
122
  except PermissionError as e:
123
+ self.console.print(
124
+ f"[red]❌ Failed to clean: {file_path} (Permission denied)[/red]"
125
+ )
113
126
  handle_error(
114
127
  ExecutionError(
115
128
  message=f"Permission denied while cleaning {file_path}",
@@ -121,6 +134,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
121
134
  exit_on_error=False,
122
135
  )
123
136
  except OSError as e:
137
+ self.console.print(
138
+ f"[red]❌ Failed to clean: {file_path} (File system error)[/red]"
139
+ )
124
140
  handle_error(
125
141
  ExecutionError(
126
142
  message=f"File system error while cleaning {file_path}",
@@ -132,6 +148,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
132
148
  exit_on_error=False,
133
149
  )
134
150
  except UnicodeDecodeError as e:
151
+ self.console.print(
152
+ f"[red]❌ Failed to clean: {file_path} (Encoding error)[/red]"
153
+ )
135
154
  handle_error(
136
155
  ExecutionError(
137
156
  message=f"Encoding error while reading {file_path}",
@@ -143,6 +162,9 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
143
162
  exit_on_error=False,
144
163
  )
145
164
  except Exception as e:
165
+ self.console.print(
166
+ f"[red]❌ Failed to clean: {file_path} (Unexpected error)[/red]"
167
+ )
146
168
  handle_error(
147
169
  ExecutionError(
148
170
  message=f"Unexpected error while cleaning {file_path}",
@@ -601,6 +623,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
601
623
  recovery="Check Ruff configuration and formatting rules",
602
624
  ),
603
625
  console=self.console,
626
+ exit_on_error=False,
604
627
  )
605
628
  formatted_code = code
606
629
  except Exception as e:
@@ -613,6 +636,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
613
636
  recovery="Verify Ruff is installed and configured correctly",
614
637
  ),
615
638
  console=self.console,
639
+ exit_on_error=False,
616
640
  )
617
641
  formatted_code = code
618
642
  finally:
@@ -4,7 +4,7 @@ requires = [ "pdm-backend" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.22.1"
7
+ version = "0.22.2"
8
8
  description = "Crackerjack: code quality toolkit"
9
9
  readme = "README.md"
10
10
  keywords = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crackerjack
3
- Version: 0.22.2
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>
@@ -1,7 +1,7 @@
1
- crackerjack-0.22.2.dist-info/METADATA,sha256=8EOBgiSPMOPb4Fa8gwUPw-FPpShnYMvMDfVhcWdd--4,26251
2
- crackerjack-0.22.2.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- crackerjack-0.22.2.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
- crackerjack-0.22.2.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
1
+ crackerjack-0.22.3.dist-info/METADATA,sha256=ggtMKWafl4ETtwOLPdkthHOMYdwx-DEKEMR_AqKBWf4,26251
2
+ crackerjack-0.22.3.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ crackerjack-0.22.3.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
+ crackerjack-0.22.3.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
5
5
  crackerjack/.gitignore,sha256=n8cD6U16L3XZn__PvhYm_F7-YeFHFucHCyxWj2NZCGs,259
6
6
  crackerjack/.libcst.codemod.yaml,sha256=a8DlErRAIPV1nE6QlyXPAzTOgkB24_spl2E9hphuf5s,772
7
7
  crackerjack/.pdm.toml,sha256=dZe44HRcuxxCFESGG8SZIjmc-cGzSoyK3Hs6t4NYA8w,23
@@ -34,7 +34,7 @@ crackerjack/.ruff_cache/0.11.7/10386934055395314831,sha256=lBNwN5zAgM4OzbkXIOzCc
34
34
  crackerjack/.ruff_cache/0.11.7/3557596832929915217,sha256=fKlwUbsvT3YIKV6UR-aA_i64lLignWeVfVu-MMmVbU0,207
35
35
  crackerjack/.ruff_cache/0.11.8/530407680854991027,sha256=xAMAL3Vu_HR6M-h5ojCTaak0By5ii8u-14pXULLgLqw,224
36
36
  crackerjack/.ruff_cache/0.12.0/5056746222905752453,sha256=MqrIT5qymJcgAOBZyn-TvYoGCFfDFCgN9IwSULq8n14,256
37
- crackerjack/.ruff_cache/0.12.1/5056746222905752453,sha256=qvPzc5kCgIQXyOc2nos_DbariI5iTKvg0qWO8e5CSO0,256
37
+ crackerjack/.ruff_cache/0.12.1/5056746222905752453,sha256=w6K32ODLraqFeqklpoWynnxmcbqihCgEeiyksQJjkFE,256
38
38
  crackerjack/.ruff_cache/0.2.0/10047773857155985907,sha256=j9LNa_RQ4Plor7go1uTYgz17cEENKvZQ-dP6b9MX0ik,248
39
39
  crackerjack/.ruff_cache/0.2.1/8522267973936635051,sha256=u_aPBMibtAp_iYvLwR88GMAECMcIgHezxMyuapmU2P4,248
40
40
  crackerjack/.ruff_cache/0.2.2/18053836298936336950,sha256=Xb_ebP0pVuUfSqPEZKlhQ70so_vqkEfMYpuHQ06iR5U,248
@@ -64,9 +64,9 @@ crackerjack/.ruff_cache/0.9.9/8843823720003377982,sha256=e4ymkXfQsUg5e_mtO34xTsa
64
64
  crackerjack/.ruff_cache/CACHEDIR.TAG,sha256=WVMVbX4MVkpCclExbq8m-IcOZIOuIZf5FrYw5Pk-Ma4,43
65
65
  crackerjack/__init__.py,sha256=8tBSPAru_YDuPpjz05cL7pNbZjYFoRT_agGd_FWa3gY,839
66
66
  crackerjack/__main__.py,sha256=lEyi83ChuehqEJgUQ6Ib4ByOofvmhi_0M7oFamMC_1I,6407
67
- crackerjack/crackerjack.py,sha256=p5RlW4hxc9jMuQzxT2vqP6acg5kJbtCHVoEl1cIgK2c,43001
67
+ crackerjack/crackerjack.py,sha256=2-Q0L3BtKt3Kpe8-uGCdl0sH9pRkgNZDaFBrhTUn-70,43997
68
68
  crackerjack/errors.py,sha256=QEPtVuMtKtQHuawgr1ToMaN1KbUg5h9-4mS33YB5Znk,4062
69
69
  crackerjack/interactive.py,sha256=y5QbyR2Wp8WkC_iC89ZqETm-wjAN9X5DK1L3yetpjN4,16153
70
70
  crackerjack/py313.py,sha256=buYE7LO11Q64ffowEhTZRFQoAGj_8sg3DTlZuv8M9eo,5890
71
- crackerjack/pyproject.toml,sha256=fXYvDPdgYqBDDSELUeHs3YLo5QrveFOdwE6A1GTrE0I,4988
72
- crackerjack-0.22.2.dist-info/RECORD,,
71
+ crackerjack/pyproject.toml,sha256=pkv-YPO6tkEM6gBjqEDp08t4u5-wa-oqgvYpKYFCKQQ,4988
72
+ crackerjack-0.22.3.dist-info/RECORD,,