diff options
author | Jon Dufresne <jon.dufresne@gmail.com> | 2020-06-10 21:12:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-11 10:12:48 +0600 |
commit | 2194df2fc223313faf78b4866c2fd6ceda5ee797 (patch) | |
tree | ccb8f196b3cc931aee5408561fac3fb5e8408fb7 | |
parent | 079849d17687fde8fcb545c76882766883aa0f7a (diff) | |
download | pyjwt-2194df2fc223313faf78b4866c2fd6ceda5ee797.tar.gz |
Move setup information to declarative setup.cfg (#495)
Use a declarative syntax to avoid mixing code and configuration.
Simplifies handling of long description and version by reducing some
boilerplate.
For details on this setuptools feature, see:
https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files
-rw-r--r-- | setup.cfg | 49 | ||||
-rwxr-xr-x | setup.py | 73 | ||||
-rw-r--r-- | tox.ini | 4 |
3 files changed, 53 insertions, 73 deletions
diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..6f6616b --- /dev/null +++ b/setup.cfg @@ -0,0 +1,49 @@ +[metadata] +name = PyJWT +version = attr: jwt.__version__ +author = Jose Padilla +author_email = hello@jpadilla.com +description = JSON Web Token implementation in Python +license = MIT +keywords = + json + jwt + security + signing + token + web +url = https://github.com/jpadilla/pyjwt +long_description = file: README.rst +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + Natural Language :: English + License :: OSI Approved :: MIT License + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Topic :: Utilities + +[options] +python_requires = >=3.5 +packages = find: + +[options.entry_points] +console_scripts = + pyjwt = jwt.__main__:main + +[options.extras_require] +crypto = + cryptography >= 1.4 +tests = + pytest>=4.0.1,<5.0.0 + pytest-cov>=2.6.0,<3.0.0 + +[options.packages.find] +exclude = + tests + tests.* @@ -1,74 +1,5 @@ #!/usr/bin/env python3 -import os -import re -import sys +from setuptools import setup -from setuptools import find_packages, setup - - -def get_version(package): - """ - Return package version as listed in `__version__` in `init.py`. - """ - with open(os.path.join(package, "__init__.py"), "rb") as init_py: - src = init_py.read().decode("utf-8") - return re.search("__version__ = ['\"]([^'\"]+)['\"]", src).group(1) - - -version = get_version("jwt") - -with open(os.path.join(os.path.dirname(__file__), "README.rst")) as readme: - long_description = readme.read() - -if sys.argv[-1] == "publish": - if os.system("pip freeze | grep twine"): - print("twine not installed.\nUse `pip install twine`.\nExiting.") - sys.exit() - os.system("python setup.py sdist bdist_wheel") - os.system("twine upload dist/*") - print("You probably want to also tag the version now:") - print(" git tag -a {0} -m 'version {0}'".format(version)) - print(" git push --tags") - sys.exit() - -EXTRAS_REQUIRE = { - "tests": ["pytest>=4.0.1,<5.0.0", "pytest-cov>=2.6.0,<3.0.0"], - "crypto": ["cryptography >= 1.4"], -} - -EXTRAS_REQUIRE["dev"] = ( - EXTRAS_REQUIRE["tests"] + EXTRAS_REQUIRE["crypto"] + ["mypy", "pre-commit"] -) - -setup( - name="PyJWT", - version=version, - author="Jose Padilla", - author_email="hello@jpadilla.com", - description="JSON Web Token implementation in Python", - license="MIT", - keywords="jwt json web token security signing", - url="https://github.com/jpadilla/pyjwt", - packages=find_packages( - exclude=["*.tests", "*.tests.*", "tests.*", "tests"] - ), - long_description=long_description, - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "Natural Language :: English", - "License :: OSI Approved :: MIT License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Topic :: Utilities", - ], - python_requires=">=3.5", - extras_require=EXTRAS_REQUIRE, - entry_points={"console_scripts": ["pyjwt = jwt.__main__:main"]}, -) +setup() @@ -17,11 +17,11 @@ deps = [testenv:typing] -extras = dev +deps = mypy commands = mypy --ignore-missing-imports jwt [testenv:lint] -extras = dev +deps = pre-commit passenv = HOMEPATH # needed on Windows commands = pre-commit run --all-files |