crackerjack 0.27.9__py3-none-any.whl → 0.29.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.
- crackerjack/.pre-commit-config-ai.yaml +1 -5
- crackerjack/__main__.py +48 -0
- crackerjack/crackerjack.py +1326 -45
- crackerjack/interactive.py +7 -16
- crackerjack/pyproject.toml +3 -1
- {crackerjack-0.27.9.dist-info → crackerjack-0.29.0.dist-info}/METADATA +636 -52
- {crackerjack-0.27.9.dist-info → crackerjack-0.29.0.dist-info}/RECORD +9 -9
- {crackerjack-0.27.9.dist-info → crackerjack-0.29.0.dist-info}/WHEEL +0 -0
- {crackerjack-0.27.9.dist-info → crackerjack-0.29.0.dist-info}/licenses/LICENSE +0 -0
crackerjack/interactive.py
CHANGED
|
@@ -169,10 +169,7 @@ class InteractiveCLI:
|
|
|
169
169
|
version_text = Text(f"v{version}", style="dim cyan")
|
|
170
170
|
subtitle = Text("Your Python project management toolkit", style="italic")
|
|
171
171
|
panel = Panel(
|
|
172
|
-
f"{title} {version_text}\n{subtitle}",
|
|
173
|
-
box=ROUNDED,
|
|
174
|
-
border_style="cyan",
|
|
175
|
-
expand=False,
|
|
172
|
+
f"{title} {version_text}\n{subtitle}", border_style="cyan", expand=False
|
|
176
173
|
)
|
|
177
174
|
self.console.print(panel)
|
|
178
175
|
self.console.print()
|
|
@@ -198,9 +195,7 @@ class InteractiveCLI:
|
|
|
198
195
|
Layout(name="main"),
|
|
199
196
|
Layout(name="footer", size=3),
|
|
200
197
|
)
|
|
201
|
-
layout["main"].split_row(
|
|
202
|
-
Layout(name="tasks", ratio=1), Layout(name="details", ratio=2)
|
|
203
|
-
)
|
|
198
|
+
layout["main"].split_row(Layout(name="tasks"), Layout(name="details", ratio=2))
|
|
204
199
|
return layout
|
|
205
200
|
|
|
206
201
|
def show_task_status(self, task: Task) -> Panel:
|
|
@@ -233,8 +228,6 @@ class InteractiveCLI:
|
|
|
233
228
|
def show_task_table(self) -> Table:
|
|
234
229
|
table = Table(
|
|
235
230
|
title="Workflow Tasks",
|
|
236
|
-
box=ROUNDED,
|
|
237
|
-
show_header=True,
|
|
238
231
|
header_style="bold white",
|
|
239
232
|
)
|
|
240
233
|
table.add_column("Task", style="white")
|
|
@@ -262,7 +255,7 @@ class InteractiveCLI:
|
|
|
262
255
|
self.console.clear()
|
|
263
256
|
layout = self._setup_interactive_layout()
|
|
264
257
|
progress_tracker = self._create_progress_tracker()
|
|
265
|
-
with Live(layout
|
|
258
|
+
with Live(layout) as live:
|
|
266
259
|
try:
|
|
267
260
|
self._execute_workflow_loop(layout, progress_tracker, live)
|
|
268
261
|
self._display_final_summary(layout)
|
|
@@ -274,9 +267,9 @@ class InteractiveCLI:
|
|
|
274
267
|
def _setup_interactive_layout(self) -> Layout:
|
|
275
268
|
layout = self.setup_layout()
|
|
276
269
|
layout["header"].update(
|
|
277
|
-
Panel("Crackerjack Interactive Mode", style="bold white"
|
|
270
|
+
Panel("Crackerjack Interactive Mode", style="bold white")
|
|
278
271
|
)
|
|
279
|
-
layout["footer"].update(Panel("Press Ctrl+C to exit", style="dim"
|
|
272
|
+
layout["footer"].update(Panel("Press Ctrl+C to exit", style="dim"))
|
|
280
273
|
return layout
|
|
281
274
|
|
|
282
275
|
def _create_progress_tracker(self) -> dict[str, t.Any]:
|
|
@@ -353,7 +346,7 @@ class InteractiveCLI:
|
|
|
353
346
|
layout["tasks"].update(self.show_task_table())
|
|
354
347
|
task_counts = self._count_tasks_by_status()
|
|
355
348
|
summary = Panel(
|
|
356
|
-
f"Workflow completed!\n\n"
|
|
349
|
+
f"🏆 Workflow completed!\n\n"
|
|
357
350
|
f"[green]✅ Successful tasks: {task_counts['successful']}[/green]\n"
|
|
358
351
|
f"[red]❌ Failed tasks: {task_counts['failed']}[/red]\n"
|
|
359
352
|
f"[blue]⏩ Skipped tasks: {task_counts['skipped']}[/blue]",
|
|
@@ -382,9 +375,7 @@ class InteractiveCLI:
|
|
|
382
375
|
}
|
|
383
376
|
|
|
384
377
|
def _handle_user_interruption(self, layout: Layout) -> None:
|
|
385
|
-
layout["footer"].update(
|
|
386
|
-
Panel("Interrupted by user", style="yellow", box=ROUNDED)
|
|
387
|
-
)
|
|
378
|
+
layout["footer"].update(Panel("Interrupted by user", style="yellow"))
|
|
388
379
|
|
|
389
380
|
def ask_for_file(
|
|
390
381
|
self, prompt: str, directory: Path, default: str | None = None
|
crackerjack/pyproject.toml
CHANGED
|
@@ -4,7 +4,7 @@ requires = [ "hatchling" ]
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crackerjack"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.28.0"
|
|
8
8
|
description = "Crackerjack: code quality toolkit"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
keywords = [
|
|
@@ -67,7 +67,9 @@ urls.repository = "https://github.com/lesleslie/crackerjack"
|
|
|
67
67
|
|
|
68
68
|
[dependency-groups]
|
|
69
69
|
dev = [
|
|
70
|
+
"complexipy>=3.3",
|
|
70
71
|
"pyyaml>=6.0.2",
|
|
72
|
+
"refurb>=2.1",
|
|
71
73
|
]
|
|
72
74
|
|
|
73
75
|
[tool.ruff]
|