Skip to main content

Pyupgrade wrapper to supply configuration via pyproject.toml

Project description

pyproject pyupgrade

pyproject.toml configuration wrapper for pyupgrade

Installation

Via pip

pip install pyproject-pyupgrade

Via poetry

poetry add --group dev pyproject-pyupgrade

Via pipx

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:

[tool.pyupgrade]
# for example, if you're using python 3.10
py310-plus = true

And then just execute it via CLI

pyproject-pyupgrade [filename [filenames...]]

or shorter version

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:

[tool.pyupgrade]
pyproject-pyupgrade-debug = true

Or directly via CLI

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 for instructions.

Sample .pre-commit-config.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)
  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyproject_pyupgrade-0.1.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyproject_pyupgrade-0.1.1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file pyproject_pyupgrade-0.1.1.tar.gz.

File metadata

  • Download URL: pyproject_pyupgrade-0.1.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.5.0-18-generic

File hashes

Hashes for pyproject_pyupgrade-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f9f810666ddff91cbd697c948aabb1f1bbad115508d9b0be1b2f3828d0d2c298
MD5 1f627bcdd969246fa4cdc41895ec0fbb
BLAKE2b-256 06682050a3325079a652e5690c84ae40f64292d7a27dca8088ee4f8dc86c95e5

See more details on using hashes here.

File details

Details for the file pyproject_pyupgrade-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyproject_pyupgrade-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.5.0-18-generic

File hashes

Hashes for pyproject_pyupgrade-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 29b1551dbe9feec33a3d3f1df8778c05ab45319cc5b38002e8da3c520fae5b49
MD5 b0f8c7882ea13d5a41172d5d0af559bb
BLAKE2b-256 0e2ce68dc8843b40e81f49457e755b8f42ab1c58e857e79f8754f4fe50c74aea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page