Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asottile/setup-py-upgrade
upgrade a setup.py to declarative metadata
https://github.com/asottile/setup-py-upgrade
packaging setuptools
Last synced: 4 days ago
JSON representation
upgrade a setup.py to declarative metadata
- Host: GitHub
- URL: https://github.com/asottile/setup-py-upgrade
- Owner: asottile
- License: mit
- Created: 2019-02-03T04:40:45.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T01:21:34.000Z (about 1 month ago)
- Last Synced: 2024-11-21T22:27:00.872Z (21 days ago)
- Topics: packaging, setuptools
- Language: Python
- Size: 221 KB
- Stars: 149
- Watchers: 4
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-codemods - **setup-py-upgrade** - upgrade setup.py to new metadata syntax (By Environment / Python)
README
[![build status](https://github.com/asottile/setup-py-upgrade/actions/workflows/main.yml/badge.svg)](https://github.com/asottile/setup-py-upgrade/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/asottile/setup-py-upgrade/main.svg)](https://results.pre-commit.ci/latest/github/asottile/setup-py-upgrade/main)setup-py-upgrade
================upgrade a setup.py to declarative metadata
## installation
```bash
pip install setup-py-upgrade
```## cli
Consult the help for the latest usage:
```console
$ setup-py-upgrade --help
usage: setup-py-upgrade [-h] directorypositional arguments:
directoryoptional arguments:
-h, --help show this help message and exit
```pass the root directory of the repository you'd like to convert
the script overwrites `setup.py` and `setup.cfg` when run
## sample output
```console
$ setup-py-upgrade ../pre-commit
../pre-commit/setup.py and ../pre-commit/setup.cfg written!
$ tail -n999 ../pre-commit/setup.{py,cfg}
==> ../pre-commit/setup.py <==
from setuptools import setup
setup()==> ../pre-commit/setup.cfg <==
[metadata]
name = pre_commit
description = A framework for managing and maintaining multi-language pre-commit hooks.
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/pre-commit/pre-commit
version = 1.14.2
author = Anthony Sottile
author_email = [email protected]
classifiers =
License :: OSI Approved :: MIT License
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: Implementation :: PyPy[options]
packages = find:
install_requires =
aspy.yaml
cfgv>=1.4.0
identify>=1.0.0
importlib-metadata
nodeenv>=0.11.1
pyyaml
six
toml
virtualenv
futures; python_version<"3.2"
importlib-resources; python_version<"3.7"[options.packages.find]
exclude =
tests*
testing*[options.entry_points]
console_scripts =
pre-commit = pre_commit.main:main
pre-commit-validate-config = pre_commit.clientlib:validate_config_main
pre-commit-validate-manifest = pre_commit.clientlib:validate_manifest_main[options.package_data]
pre_commit.resources =
*.tar.gz
empty_template_*
hook-tmpl[bdist_wheel]
universal = True
```## what versions of setuptools / pip does the output work with?
- `pip>=1.5` (when installing from a wheel)
- released 2014-01-02
- `setuptools>=30.3` (when building from source)
- released 2016-12-08
- `virtualenv>=15.2` (to get a sufficient setuptools via `--no-download`)
- released 2018-03-21## what is not supported
declarative metadata does not support `ext_modules` or setuptools plugins --
those must stay in `setup.py`. If you're converting a project which uses one
of those, you'll see a message like:```console
$ setup-py-upgrade ../future-breakpoint/
ext_modules= is not supported in setup.cfg
```To convert those, temporarily remove the offending constructs from `setup.py`,
then run `setup-py-upgrade`, then paste them back into the file.## related projects
- [setup-cfg-fmt]: apply a consistent format to `setup.cfg` files
[setup-cfg-fmt]: https://github.com/asottile/setup-cfg-fmt