https://github.com/venomlab/pyproject-pyupgrade
pyproject.toml configuration wrapper for pyupgrade
https://github.com/venomlab/pyproject-pyupgrade
pyproject pyproject-toml python pyupgrade
Last synced: 27 days ago
JSON representation
pyproject.toml configuration wrapper for pyupgrade
- Host: GitHub
- URL: https://github.com/venomlab/pyproject-pyupgrade
- Owner: venomlab
- License: mit
- Created: 2024-02-19T18:23:34.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-02-19T22:16:27.000Z (over 2 years ago)
- Last Synced: 2026-05-13T23:15:43.684Z (about 1 month ago)
- Topics: pyproject, pyproject-toml, python, pyupgrade
- Language: Python
- Homepage:
- Size: 44.9 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pyproject pyupgrade
pyproject.toml configuration wrapper for [pyupgrade](https://github.com/asottile/pyupgrade)
## Installation
Via pip
```shell
pip install pyproject-pyupgrade
```
Via poetry
```shell
poetry add --group dev pyproject-pyupgrade
```
Via pipx
```shell
pipx install -f pyproject-pyupgrade
```
## Usage
Make sure you have a desired version of `pyupgrade`
installed in your python environment.
Add the following section in your `pyproject.toml`:
```toml
[tool.pyupgrade]
# for example, if you're using python 3.10
py310-plus = true
```
And then just execute it via CLI
```shell
pyproject-pyupgrade [filename [filenames...]]
```
or shorter version
```shell
ppyupgrade [filename [filenames...]]
```
So, basically you specify flags that you want to add to `pyupgrade`
CLI arguments specifying them without leading two dashes (`--`).
This is the way how you can supply any option that your version of `pyupgrade` receives
There is also one additional parameter provided exclusively by `pyproject-pyupgrade` wrapper:
```toml
[tool.pyupgrade]
pyproject-pyupgrade-debug = true
```
Or directly via CLI
```shell
ppyupgrade --pyproject-pyupgrade-debug ...
```
This option is going to output debug information about `pyproject-pyupgrade`.
Info about parsed configuration from pyproject.toml (if there is one) and all the flags
## As a pre-commit hook
See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions.
Sample `.pre-commit-config.yaml`:
```yaml
repos:
- repo: https://github.com/venomlab/pyproject-pyupgrade
rev: v0.1.1
hooks:
- id: ppyupgrade
```
## ToDo
- [ ] Add tests and `tox` config to run them for all supported python versions
- [ ] Add option to specify custom `pyupgrade` command. It allows in case if you want to chain pyupgrade wrappers (for instance, with [pyupgrade-directories](https://github.com/domdfcoding/pyupgrade-directories))
- [ ] Add better parser for TOML. Right now the parser is ultra primitive and might lead to errors if used improperly
- [ ] If `python` version >= `3.11` use tomllib for `pyproject.toml` parsing
- [ ] Support adding custom options or key-value arguments to `pyupgrade` CLI
- [ ] Support storing configuration in `pyupgrade.ini`
- [ ] Support storing configuration in `tox.ini`
- [ ] Support storing configuration in `setup.cfg`