crackerjack 0.22.5__tar.gz → 0.22.6__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.
- {crackerjack-0.22.5 → crackerjack-0.22.6}/PKG-INFO +1 -1
- crackerjack-0.22.6/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
- crackerjack-0.22.6/crackerjack/.ruff_cache/0.12.2/5056746222905752453 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/crackerjack.py +17 -17
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/errors.py +3 -3
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/interactive.py +14 -14
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/pyproject.toml +1 -1
- {crackerjack-0.22.5 → crackerjack-0.22.6}/pyproject.toml +1 -1
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_crackerjack.py +1 -3
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_structured_errors.py +1 -1
- crackerjack-0.22.5/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
- crackerjack-0.22.5/crackerjack/.ruff_cache/0.12.2/5056746222905752453 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/LICENSE +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/README.md +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.gitignore +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.libcst.codemod.yaml +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pdm.toml +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pre-commit-config-ai.yaml +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pre-commit-config.yaml +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pytest_cache/.gitignore +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pytest_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pytest_cache/README.md +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pytest_cache/v/cache/nodeids +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.pytest_cache/v/cache/stepwise +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/.gitignore +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.11/18187162184424859798 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/16869036553936192448 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/1867267426380906393 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/4240757255861806333 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/4441409093023629623 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.13/1867267426380906393 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.13/4240757255861806333 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.12.0/5056746222905752453 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/__init__.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/__main__.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/py313.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/TESTING.md +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/__init__.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/conftest.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/data/init.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_crackerjack_runner.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_errors.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_interactive.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_interactive_run.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_main.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_multiline_functions.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_py313_advanced.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_py313_features.py +0 -0
- {crackerjack-0.22.5 → crackerjack-0.22.6}/tests/test_pytest_features.py +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -84,7 +84,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
|
|
|
84
84
|
code = self.remove_line_comments(code)
|
|
85
85
|
except Exception as e:
|
|
86
86
|
self.console.print(
|
|
87
|
-
f"[
|
|
87
|
+
f"[yellow]Warning: Failed to remove line comments from {file_path}: {e}[/yellow]"
|
|
88
88
|
)
|
|
89
89
|
code = original_code
|
|
90
90
|
cleaning_failed = True
|
|
@@ -92,7 +92,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
|
|
|
92
92
|
code = self.remove_docstrings(code)
|
|
93
93
|
except Exception as e:
|
|
94
94
|
self.console.print(
|
|
95
|
-
f"[
|
|
95
|
+
f"[yellow]Warning: Failed to remove docstrings from {file_path}: {e}[/yellow]"
|
|
96
96
|
)
|
|
97
97
|
code = original_code
|
|
98
98
|
cleaning_failed = True
|
|
@@ -822,7 +822,7 @@ class ConfigManager(BaseModel, arbitrary_types_allowed=True):
|
|
|
822
822
|
self, cmd: list[str], **kwargs: t.Any
|
|
823
823
|
) -> subprocess.CompletedProcess[str]:
|
|
824
824
|
if self.dry_run:
|
|
825
|
-
self.console.print(f"[dim
|
|
825
|
+
self.console.print(f"[dim white]→ {' '.join(cmd)}[/dim white]")
|
|
826
826
|
return CompletedProcess(cmd, 0, "", "")
|
|
827
827
|
return execute(cmd, **kwargs)
|
|
828
828
|
|
|
@@ -844,7 +844,7 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
|
|
|
844
844
|
["pdm", "list", "--freeze"], capture_output=True, text=True
|
|
845
845
|
).stdout.splitlines()
|
|
846
846
|
if not len([pkg for pkg in installed_pkgs if "pre-commit" in pkg]):
|
|
847
|
-
self.console.print("[
|
|
847
|
+
self.console.print("[dim cyan]Initializing project...[/dim cyan]")
|
|
848
848
|
self.execute_command(["pdm", "self", "add", "keyring"])
|
|
849
849
|
self.execute_command(["pdm", "config", "python.use_uv", "true"])
|
|
850
850
|
self.execute_command(["git", "init"])
|
|
@@ -868,11 +868,11 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
|
|
|
868
868
|
check_all = self.execute_command(cmd)
|
|
869
869
|
if check_all.returncode > 0:
|
|
870
870
|
self.execute_command(["pdm", "lock"])
|
|
871
|
-
self.console.print("\n[
|
|
871
|
+
self.console.print("\n[green]Lock file updated[/green]\n")
|
|
872
872
|
check_all = self.execute_command(cmd)
|
|
873
873
|
if check_all.returncode > 0:
|
|
874
874
|
self.console.print(
|
|
875
|
-
"\n\n[
|
|
875
|
+
"\n\n[red]Pre-commit failed. Please fix errors.[/red]\n"
|
|
876
876
|
)
|
|
877
877
|
raise SystemExit(1)
|
|
878
878
|
|
|
@@ -880,7 +880,7 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
|
|
|
880
880
|
self, cmd: list[str], **kwargs: t.Any
|
|
881
881
|
) -> subprocess.CompletedProcess[str]:
|
|
882
882
|
if self.dry_run:
|
|
883
|
-
self.console.print(f"[dim
|
|
883
|
+
self.console.print(f"[dim white]→ {' '.join(cmd)}[/dim white]")
|
|
884
884
|
return CompletedProcess(cmd, 0, "", "")
|
|
885
885
|
return execute(cmd, **kwargs)
|
|
886
886
|
|
|
@@ -923,7 +923,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
923
923
|
self.pkg_name = self.pkg_path.stem.lower().replace("-", "_")
|
|
924
924
|
self.pkg_dir = self.pkg_path / self.pkg_name
|
|
925
925
|
self.pkg_dir.mkdir(exist_ok=True)
|
|
926
|
-
self.console.print("\n[
|
|
926
|
+
self.console.print("\n[magenta]Crackerjacking...[/magenta]\n")
|
|
927
927
|
self.config_manager.pkg_name = self.pkg_name
|
|
928
928
|
self.project_manager.pkg_name = self.pkg_name
|
|
929
929
|
self.project_manager.pkg_dir = self.pkg_dir
|
|
@@ -935,10 +935,10 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
935
935
|
["pdm", "install"], capture_output=True, text=True
|
|
936
936
|
)
|
|
937
937
|
if result.returncode == 0:
|
|
938
|
-
self.console.print("[
|
|
938
|
+
self.console.print("[green]PDM installed[/green]\n")
|
|
939
939
|
else:
|
|
940
940
|
self.console.print(
|
|
941
|
-
"\n\n
|
|
941
|
+
"\n\n[red]PDM installation failed. Is PDM is installed? Run `pipx install pdm` and try again.[/red]\n\n"
|
|
942
942
|
)
|
|
943
943
|
|
|
944
944
|
def _update_precommit(self, options: t.Any) -> None:
|
|
@@ -1055,12 +1055,12 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
1055
1055
|
def _print_ai_agent_files(self, options: t.Any) -> None:
|
|
1056
1056
|
if getattr(options, "ai_agent", False):
|
|
1057
1057
|
self.console.print(
|
|
1058
|
-
"[dim
|
|
1058
|
+
"[dim white]Structured test results: test-results.xml[/dim white]"
|
|
1059
1059
|
)
|
|
1060
|
-
self.console.print("[dim
|
|
1060
|
+
self.console.print("[dim white]Coverage report: coverage.json[/dim white]")
|
|
1061
1061
|
if options.benchmark or options.benchmark_regression:
|
|
1062
1062
|
self.console.print(
|
|
1063
|
-
"[dim
|
|
1063
|
+
"[dim white]Benchmark results: benchmark.json[/dim white]"
|
|
1064
1064
|
)
|
|
1065
1065
|
|
|
1066
1066
|
def _handle_test_failure(self, result: t.Any, options: t.Any) -> None:
|
|
@@ -1081,7 +1081,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
1081
1081
|
def _run_tests(self, options: t.Any) -> None:
|
|
1082
1082
|
if not options.test:
|
|
1083
1083
|
return
|
|
1084
|
-
self.console.print("\n\n[
|
|
1084
|
+
self.console.print("\n\n[blue]Running tests...[/blue]\n")
|
|
1085
1085
|
test_command = self._prepare_pytest_command(options)
|
|
1086
1086
|
result = self.execute_command(test_command, capture_output=True, text=True)
|
|
1087
1087
|
if result.stdout:
|
|
@@ -1134,7 +1134,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
1134
1134
|
self, cmd: list[str], **kwargs: t.Any
|
|
1135
1135
|
) -> subprocess.CompletedProcess[str]:
|
|
1136
1136
|
if self.dry_run:
|
|
1137
|
-
self.console.print(f"[dim
|
|
1137
|
+
self.console.print(f"[dim white]→ {' '.join(cmd)}[/dim white]")
|
|
1138
1138
|
return CompletedProcess(cmd, 0, "", "")
|
|
1139
1139
|
return execute(cmd, **kwargs)
|
|
1140
1140
|
|
|
@@ -1152,12 +1152,12 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
|
1152
1152
|
if not options.skip_hooks:
|
|
1153
1153
|
self.project_manager.run_pre_commit()
|
|
1154
1154
|
else:
|
|
1155
|
-
self.console.print("[
|
|
1155
|
+
self.console.print("[yellow]Skipping pre-commit hooks[/yellow]")
|
|
1156
1156
|
self._run_tests(options)
|
|
1157
1157
|
self._bump_version(options)
|
|
1158
1158
|
self._publish_project(options)
|
|
1159
1159
|
self._commit_and_push(options)
|
|
1160
|
-
self.console.print("\n[
|
|
1160
|
+
self.console.print("\n[green]Crackerjack complete![/green]\n")
|
|
1161
1161
|
|
|
1162
1162
|
|
|
1163
1163
|
crackerjack_it = Crackerjack().process
|
|
@@ -106,13 +106,13 @@ def handle_error(
|
|
|
106
106
|
formatted_json = json.dumps(error_data)
|
|
107
107
|
console.print(f"[json]{formatted_json}[/json]")
|
|
108
108
|
else:
|
|
109
|
-
title = f"
|
|
109
|
+
title = f"Error {error.error_code.value}: {error.error_code.name}"
|
|
110
110
|
content = [error.message]
|
|
111
111
|
if verbose and error.details:
|
|
112
|
-
content.extend(("\n[
|
|
112
|
+
content.extend(("\n[white]Details:[/white]", str(error.details)))
|
|
113
113
|
if error.recovery:
|
|
114
114
|
content.extend(
|
|
115
|
-
("\n[
|
|
115
|
+
("\n[green]Recovery suggestion:[/green]", str(error.recovery))
|
|
116
116
|
)
|
|
117
117
|
console.print(
|
|
118
118
|
Panel(
|
|
@@ -205,19 +205,19 @@ class InteractiveCLI:
|
|
|
205
205
|
|
|
206
206
|
def show_task_status(self, task: Task) -> Panel:
|
|
207
207
|
if task.status == TaskStatus.RUNNING:
|
|
208
|
-
status = "[yellow]
|
|
208
|
+
status = "[yellow]Running[/yellow]"
|
|
209
209
|
style = "yellow"
|
|
210
210
|
elif task.status == TaskStatus.SUCCESS:
|
|
211
|
-
status = "[green]
|
|
211
|
+
status = "[green]Success[/green]"
|
|
212
212
|
style = "green"
|
|
213
213
|
elif task.status == TaskStatus.FAILED:
|
|
214
|
-
status = "[red]
|
|
214
|
+
status = "[red]Failed[/red]"
|
|
215
215
|
style = "red"
|
|
216
216
|
elif task.status == TaskStatus.SKIPPED:
|
|
217
|
-
status = "[blue]
|
|
217
|
+
status = "[blue]Skipped[/blue]"
|
|
218
218
|
style = "blue"
|
|
219
219
|
else:
|
|
220
|
-
status = "[
|
|
220
|
+
status = "[dim white]Pending[/dim white]"
|
|
221
221
|
style = "dim"
|
|
222
222
|
duration = task.duration
|
|
223
223
|
duration_text = f"Duration: {duration:.2f}s" if duration else ""
|
|
@@ -235,23 +235,23 @@ class InteractiveCLI:
|
|
|
235
235
|
title="Workflow Tasks",
|
|
236
236
|
box=ROUNDED,
|
|
237
237
|
show_header=True,
|
|
238
|
-
header_style="bold
|
|
238
|
+
header_style="bold white",
|
|
239
239
|
)
|
|
240
|
-
table.add_column("Task", style="
|
|
240
|
+
table.add_column("Task", style="white")
|
|
241
241
|
table.add_column("Status")
|
|
242
242
|
table.add_column("Duration")
|
|
243
243
|
table.add_column("Dependencies")
|
|
244
244
|
for task in self.workflow.tasks.values():
|
|
245
245
|
if task.status == TaskStatus.RUNNING:
|
|
246
|
-
status = "[yellow]
|
|
246
|
+
status = "[yellow]Running[/yellow]"
|
|
247
247
|
elif task.status == TaskStatus.SUCCESS:
|
|
248
|
-
status = "[green]
|
|
248
|
+
status = "[green]Success[/green]"
|
|
249
249
|
elif task.status == TaskStatus.FAILED:
|
|
250
|
-
status = "[red]
|
|
250
|
+
status = "[red]Failed[/red]"
|
|
251
251
|
elif task.status == TaskStatus.SKIPPED:
|
|
252
|
-
status = "[blue]
|
|
252
|
+
status = "[blue]Skipped[/blue]"
|
|
253
253
|
else:
|
|
254
|
-
status = "[
|
|
254
|
+
status = "[dim white]Pending[/dim white]"
|
|
255
255
|
duration = task.duration
|
|
256
256
|
duration_text = f"{duration:.2f}s" if duration else "-"
|
|
257
257
|
deps = ", ".join(dep.name for dep in task.dependencies) or "-"
|
|
@@ -274,7 +274,7 @@ class InteractiveCLI:
|
|
|
274
274
|
def _setup_interactive_layout(self) -> Layout:
|
|
275
275
|
layout = self.setup_layout()
|
|
276
276
|
layout["header"].update(
|
|
277
|
-
Panel("Crackerjack Interactive Mode", style="bold
|
|
277
|
+
Panel("Crackerjack Interactive Mode", style="bold white", box=ROUNDED)
|
|
278
278
|
)
|
|
279
279
|
layout["footer"].update(Panel("Press Ctrl+C to exit", style="dim", box=ROUNDED))
|
|
280
280
|
return layout
|
|
@@ -282,7 +282,7 @@ class InteractiveCLI:
|
|
|
282
282
|
def _create_progress_tracker(self) -> dict[str, t.Any]:
|
|
283
283
|
progress = Progress(
|
|
284
284
|
SpinnerColumn(),
|
|
285
|
-
TextColumn("[
|
|
285
|
+
TextColumn("[white]{task.description}"),
|
|
286
286
|
BarColumn(),
|
|
287
287
|
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
|
288
288
|
TimeElapsedColumn(),
|
|
@@ -500,9 +500,7 @@ class TestCrackerjackProcess:
|
|
|
500
500
|
mock_tests.assert_called_once()
|
|
501
501
|
mock_publish.assert_called_once()
|
|
502
502
|
mock_commit.assert_called_once()
|
|
503
|
-
mock_console_print.assert_any_call(
|
|
504
|
-
"\n[bright_green]🍺 Crackerjack complete![/bright_green]\n"
|
|
505
|
-
)
|
|
503
|
+
mock_console_print.assert_any_call("\n[green]Crackerjack complete![/green]\n")
|
|
506
504
|
|
|
507
505
|
def test_process_with_all_option_sets_flags(
|
|
508
506
|
self,
|
|
@@ -156,7 +156,7 @@ class TestErrorHandlingIntegration:
|
|
|
156
156
|
with patch("sys.exit"):
|
|
157
157
|
handle_error(error, console, verbose=True)
|
|
158
158
|
output = output_io.getvalue()
|
|
159
|
-
assert "
|
|
159
|
+
assert "Error 3002: TEST_FAILURE" in output
|
|
160
160
|
assert "Test failed" in output
|
|
161
161
|
assert "Details:" in output
|
|
162
162
|
assert "Test details" in output
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.11/3256171999636029978
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.4/10355199064880463147
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.6/15140459877605758699
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.1.9/17041001205004563469
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.11/18187162184424859798
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/16869036553936192448
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/1867267426380906393
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/4240757255861806333
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.12/4441409093023629623
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.13/1867267426380906393
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.13/4240757255861806333
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.2/4070660268492669020
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.3/9818742842212983150
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.4/9818742842212983150
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.6/3557596832929915217
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.7/10386934055395314831
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.11.7/3557596832929915217
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.12.0/5056746222905752453
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.2.0/10047773857155985907
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.2.2/18053836298936336950
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.0/12548816621480535786
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.3/11081883392474770722
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.3.5/16311176246009842383
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.0/11982804814124138945
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.6.0/12055761203849489982
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.7.3/16061516852537040135
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.8.4/16354268377385700367
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.10/12813592349865671909
RENAMED
|
File without changes
|
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.3/13948373885254993391
RENAMED
|
File without changes
|
{crackerjack-0.22.5 → crackerjack-0.22.6}/crackerjack/.ruff_cache/0.9.9/12813592349865671909
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|