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: 8 months 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 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-19T22:16:27.000Z (over 1 year ago)
- Last Synced: 2025-02-01T08:15:57.137Z (9 months 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` receivesThere 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`