Metadata-Version: 2.4
Name: tomte
Version: 0.6.2
Summary: A library that wraps many useful tools (linters, analysers, etc) to keep Python code clean, secure, well-documented and optimised.
License: MIT
License-File: LICENSE
Author: David Minarsch
Author-email: david.minarsch@googlemail.com
Requires-Python: >=3.10,<4
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Provides-Extra: bandit
Provides-Extra: black
Provides-Extra: cli
Provides-Extra: darglint
Provides-Extra: docs
Provides-Extra: flake8
Provides-Extra: isort
Provides-Extra: liccheck
Provides-Extra: mypy
Provides-Extra: pylint
Provides-Extra: safety
Provides-Extra: tests
Provides-Extra: tox
Provides-Extra: vulture
Requires-Dist: Markdown (==3.10.2) ; extra == "docs"
Requires-Dist: Pygments (==2.19.2) ; extra == "docs"
Requires-Dist: bandit (==1.9.3) ; extra == "bandit"
Requires-Dist: black (==26.1.0) ; extra == "black"
Requires-Dist: bs4 (==0.0.2) ; extra == "docs"
Requires-Dist: click (==8.3.1) ; extra == "black" or extra == "cli" or extra == "docs"
Requires-Dist: darglint (==1.8.1) ; extra == "darglint"
Requires-Dist: flake8 (==7.3.0) ; extra == "flake8"
Requires-Dist: flake8-bugbear (==25.11.29) ; extra == "flake8"
Requires-Dist: flake8-docstrings (==1.7.0) ; extra == "flake8"
Requires-Dist: flake8-eradicate (==1.5.0) ; extra == "flake8"
Requires-Dist: flake8-isort (==7.0.0) ; extra == "flake8"
Requires-Dist: flake8-pytest-style (==2.2.0) ; extra == "flake8"
Requires-Dist: isort (==8.0.0) ; extra == "isort"
Requires-Dist: liccheck (==0.9.2) ; extra == "liccheck"
Requires-Dist: markdown-include (==0.8.1) ; extra == "docs"
Requires-Dist: mkdocs (==1.6.1) ; extra == "docs"
Requires-Dist: mkdocs-macros-plugin (==1.5.0) ; extra == "docs"
Requires-Dist: mkdocs-material (==9.7.3) ; extra == "docs"
Requires-Dist: mkdocs-material-extensions (==1.3.1) ; extra == "docs"
Requires-Dist: mkdocs-redirects (==1.2.2) ; extra == "docs"
Requires-Dist: mypy (==1.19.1) ; extra == "mypy"
Requires-Dist: pydoc-markdown (==4.8.2) ; extra == "docs"
Requires-Dist: pydocstyle (==6.3.0) ; extra == "flake8" or extra == "docs"
Requires-Dist: pylint (==4.0.5) ; extra == "pylint"
Requires-Dist: pymdown-extensions (==10.21) ; extra == "docs"
Requires-Dist: pytest (==8.4.2) ; extra == "tests"
Requires-Dist: pytest-asyncio (==1.3.0) ; extra == "tests"
Requires-Dist: pytest-cov (==7.0.0) ; extra == "tests"
Requires-Dist: pytest-randomly (==4.0.1) ; extra == "tests"
Requires-Dist: pytest-rerunfailures (==16.1) ; extra == "tests"
Requires-Dist: requests (==2.32.5) ; extra == "cli"
Requires-Dist: safety (==3.7.0) ; extra == "safety"
Requires-Dist: tox (==4.46.0) ; extra == "cli" or extra == "tox"
Requires-Dist: vulture (==2.14) ; extra == "vulture"
Description-Content-Type: text/markdown

# tomte
A library that wraps many useful tools (linters, analysers, etc) to keep Python code clean, secure, well-documented and optimised.

Essentially does nothing else but pinning multiple packages to compatible versions, for consistency across many projects and simplicity of use.

Extremely (!) opinionated by design!

## Wrapped tools

- black
- bandit
- isort
- flake8
- mypy
- safety
- darglint
- vulture
- pylint
- docs (various mkdocs libraries)
- tests (various pytest libraries)
- tox
- liccheck

To install, for instance `black`, simply specify `tomte[black]==VERSION`, where `VERSION` is the latest version, and then use `black` CLI as required.

## Development:

### Install deps:

Install poetry.
Install development dependencies before running maintenance scripts:

`poetry install --with dev`

### Upgrading versions

Use the script directly (fully automated, no manual pin editing):

1. Run `poetry run python bump_to_latest.py`

This command automatically:

- Resolves latest compatible versions for `<4,>=3.10` support.
- Applies strict `==` pins with Poetry.
- Falls back to the highest resolver-compatible version when the absolute latest conflicts.
- Bumps package version (patch by default) in `pyproject.toml`, `tomte/__init__.py`, and `tests/test_tomte.py`.
- Regenerates `poetry.lock`.

Useful flags:

- `--dry-run`
- `--bump-version none|patch|minor|major`
- `--no-lock`

## Name

["The Swedish hustomte (house elf/gnome) is a quiet little guy, dressed mostly in gray and red, living at your house or farmsted helping out by taking care of things around the house and keep everyone safe."](https://funflector.com/blog/the-quiet-swedish-tomte/)

![A tomte and his son enjoying quiet company of the cat. Illustration by Rolf Lidberg.](https://github.com/valory-xyz/tomte/blob/main/tomte_and_cat_by_swedish_artist_rolf_lidberg.jpg?raw=true)

"A tomte and his son enjoying quiet company of the cat. Illustration by Rolf Lidberg."

## Release guide:

Finish edits and ensure dev dependencies are installed (`poetry install --with dev`), then run `poetry run python bump_to_latest.py`, then `poetry run pytest -q`, then `poetry build`, then `rm -rf dist`, then `poetry publish --build --username=<username> --password=<password>`.

