Crackerjack code formatting style.
Project description
Crackerjack Python
Crackerjack is a python coding style which uses a minimalist approach to produce elegant, easy to read, code.
crack·er·jack ˈkra-kər-ˌjak : a person or thing of marked excellence
Why Crackerjack?
Crackerjack works on the theory that with static typing and explicit class, function, variable, and other object names - the code should be straight forward to read and the documentation should pretty much be able to write itself. Crackerjack provides a set of guidelines and utilities to keep the codebase clean, elegant, standardized, and easily readable.
What does this package do?
This package:
-
identifies and removes unused dependencies with creosote
-
reformats the code with Black
-
uses autotype to add missing type annotations to the code
-
does import sorting, linting, and complexity analysis with ruff
-
uses mypy for type checking
-
streamlines code with refurb
-
installs, or updates, a project's pre-commit tools and gitignore to comply with evolving crackerjack standards
-
removes pipenv, poetry, and hatch build, dependency management, and virtual environment management packages and replaces them with PDM using PEP 582
-
converts/creates documentation in Markdown (md) - Coming Soon!
-
runs tests and generates pytest mock stubs if needed - Coming Soon!
-
bumps the project version and publishes it to PyPI
What are the rules?
(...more what you'd call "guidelines" than actual rules. -Captain Barbossa )
-
all docstrings, README's, and other documentation is to be done in Markdown (md)
-
format with black
-
use pathlib.Path - not os.path
-
use dataclasses or pydantic models whenever possible
-
force single line imports
-
use PDM and PEP 582 for dependency management and package building/publishing
-
use pdoc and mkdocs for producing documentation
-
use pytest for testing
-
code is statically typed
Installation
From your projects root directory:
pdm add -d crackerjack
Usage
From your projects root directory:
python -m crackerjack
Cracker jack will take care of the rest.
For a full list of options:
python -m crackerjack -h
When you ready to publish your project:
python -m crackerjack -p micro
The -p option not only publishes your project but will bump your project version for you. The options are 'micro', 'minor', and 'major'.
Acknowledgements
License
BSD-3-Clause
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file crackerjack-0.2.0.tar.gz
.
File metadata
- Download URL: crackerjack-0.2.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.6.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | db54049823bb9589e2b2a693594dd7efacffdce248dc1f68fc61a10e26c29e30 |
|
MD5 | 2e87a4c03031d68560cf66a6d4807cba |
|
BLAKE2b-256 | e9549ca6695c0457f2ebfa94e411cabc3b29753652859ab354a9e9d1fd352bdc |
File details
Details for the file crackerjack-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: crackerjack-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.6.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84e3135b5feed249f246a389df70088bf35c91afc10b1cd4ca0e628888847c61 |
|
MD5 | b94ae5b0c345e5e9f170618a27bb045b |
|
BLAKE2b-256 | 383b56e59ad191c0e5daba02351c1b4278658aced17b8f12681d3346110d2bcb |