crackerjack 0.17.0__tar.gz → 0.17.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.
- {crackerjack-0.17.0 → crackerjack-0.17.2}/PKG-INFO +33 -4
- {crackerjack-0.17.0 → crackerjack-0.17.2}/README.md +30 -1
- crackerjack-0.17.2/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/pyproject.toml +3 -3
- {crackerjack-0.17.0 → crackerjack-0.17.2}/pyproject.toml +3 -3
- crackerjack-0.17.0/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/LICENSE +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.gitignore +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.libcst.codemod.yaml +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pdm.toml +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pre-commit-config.yaml +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pytest_cache/.gitignore +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pytest_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pytest_cache/README.md +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pytest_cache/v/cache/nodeids +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.pytest_cache/v/cache/stepwise +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/.gitignore +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/__init__.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/__main__.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/crackerjack.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/README.md +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/__init__.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/data/init.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/test_crackerjack.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/test_crackerjack_runner.py +0 -0
- {crackerjack-0.17.0 → crackerjack-0.17.2}/tests/test_main.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: crackerjack
|
3
|
-
Version: 0.17.
|
3
|
+
Version: 0.17.2
|
4
4
|
Summary: Default template for PDM package
|
5
5
|
Keywords: black,ruff,mypy,creosote,refurb
|
6
6
|
Author-Email: lesleslie <les@wedgwoodwebworks.com>
|
@@ -28,14 +28,14 @@ Requires-Dist: pytest>=8.3.5
|
|
28
28
|
Requires-Dist: pydantic>=2.11.4
|
29
29
|
Requires-Dist: pdm-bump>=0.9.12
|
30
30
|
Requires-Dist: pdm>=2.24.1
|
31
|
-
Requires-Dist: uv>=0.7.
|
31
|
+
Requires-Dist: uv>=0.7.3
|
32
32
|
Requires-Dist: pytest-cov>=6.1.1
|
33
33
|
Requires-Dist: pytest-mock>=3.14.0
|
34
34
|
Requires-Dist: tomli-w>=1.2.0
|
35
35
|
Requires-Dist: pytest-asyncio>=0.26.0
|
36
36
|
Requires-Dist: rich>=14.0.0
|
37
37
|
Requires-Dist: typer>=0.15.3
|
38
|
-
Requires-Dist: pytest-timeout>=2.
|
38
|
+
Requires-Dist: pytest-timeout>=2.4.0
|
39
39
|
Description-Content-Type: text/markdown
|
40
40
|
|
41
41
|
# Crackerjack: Elevate Your Python Development
|
@@ -51,7 +51,20 @@ Description-Content-Type: text/markdown
|
|
51
51
|
|
52
52
|
**Crackerjack** (`ˈkra-kər-ˌjak`): *a person or thing of marked excellence.*
|
53
53
|
|
54
|
-
|
54
|
+
## What is Crackerjack?
|
55
|
+
|
56
|
+
Crackerjack is an opinionated Python project management tool designed to solve common challenges in Python development:
|
57
|
+
|
58
|
+
- **Problem**: Setting up Python projects with best practices is time-consuming and requires knowledge of many tools
|
59
|
+
- **Solution**: Crackerjack automates project setup with pre-configured best practices and tools
|
60
|
+
|
61
|
+
- **Problem**: Maintaining consistent code quality across a project is difficult
|
62
|
+
- **Solution**: Crackerjack enforces a consistent style and quality standard through integrated linting, formatting, and pre-commit hooks
|
63
|
+
|
64
|
+
- **Problem**: Publishing Python packages involves many manual steps
|
65
|
+
- **Solution**: Crackerjack streamlines the entire development lifecycle from code cleaning to testing to version bumping to publishing
|
66
|
+
|
67
|
+
Crackerjack combines best-in-class tools (Ruff, PDM, pre-commit, pytest, and more) into a single, streamlined workflow to ensure code quality, consistency, and reliability. It's designed for Python developers who want to focus on writing code rather than configuring tools.
|
55
68
|
|
56
69
|
---
|
57
70
|
|
@@ -217,6 +230,7 @@ runner.process(MyOptions())
|
|
217
230
|
- `-x`, `--clean`: Clean code by removing docstrings, line comments, and extra whitespace.
|
218
231
|
- `-t`, `--test`: Run tests using `pytest`.
|
219
232
|
- `-a`, `--all`: Run with `-x -t -p <micro|minor|major> -c` development options.
|
233
|
+
- `--ai-agent`: Enable AI agent mode with structured output (see [AI Agent Integration](#ai-agent-integration)).
|
220
234
|
- `--help`: Display help.
|
221
235
|
|
222
236
|
### Example Workflows
|
@@ -270,6 +284,21 @@ runner.process(MyOptions())
|
|
270
284
|
python -m crackerjack -a minor
|
271
285
|
```
|
272
286
|
|
287
|
+
## AI Agent Integration
|
288
|
+
|
289
|
+
Crackerjack includes special features for integration with AI agents like Claude, ChatGPT, and other LLM-based assistants:
|
290
|
+
|
291
|
+
- **Structured JSON Output:** When run with `--ai-agent`, Crackerjack outputs results in JSON format that's easy for AI agents to parse
|
292
|
+
- **Clear Status Indicators:** Provides clear status indicators (running, success, failed, complete) to track progress
|
293
|
+
- **Action Tracking:** Includes a list of actions performed to help AI agents understand what happened
|
294
|
+
|
295
|
+
### Example AI Agent Usage
|
296
|
+
|
297
|
+
```bash
|
298
|
+
python -m crackerjack --ai-agent --test
|
299
|
+
```
|
300
|
+
|
301
|
+
For detailed information about using Crackerjack with AI agents, including the structured output format and programmatic usage, see [README-AI-AGENT.md](README-AI-AGENT.md).
|
273
302
|
|
274
303
|
## Contributing
|
275
304
|
|
@@ -11,7 +11,20 @@
|
|
11
11
|
|
12
12
|
**Crackerjack** (`ˈkra-kər-ˌjak`): *a person or thing of marked excellence.*
|
13
13
|
|
14
|
-
|
14
|
+
## What is Crackerjack?
|
15
|
+
|
16
|
+
Crackerjack is an opinionated Python project management tool designed to solve common challenges in Python development:
|
17
|
+
|
18
|
+
- **Problem**: Setting up Python projects with best practices is time-consuming and requires knowledge of many tools
|
19
|
+
- **Solution**: Crackerjack automates project setup with pre-configured best practices and tools
|
20
|
+
|
21
|
+
- **Problem**: Maintaining consistent code quality across a project is difficult
|
22
|
+
- **Solution**: Crackerjack enforces a consistent style and quality standard through integrated linting, formatting, and pre-commit hooks
|
23
|
+
|
24
|
+
- **Problem**: Publishing Python packages involves many manual steps
|
25
|
+
- **Solution**: Crackerjack streamlines the entire development lifecycle from code cleaning to testing to version bumping to publishing
|
26
|
+
|
27
|
+
Crackerjack combines best-in-class tools (Ruff, PDM, pre-commit, pytest, and more) into a single, streamlined workflow to ensure code quality, consistency, and reliability. It's designed for Python developers who want to focus on writing code rather than configuring tools.
|
15
28
|
|
16
29
|
---
|
17
30
|
|
@@ -177,6 +190,7 @@ runner.process(MyOptions())
|
|
177
190
|
- `-x`, `--clean`: Clean code by removing docstrings, line comments, and extra whitespace.
|
178
191
|
- `-t`, `--test`: Run tests using `pytest`.
|
179
192
|
- `-a`, `--all`: Run with `-x -t -p <micro|minor|major> -c` development options.
|
193
|
+
- `--ai-agent`: Enable AI agent mode with structured output (see [AI Agent Integration](#ai-agent-integration)).
|
180
194
|
- `--help`: Display help.
|
181
195
|
|
182
196
|
### Example Workflows
|
@@ -230,6 +244,21 @@ runner.process(MyOptions())
|
|
230
244
|
python -m crackerjack -a minor
|
231
245
|
```
|
232
246
|
|
247
|
+
## AI Agent Integration
|
248
|
+
|
249
|
+
Crackerjack includes special features for integration with AI agents like Claude, ChatGPT, and other LLM-based assistants:
|
250
|
+
|
251
|
+
- **Structured JSON Output:** When run with `--ai-agent`, Crackerjack outputs results in JSON format that's easy for AI agents to parse
|
252
|
+
- **Clear Status Indicators:** Provides clear status indicators (running, success, failed, complete) to track progress
|
253
|
+
- **Action Tracking:** Includes a list of actions performed to help AI agents understand what happened
|
254
|
+
|
255
|
+
### Example AI Agent Usage
|
256
|
+
|
257
|
+
```bash
|
258
|
+
python -m crackerjack --ai-agent --test
|
259
|
+
```
|
260
|
+
|
261
|
+
For detailed information about using Crackerjack with AI agents, including the structured output format and programmatic usage, see [README-AI-AGENT.md](README-AI-AGENT.md).
|
233
262
|
|
234
263
|
## Contributing
|
235
264
|
|
Binary file
|
@@ -152,7 +152,7 @@ pythonPlatform = "Darwin"
|
|
152
152
|
|
153
153
|
[project]
|
154
154
|
name = "crackerjack"
|
155
|
-
version = "0.
|
155
|
+
version = "0.17.1"
|
156
156
|
description = "Default template for PDM package"
|
157
157
|
requires-python = ">=3.13"
|
158
158
|
readme = "README.md"
|
@@ -184,14 +184,14 @@ dependencies = [
|
|
184
184
|
"pydantic>=2.11.4",
|
185
185
|
"pdm-bump>=0.9.12",
|
186
186
|
"pdm>=2.24.1",
|
187
|
-
"uv>=0.7.
|
187
|
+
"uv>=0.7.3",
|
188
188
|
"pytest-cov>=6.1.1",
|
189
189
|
"pytest-mock>=3.14.0",
|
190
190
|
"tomli-w>=1.2.0",
|
191
191
|
"pytest-asyncio>=0.26.0",
|
192
192
|
"rich>=14.0.0",
|
193
193
|
"typer>=0.15.3",
|
194
|
-
"pytest-timeout>=2.
|
194
|
+
"pytest-timeout>=2.4.0",
|
195
195
|
]
|
196
196
|
authors = [
|
197
197
|
{ name = "lesleslie", email = "les@wedgwoodwebworks.com" },
|
@@ -171,7 +171,7 @@ pythonPlatform = "Darwin"
|
|
171
171
|
|
172
172
|
[project]
|
173
173
|
name = "crackerjack"
|
174
|
-
version = "0.17.
|
174
|
+
version = "0.17.2"
|
175
175
|
description = "Default template for PDM package"
|
176
176
|
requires-python = ">=3.13"
|
177
177
|
readme = "README.md"
|
@@ -203,14 +203,14 @@ dependencies = [
|
|
203
203
|
"pydantic>=2.11.4",
|
204
204
|
"pdm-bump>=0.9.12",
|
205
205
|
"pdm>=2.24.1",
|
206
|
-
"uv>=0.7.
|
206
|
+
"uv>=0.7.3",
|
207
207
|
"pytest-cov>=6.1.1",
|
208
208
|
"pytest-mock>=3.14.0",
|
209
209
|
"tomli-w>=1.2.0",
|
210
210
|
"pytest-asyncio>=0.26.0",
|
211
211
|
"rich>=14.0.0",
|
212
212
|
"typer>=0.15.3",
|
213
|
-
"pytest-timeout>=2.
|
213
|
+
"pytest-timeout>=2.4.0",
|
214
214
|
]
|
215
215
|
authors = [
|
216
216
|
{ name = "lesleslie", email = "les@wedgwoodwebworks.com" },
|
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
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.11/3256171999636029978
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.4/10355199064880463147
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.6/15140459877605758699
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.1.9/17041001205004563469
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.2/4070660268492669020
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.3/9818742842212983150
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.4/9818742842212983150
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.6/3557596832929915217
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.7/10386934055395314831
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.11.7/3557596832929915217
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.2.0/10047773857155985907
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.2.2/18053836298936336950
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.0/12548816621480535786
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.3/11081883392474770722
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.3.5/16311176246009842383
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.6.0/11982804814124138945
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/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.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.7.3/16061516852537040135
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.8.4/16354268377385700367
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.10/12813592349865671909
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/crackerjack/.ruff_cache/0.9.3/13948373885254993391
RENAMED
File without changes
|
{crackerjack-0.17.0 → crackerjack-0.17.2}/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
|