From 611787439079b767044807ef04dd2e77c4b76f71 Mon Sep 17 00:00:00 2001 From: Mathieu Dupuy Date: Thu, 1 Feb 2024 00:06:12 +0100 Subject: [PATCH] migrate to setup.cfg --- .github/workflows/publish.yml | 4 +- requirements/packaging.txt | 1 + setup.py | 110 +--------------------------------- 3 files changed, 6 insertions(+), 109 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a8bfd1ce..86bd97f6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,4 +23,6 @@ jobs: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - python setup.py publish \ No newline at end of file + python -m build + twine check dist/* + twine upload dist/* diff --git a/requirements/packaging.txt b/requirements/packaging.txt index 1eae9429..e851240a 100644 --- a/requirements/packaging.txt +++ b/requirements/packaging.txt @@ -1,3 +1,4 @@ twine>=3.1.1 wheel>=0.34.2 +build setuptools diff --git a/setup.py b/setup.py index 488db677..d1d0f237 100644 --- a/setup.py +++ b/setup.py @@ -1,109 +1,3 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -import os -import re -import shutil -import sys +from setuptools import setup -from setuptools import find_namespace_packages, setup - -name = 'drf-spectacular' -package = 'drf_spectacular' -description = 'Sane and flexible OpenAPI 3 schema generation for Django REST framework' -url = 'https://github.com/tfranzel/drf-spectacular' -author = 'T. Franzel' -author_email = 'tfranzel@gmail.com' -license = 'BSD' - -with open('README.rst') as readme: - long_description = readme.read() - -with open('requirements/base.txt') as fh: - requirements = [r for r in fh.read().split('\n') if not r.startswith('#')] - - -def get_version(package): - """ - Return package version as listed in `__version__` in `init.py`. - """ - init_py = open(os.path.join(package, '__init__.py')).read() - return re.search("^__version__ = ['\"]([^'\"]+)['\"]", - init_py, re.MULTILINE).group(1) - - -version = get_version(package) - - -if sys.argv[-1] == 'publish': - if os.system("pip freeze | grep twine"): - print("twine not installed.\nUse `pip install twine`.\nExiting.") - sys.exit(1) - os.system("python setup.py sdist bdist_wheel") - if os.system("twine check dist/*"): - print("twine check failed. Packages might be outdated.") - print("Try using `pip install -U twine wheel`.\nExiting.") - sys.exit(1) - if os.system("twine upload dist/*"): - print("failed to upload package") - sys.exit(1) - if os.environ.get('CI'): - os.system("git config user.name github-actions") - os.system("git config user.email github-actions@github.com") - os.system(f"git tag -a {version} -m 'version {version}'") - if os.system("git push --tags"): - print("failed pushing release tag") - sys.exit(1) - shutil.rmtree('dist') - shutil.rmtree('build') - shutil.rmtree('drf_spectacular.egg-info') - sys.exit() - - -setup( - name=name, - version=version, - url=url, - license=license, - description=description, - long_description=long_description, - long_description_content_type='text/x-rst', - author=author, - author_email=author_email, - packages=[p for p in find_namespace_packages(exclude=('tests*',)) if p.startswith(package)], - include_package_data=True, - python_requires=">=3.6", - install_requires=requirements, - extras_require={ - "offline": ["drf-spectacular-sidecar"], - "sidecar": ["drf-spectacular-sidecar"], - }, - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Web Environment', - 'Framework :: Django', - 'Framework :: Django :: 2.2', - 'Framework :: Django :: 3.2', - 'Framework :: Django :: 4.0', - 'Framework :: Django :: 4.1', - 'Framework :: Django :: 4.2', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: BSD License', - 'Operating System :: OS Independent', - 'Natural Language :: English', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Documentation', - 'Topic :: Software Development :: Code Generators', - ], - project_urls={ - 'Source': 'https://github.com/tfranzel/drf-spectacular', - 'Documentation': 'https://drf-spectacular.readthedocs.io', - }, -) +setup()