# Lemming
[![Hits-of-Code](https://hitsofcode.com/github/koviubi56/lemming?branch=main)](https://hitsofcode.com/github/koviubi56/lemming/view?branch=main)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d421571132f64a7dbd63fef92cf36e3e)](https://www.codacy.com/gh/koviubi56/lemming/dashboard?utm_source=github.com&utm_medium=referral&utm_content=koviubi56/lemming&utm_campaign=Badge_Grade)
![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/koviubi56/lemming)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![semantic-release](https://img.shields.io/badge/%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)
![GitHub](https://img.shields.io/github/license/koviubi56/lemming)
![PyPI](https://img.shields.io/pypi/v/python-lemming)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/python-lemming)
![PyPI - Format](https://img.shields.io/pypi/format/python-lemming)
**Lemming** is a tool for formatting and linting your code. With Lemming, everyone will use the same formatters and linters, with the same version.
## Installation
Use the package manager [pip](https://pip.pypa.io/en/stable/) to install Lemming. _[Need more help?](https://packaging.python.org/en/latest/tutorials/installing-packages/)_
```bash
pip install python-lemming
```
## Requirements
Lemming requires Python 3.7
## Usage
### 1. Create the config
Lemming's config lives in these places:
- in the `.lemming.toml` file
- in the `pyproject.toml` file
Please note, that there must be a `lemming` or `tool.lemming` key in the config file.
The config looks like this:
```toml
fail_fast = false # OPTIONAL, whether or not immediately quit in case of an error
[[formatters]]
name = "some_example" # OPTIONAL, used to identify this formatter. Defaults to packages[0]
packages = ["example"] # REQUIRED, the package(s) to install with pip (might include versions with "==x.y.z")
format_command = "{pyexe} -m example {path}" # REQUIRED, the command to run to format the code ({pyexe} will be replaced with the python executable, {path} with the path passed to Lemming (usually the current working directory: "."))
check_command = "{pyexe} -m example --check {path}" # OPTIONAL, the command to run to check the code (stuff will be replaced just like in format_command)
allow_nonzero_on_format = true # OPTIONAL, if true it is allowed for the format_command to return a non-zero exit status
[[linters]]
name = "other_example" # OPTIONAL, used to identify this linter. Defaults to packages[0]
packages = ["example"] # REQUIRED, same as for formatters
command = "{pyexe} -m example {path}" # REQUIRED, the command to run to lint the code (stuff will be replaced just like in format_command)
run_first = true # OPTIONAL, if true this linter will be ran BEFORE formatters, and other linters. Defaults to false.
```
### 2. Run Lemming
After [installing](#installation) Lemming, run
```bash
lemming {format,check} .
```
If you choose format, the `format_command`s will be ran, but if you choose check, the `check_command`s will be ran. Linters will be ran in both cases.
You can also use Lemming as a GitHub workflow, like [this](.github/workflows/lemming.yml).
## CLI usage
```bash
Usage: lemming [OPTIONS] COMMAND [ARGS]...
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version -V Print the version of Lemming and exit. │
│ --install-completion [bash|zsh|fish|powershell|pwsh] Install completion for the specified shell. [default: None] │
│ --show-completion [bash|zsh|fish|powershell|pwsh] Show completion for the specified shell, to copy it or customize the installation. [default: None] │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ check Check the formatting of your code and run linters. │
│ format Format your code and run linters. │
│ pre-commit Install a pre-commit git hook which will run Lemming. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
### Check
```bash
Usage: lemming check [OPTIONS] PATHS...
Check the formatting of your code and run linters.
╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * paths PATHS... [default: None] [required] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --quiet-commands,--qc If passed the output of the formatters and linters will be hidden. │
│ --quiet-pip,--qp If passed the output of pip will be hidden. │
│ --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) │
│ --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) │
│ --config FILE The config file to use [default: None] │
│ --only TEXT Only run these formatters/linters (may be passed multiple times) [default: None] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
### Format
```bash
Usage: lemming format [OPTIONS] PATHS...
Format your code and run linters.
╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * paths PATHS... [default: None] [required] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --quiet-commands,--qc If passed the output of the formatters and linters will be hidden. │
│ --quiet-pip,--qp If passed the output of pip will be hidden. │
│ --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) │
│ --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) │
│ --config FILE The config file to use. [default: None] │
│ --only TEXT Only run these formatters/linters (may be passed multiple times) [default: None] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
### Pre-commit
```bash
Usage: lemming pre-commit [OPTIONS]
Install a pre-commit git hook which will run Lemming.
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --git-repository DIRECTORY The root directory of the git repository to use. Defaults to the current working directory. [default: (dynamic)] │
│ --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) │
│ --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```
## Support
Questions should be asked in the [Discussions tab](https://github.com/koviubi56/lemming/discussions/categories/q-a).
Feature requests and bug reports should be reported in the [Issues tab](https://github.com/koviubi56/lemming/issues/new/choose).
Security vulnerabilities should be reported as described in our [Security policy](https://github.com/koviubi56/lemming/security/policy) (in the [SECURITY.md](SECURITY.md) file).
## Contributing
[Pull requests](https://github.com/koviubi56/lemming/blob/main/CONTRIBUTING.md#pull-requests) are welcome. For major changes, please [open an issue first](https://github.com/koviubi56/lemming/issues/new/choose) to discuss what you would like to change.
Please make sure to add entries to [the changelog](CHANGELOG.md).
For more information, please read the [contributing guidelines](CONTRIBUTING.md).
## Authors and acknowledgments
A list of nice people who helped this project can be found in the [CONTRIBUTORS file](CONTRIBUTORS).
## License
[GNU GPLv3+](LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/koviubi56/lemming",
"name": "python-lemming",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "lemming,format,formatter,lint,linting,linter",
"author": "Koviubi56",
"author_email": "koviubi56@duck.com",
"download_url": "https://files.pythonhosted.org/packages/18/8c/d062f107eaca42a68e6bd13c15ca386c5c6827da60a7482def97c6f13f78/python-lemming-0.6.0.tar.gz",
"platform": "unix",
"description": "# Lemming\r\n\r\n[![Hits-of-Code](https://hitsofcode.com/github/koviubi56/lemming?branch=main)](https://hitsofcode.com/github/koviubi56/lemming/view?branch=main)\r\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d421571132f64a7dbd63fef92cf36e3e)](https://www.codacy.com/gh/koviubi56/lemming/dashboard?utm_source=github.com&utm_medium=referral&utm_content=koviubi56/lemming&utm_campaign=Badge_Grade)\r\n![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/koviubi56/lemming)\r\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\r\n![semantic-release](https://img.shields.io/badge/%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)\r\n![GitHub](https://img.shields.io/github/license/koviubi56/lemming)\r\n![PyPI](https://img.shields.io/pypi/v/python-lemming)\r\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/python-lemming)\r\n![PyPI - Format](https://img.shields.io/pypi/format/python-lemming)\r\n\r\n**Lemming** is a tool for formatting and linting your code. With Lemming, everyone will use the same formatters and linters, with the same version.\r\n\r\n## Installation\r\n\r\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install Lemming. _[Need more help?](https://packaging.python.org/en/latest/tutorials/installing-packages/)_\r\n\r\n```bash\r\npip install python-lemming\r\n```\r\n\r\n## Requirements\r\n\r\nLemming requires Python 3.7\r\n\r\n## Usage\r\n\r\n### 1. Create the config\r\n\r\nLemming's config lives in these places:\r\n\r\n- in the `.lemming.toml` file\r\n- in the `pyproject.toml` file\r\n\r\nPlease note, that there must be a `lemming` or `tool.lemming` key in the config file.\r\n\r\nThe config looks like this:\r\n\r\n```toml\r\nfail_fast = false # OPTIONAL, whether or not immediately quit in case of an error\r\n\r\n[[formatters]]\r\nname = \"some_example\" # OPTIONAL, used to identify this formatter. Defaults to packages[0]\r\npackages = [\"example\"] # REQUIRED, the package(s) to install with pip (might include versions with \"==x.y.z\")\r\nformat_command = \"{pyexe} -m example {path}\" # REQUIRED, the command to run to format the code ({pyexe} will be replaced with the python executable, {path} with the path passed to Lemming (usually the current working directory: \".\"))\r\ncheck_command = \"{pyexe} -m example --check {path}\" # OPTIONAL, the command to run to check the code (stuff will be replaced just like in format_command)\r\nallow_nonzero_on_format = true # OPTIONAL, if true it is allowed for the format_command to return a non-zero exit status\r\n\r\n[[linters]]\r\nname = \"other_example\" # OPTIONAL, used to identify this linter. Defaults to packages[0]\r\npackages = [\"example\"] # REQUIRED, same as for formatters\r\ncommand = \"{pyexe} -m example {path}\" # REQUIRED, the command to run to lint the code (stuff will be replaced just like in format_command)\r\nrun_first = true # OPTIONAL, if true this linter will be ran BEFORE formatters, and other linters. Defaults to false.\r\n```\r\n\r\n### 2. Run Lemming\r\n\r\nAfter [installing](#installation) Lemming, run\r\n\r\n```bash\r\nlemming {format,check} .\r\n```\r\n\r\nIf you choose format, the `format_command`s will be ran, but if you choose check, the `check_command`s will be ran. Linters will be ran in both cases.\r\n\r\nYou can also use Lemming as a GitHub workflow, like [this](.github/workflows/lemming.yml).\r\n\r\n## CLI usage\r\n\r\n```bash\r\n Usage: lemming [OPTIONS] COMMAND [ARGS]...\r\n\r\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 --version -V Print the version of Lemming and exit. \u2502\r\n\u2502 --install-completion [bash|zsh|fish|powershell|pwsh] Install completion for the specified shell. [default: None] \u2502\r\n\u2502 --show-completion [bash|zsh|fish|powershell|pwsh] Show completion for the specified shell, to copy it or customize the installation. [default: None] \u2502\r\n\u2502 --help Show this message and exit. \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 check Check the formatting of your code and run linters. \u2502\r\n\u2502 format Format your code and run linters. \u2502\r\n\u2502 pre-commit Install a pre-commit git hook which will run Lemming. \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n```\r\n\r\n### Check\r\n\r\n```bash\r\n Usage: lemming check [OPTIONS] PATHS...\r\n\r\n Check the formatting of your code and run linters.\r\n\r\n\u256d\u2500 Arguments \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 * paths PATHS... [default: None] [required] \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 --quiet-commands,--qc If passed the output of the formatters and linters will be hidden. \u2502\r\n\u2502 --quiet-pip,--qp If passed the output of pip will be hidden. \u2502\r\n\u2502 --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) \u2502\r\n\u2502 --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) \u2502\r\n\u2502 --config FILE The config file to use [default: None] \u2502\r\n\u2502 --only TEXT Only run these formatters/linters (may be passed multiple times) [default: None] \u2502\r\n\u2502 --help Show this message and exit. \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n```\r\n\r\n### Format\r\n\r\n```bash\r\nUsage: lemming format [OPTIONS] PATHS...\r\n\r\n Format your code and run linters.\r\n\r\n\u256d\u2500 Arguments \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 * paths PATHS... [default: None] [required] \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 --quiet-commands,--qc If passed the output of the formatters and linters will be hidden. \u2502\r\n\u2502 --quiet-pip,--qp If passed the output of pip will be hidden. \u2502\r\n\u2502 --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) \u2502\r\n\u2502 --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) \u2502\r\n\u2502 --config FILE The config file to use. [default: None] \u2502\r\n\u2502 --only TEXT Only run these formatters/linters (may be passed multiple times) [default: None] \u2502\r\n\u2502 --help Show this message and exit. \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n```\r\n\r\n### Pre-commit\r\n\r\n```bash\r\n Usage: lemming pre-commit [OPTIONS]\r\n\r\n Install a pre-commit git hook which will run Lemming.\r\n\r\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 --git-repository DIRECTORY The root directory of the git repository to use. Defaults to the current working directory. [default: (dynamic)] \u2502\r\n\u2502 --verbose -v When passed the logger's threshold will be decreased by 10 (may be passed multiple times) \u2502\r\n\u2502 --quiet -q When passed the logger's threshold will be increased by 10 (may be passed multiple times) \u2502\r\n\u2502 --help Show this message and exit. \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n```\r\n\r\n## Support\r\n\r\nQuestions should be asked in the [Discussions tab](https://github.com/koviubi56/lemming/discussions/categories/q-a).\r\n\r\nFeature requests and bug reports should be reported in the [Issues tab](https://github.com/koviubi56/lemming/issues/new/choose).\r\n\r\nSecurity vulnerabilities should be reported as described in our [Security policy](https://github.com/koviubi56/lemming/security/policy) (in the [SECURITY.md](SECURITY.md) file).\r\n\r\n## Contributing\r\n\r\n[Pull requests](https://github.com/koviubi56/lemming/blob/main/CONTRIBUTING.md#pull-requests) are welcome. For major changes, please [open an issue first](https://github.com/koviubi56/lemming/issues/new/choose) to discuss what you would like to change.\r\n\r\nPlease make sure to add entries to [the changelog](CHANGELOG.md).\r\n\r\nFor more information, please read the [contributing guidelines](CONTRIBUTING.md).\r\n\r\n## Authors and acknowledgments\r\n\r\nA list of nice people who helped this project can be found in the [CONTRIBUTORS file](CONTRIBUTORS).\r\n\r\n## License\r\n\r\n[GNU GPLv3+](LICENSE)\r\n",
"bugtrack_url": null,
"license": "GPL",
"summary": "Lemming is a tool for formatting and linting code.",
"version": "0.6.0",
"project_urls": {
"Homepage": "https://github.com/koviubi56/lemming"
},
"split_keywords": [
"lemming",
"format",
"formatter",
"lint",
"linting",
"linter"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "56ef8d358f32b86604303c63085471fb318f3f63b142ab4b6f1b33f5c7771bef",
"md5": "aa3d751e9f30d30ac592aa322854bed6",
"sha256": "42235fbcfadcef4c52aacddb6eb866c6ede3036cae5278e5a0a4f18e720550e7"
},
"downloads": -1,
"filename": "python_lemming-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aa3d751e9f30d30ac592aa322854bed6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 24235,
"upload_time": "2023-07-11T13:12:05",
"upload_time_iso_8601": "2023-07-11T13:12:05.963846Z",
"url": "https://files.pythonhosted.org/packages/56/ef/8d358f32b86604303c63085471fb318f3f63b142ab4b6f1b33f5c7771bef/python_lemming-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "188cd062f107eaca42a68e6bd13c15ca386c5c6827da60a7482def97c6f13f78",
"md5": "66c89d508be68c53f59c35fa7cfc233e",
"sha256": "87626f5500ef6e58356c04c9f6d29d5cf886474d6935a52f5c6977bb1fe48b09"
},
"downloads": -1,
"filename": "python-lemming-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "66c89d508be68c53f59c35fa7cfc233e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 25692,
"upload_time": "2023-07-11T13:12:07",
"upload_time_iso_8601": "2023-07-11T13:12:07.603826Z",
"url": "https://files.pythonhosted.org/packages/18/8c/d062f107eaca42a68e6bd13c15ca386c5c6827da60a7482def97c6f13f78/python-lemming-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-11 13:12:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "koviubi56",
"github_project": "lemming",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "tomli",
"specs": []
},
{
"name": "python-mylog",
"specs": [
[
">=",
"0.8.0-beta.2"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
">=",
"4.6.0"
]
]
},
{
"name": "typer",
"specs": [
[
">=",
"0.9.0"
]
]
},
{
"name": "pydantic",
"specs": [
[
">=",
"1.5"
]
]
}
],
"lcname": "python-lemming"
}