crackerjack 0.24.9__py3-none-any.whl → 0.25.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.

@@ -634,7 +634,7 @@ class CodeCleaner(BaseModel, arbitrary_types_allowed=True):
634
634
  temp_path.write_text(code)
635
635
  try:
636
636
  result = subprocess.run(
637
- ["ruff", "format", str(temp_path)],
637
+ ["uv", "run", "ruff", "format", str(temp_path)],
638
638
  check=False,
639
639
  capture_output=True,
640
640
  text=True,
@@ -887,7 +887,7 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
887
887
  self.execute_command(["git", "branch", "-m", "main"])
888
888
  self.execute_command(["git", "add", "pyproject.toml", "uv.lock"])
889
889
  self.execute_command(["git", "config", "advice.addIgnoredFile", "false"])
890
- install_cmd = ["pre-commit", "install"]
890
+ install_cmd = ["uv", "run", "pre-commit", "install"]
891
891
  if hasattr(self, "options") and getattr(self.options, "ai_agent", False):
892
892
  install_cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
893
893
  self.execute_command(install_cmd)
@@ -899,7 +899,7 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
899
899
  "[bold bright_cyan]🔍 HOOKS[/bold bright_cyan] [bold bright_white]Running code quality checks[/bold bright_white]"
900
900
  )
901
901
  self.console.print("-" * 60 + "\n")
902
- cmd = ["pre-commit", "run", "--all-files"]
902
+ cmd = ["uv", "run", "pre-commit", "run", "--all-files"]
903
903
  if hasattr(self, "options") and getattr(self.options, "ai_agent", False):
904
904
  cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
905
905
  check_all = self.execute_command(cmd)
@@ -990,7 +990,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
990
990
 
991
991
  def _update_precommit(self, options: t.Any) -> None:
992
992
  if self.pkg_path.stem == "crackerjack" and options.update_precommit:
993
- update_cmd = ["pre-commit", "autoupdate"]
993
+ update_cmd = ["uv", "run", "pre-commit", "autoupdate"]
994
994
  if options.ai_agent:
995
995
  update_cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
996
996
  self.execute_command(update_cmd)
@@ -1076,7 +1076,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
1076
1076
  test.append("-xvs")
1077
1077
 
1078
1078
  def _prepare_pytest_command(self, options: OptionsProtocol) -> list[str]:
1079
- test = ["pytest"]
1079
+ test = ["uv", "run", "pytest"]
1080
1080
  project_size = self._detect_project_size()
1081
1081
  test_timeout = self._get_test_timeout(options, project_size)
1082
1082
  if getattr(options, "ai_agent", False):
@@ -4,7 +4,7 @@ requires = [ "hatchling" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.24.8"
7
+ version = "0.24.10"
8
8
  description = "Crackerjack: code quality toolkit"
9
9
  readme = "README.md"
10
10
  keywords = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.24.9
3
+ Version: 0.25.0
4
4
  Summary: Crackerjack: code quality toolkit
5
5
  Project-URL: documentation, https://github.com/lesleslie/crackerjack
6
6
  Project-URL: homepage, https://github.com/lesleslie/crackerjack
@@ -595,19 +595,51 @@ Crackerjack is designed with modern Python principles in mind:
595
595
 
596
596
  ## Acknowledgments
597
597
 
598
- - **UV:** For excellent dependency and virtual environment management.
599
- - **Ruff:** For lightning-fast linting and code formatting.
600
- - **pre-commit:** For the robust hook management system.
601
- - **pytest:** For the flexible and powerful testing framework.
602
- - **PDM:** For the original inspiration for dependency management patterns.
603
- - **bandit:** For finding security vulnerabilities.
604
- - **vulture:** For dead code detection.
605
- - **creosote:** For unused dependency detection.
606
- - **complexipy:** For code complexity analysis.
607
- - **codespell:** For spelling correction.
608
- - **autotyping:** For automatically adding type hints.
609
- - **refurb:** For code improvement suggestions.
610
- - **pyright:** For static type checking.
611
- - **Typer:** For the creation of the CLI.
598
+ Crackerjack stands on the shoulders of giants. We're grateful to the maintainers and contributors of these outstanding tools that make modern Python development possible:
599
+
600
+ ### Core Development Tools
601
+ - **[UV](https://docs.astral.sh/uv/)** - Next-generation Python package and project management
602
+ - **[Ruff](https://docs.astral.sh/ruff/)** - Lightning-fast Python linter and formatter written in Rust
603
+ - **[pyright](https://microsoft.github.io/pyright/)** - Fast, feature-rich static type checker for Python
604
+ - **[pytest](https://pytest.org/)** - Flexible and powerful testing framework
605
+
606
+ ### Code Quality & Security
607
+ - **[pre-commit](https://pre-commit.com/)** - Multi-language pre-commit hooks framework
608
+ - **[bandit](https://bandit.readthedocs.io/)** - Security vulnerability scanner for Python
609
+ - **[vulture](https://github.com/jendrikseipp/vulture)** - Dead code detection tool
610
+ - **[refurb](https://github.com/dosisod/refurb)** - Code modernization and improvement suggestions
611
+ - **[codespell](https://github.com/codespell-project/codespell)** - Spelling mistake detection and correction
612
+ - **[detect-secrets](https://github.com/Yelp/detect-secrets)** - Prevention of secrets in repositories
613
+
614
+ ### Dependencies & Project Management
615
+ - **[creosote](https://github.com/fredrikaverpil/creosote)** - Unused dependency detection
616
+ - **[autotyping](https://github.com/JelleZijlstra/autotyping)** - Automatic type hint generation
617
+ - **[complexipy](https://github.com/rohaquinlop/complexipy)** - Code complexity analysis
618
+
619
+ ### CLI & User Interface
620
+ - **[Typer](https://typer.tiangolo.com/)** - Modern CLI framework for building command-line interfaces
621
+ - **[Rich](https://rich.readthedocs.io/)** - Rich text and beautiful formatting in the terminal
622
+ - **[click](https://click.palletsprojects.com/)** - Python package for creating command line interfaces
623
+
624
+ ### Performance & Development Tools
625
+ - **[icecream](https://github.com/gruns/icecream)** - Sweet and creamy print debugging
626
+ - **[bevy](https://github.com/ZeroIntensity/bevy)** - Lightweight dependency injection framework
627
+ - **[msgspec](https://github.com/jcrist/msgspec)** - High-performance message serialization
628
+ - **[attrs](https://github.com/python-attrs/attrs)** - Classes without boilerplate
629
+
630
+ ### Development Environment
631
+ - **[PyCharm](https://www.jetbrains.com/pycharm/)** - The premier Python IDE that powered the development of Crackerjack
632
+ - **[Claude Code](https://claude.ai/code)** - AI-powered development assistant that accelerated development and ensured code quality
633
+
634
+ ### Legacy Inspiration
635
+ - **[PDM](https://pdm.fming.dev/)** - Original inspiration for modern Python dependency management patterns
636
+
637
+ ### Special Recognition
638
+
639
+ We extend special thanks to the **Astral team** for their groundbreaking work on UV and Ruff, which have revolutionized Python tooling. Their commitment to performance, reliability, and developer experience has set new standards for the Python ecosystem.
640
+
641
+ The integration of these tools into Crackerjack's unified workflow demonstrates the power of the modern Python toolchain when thoughtfully combined. Each tool excels in its domain, and together they create a development experience that is both powerful and delightful.
642
+
643
+ We're honored to build upon this foundation and contribute to the Python community's continued evolution toward better development practices and tools.
612
644
 
613
645
  ---
@@ -5,12 +5,12 @@ crackerjack/.pre-commit-config-ai.yaml,sha256=kPAU41yuX8XU00HDl6Y2mX-L3aLMYTNo8f
5
5
  crackerjack/.pre-commit-config.yaml,sha256=KwzEBj84K5Vp09aYXlk2H7LFlMJl6jToOl8q4u3IxuU,2480
6
6
  crackerjack/__init__.py,sha256=8tBSPAru_YDuPpjz05cL7pNbZjYFoRT_agGd_FWa3gY,839
7
7
  crackerjack/__main__.py,sha256=-h6Au8CGHS9QdzzbDMGzKHAlNEx7cYmzCrV4g4vV19k,6407
8
- crackerjack/crackerjack.py,sha256=Awvebtc6IZ00FUcTb7fyCTlTDoX-XqNn21VrMQJSPYk,49398
8
+ crackerjack/crackerjack.py,sha256=iYzhBdEvhCdyrqv-t0jQ862JNn3rwV15P2beaOzu3zs,49463
9
9
  crackerjack/errors.py,sha256=Wcv0rXfzV9pHOoXYrhQEjyJd4kUUBbdiY-5M9nI8pDw,4050
10
10
  crackerjack/interactive.py,sha256=pFItgRUyjOakABLCRz6nIp6_Ycx2LBSeojpYNiTelv0,16126
11
11
  crackerjack/py313.py,sha256=buYE7LO11Q64ffowEhTZRFQoAGj_8sg3DTlZuv8M9eo,5890
12
- crackerjack/pyproject.toml,sha256=B4eePsKm7Zu_i3Lx6ZedYrh1YP_mnTosCfEG08n2NWM,5283
13
- crackerjack-0.24.9.dist-info/METADATA,sha256=gCGjUwQVMxfOQxAjPAxaC9wFZAyNscseq-rw8GcFriI,26137
14
- crackerjack-0.24.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- crackerjack-0.24.9.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
16
- crackerjack-0.24.9.dist-info/RECORD,,
12
+ crackerjack/pyproject.toml,sha256=NFvAHJWYrEQr9WqHllZVKy5dGDO3O2fMMkFJSSboNNk,5284
13
+ crackerjack-0.25.0.dist-info/METADATA,sha256=X4EhLP97QsYQxKZYCFnGHTMaE8kYDRQQ-e8hJFQggtI,28711
14
+ crackerjack-0.25.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
+ crackerjack-0.25.0.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
16
+ crackerjack-0.25.0.dist-info/RECORD,,