Metadata-Version: 2.1
Name: tomte
Version: 0.2.17
Summary: A library that wraps many useful tools (linters, analysers, etc) to keep Python code clean, secure, well-documented and optimised.
License: MIT
Author: David Minarsch
Author-email: david.minarsch@googlemail.com
Requires-Python: >=3.8,<4
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
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.3.7) ; extra == "docs"
Requires-Dist: Pygments (>=2.16,<3.0) ; extra == "docs"
Requires-Dist: bandit (==1.7.4) ; extra == "bandit"
Requires-Dist: black (==23.1.0) ; extra == "black"
Requires-Dist: bs4 (==0.0.1) ; extra == "docs"
Requires-Dist: click (>=8.1.0,<9) ; extra == "black" or extra == "cli" or extra == "docs"
Requires-Dist: darglint (==1.8.1) ; extra == "darglint"
Requires-Dist: flake8 (==3.9.2) ; extra == "flake8"
Requires-Dist: flake8-bugbear (==23.1.14) ; extra == "flake8"
Requires-Dist: flake8-docstrings (==1.6.0) ; extra == "flake8"
Requires-Dist: flake8-eradicate (==1.4.0) ; extra == "flake8"
Requires-Dist: flake8-isort (==6.0.0) ; extra == "flake8"
Requires-Dist: isort (==5.11.4) ; extra == "isort"
Requires-Dist: liccheck (==0.8.3) ; extra == "liccheck"
Requires-Dist: markdown-include (==0.8.0) ; extra == "docs"
Requires-Dist: mkdocs (>=1.5.3,<2.0) ; extra == "docs"
Requires-Dist: mkdocs-macros-plugin (==0.7.0) ; extra == "docs"
Requires-Dist: mkdocs-material (==9.4.10) ; extra == "docs"
Requires-Dist: mkdocs-material-extensions (==1.3) ; extra == "docs"
Requires-Dist: mkdocs-redirects (==1.2.0) ; extra == "docs"
Requires-Dist: mypy (==0.991) ; extra == "mypy"
Requires-Dist: pydoc-markdown (==4.8.2) ; extra == "docs"
Requires-Dist: pydocstyle (==6.2.3) ; extra == "flake8" or extra == "docs"
Requires-Dist: pylint (==2.13.9) ; extra == "pylint"
Requires-Dist: pymdown-extensions (>=10.2,<11.0) ; extra == "docs"
Requires-Dist: pytest (==7.2.1) ; extra == "tests"
Requires-Dist: pytest-asyncio (>=0.21.0,<0.22.0) ; extra == "tests"
Requires-Dist: pytest-cov (==4.0.0) ; extra == "tests"
Requires-Dist: pytest-randomly (==3.12.0) ; extra == "tests"
Requires-Dist: pytest-rerunfailures (==11.0) ; extra == "tests"
Requires-Dist: requests (>=2.28.1,<3) ; extra == "cli"
Requires-Dist: safety (==2.4.0b1) ; extra == "safety"
Requires-Dist: tox (==3.28.0) ; extra == "cli" or extra == "tox"
Requires-Dist: vulture (==2.7) ; 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.

### Upgrading versions

Currently, the following, somewhat hacky, process works well:

1. Run `sed -i '' "s/==/>=/g" pyproject.toml` to remove strict version requirements.

2. `poetry shell` and `pip install toml requests`

3. Run `python ./bump_to_latest.py`

4. Check non-strict versions in `pyproject.toml` and make them strict by manually running the `poetry add PACKAGE@==VERSION --optional`. Finaly, run `poetry update`

## 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, bump versions in `pyproject.toml` and `tomte/__init__.py`, then `poetry lock`, then `rm -rf dist`, then `poetry publish --build --username=<username> --password=<password>`.

