From 0bb3b4e1944b6f8752603e06fafd3a94a9a1d18f Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 13 Jul 2018 13:43:19 -0500 Subject: [PATCH] setup.py improvements - use setuptools (disable implicit bdist_egg) - use readme for long_description now that pypi supports markdown --- setup.py | 53 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/setup.py b/setup.py index d6c5cd5..013d118 100644 --- a/setup.py +++ b/setup.py @@ -1,38 +1,49 @@ #!/usr/bin/env python import sys -from distutils.core import setup +from setuptools import setup +from setuptools.command.bdist_egg import bdist_egg -long_description = """ -Context managers for capturing C-level output:: - - from wurlitzer import pipes - - with pipes() as (stdout, stderr): - call_c_function() - out = stdout.read() - err = stderr.read() -""" +with open("README.md") as f: + long_description = f.read() version_ns = {} -with open('wurlitzer.py') as f: +with open("wurlitzer.py") as f: for line in f: - if line.startswith('__version__'): + if line.startswith("__version__"): exec(line, version_ns) + +class bdist_egg_disabled(bdist_egg): + """Disabled version of bdist_egg + + Prevents setup.py install from performing setuptools' default easy_install, + which it should never ever do. + """ + + def run(self): + sys.exit( + "Aborting implicit building of eggs. Use `pip install .` to install from source." + ) + + setup_args = dict( - name='wurlitzer', - version=version_ns['__version__'], + name="wurlitzer", + version=version_ns["__version__"], author="Min RK", author_email="benjaminrk@gmail.com", description="Capture C-level output in context managers", long_description=long_description, + long_description_content_type="text/markdown", url="https://github.com/minrk/wurlitzer", - py_modules=['wurlitzer'], + py_modules=["wurlitzer"], + python_requires=">=2.7", license="MIT", - cmdclass={}, + cmdclass={ + "bdist_egg": bdist_egg if "bdist_egg" in sys.argv else bdist_egg_disabled + }, classifiers=[ - "Development Status :: 3 - Alpha", + "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", @@ -40,9 +51,5 @@ ], ) -if 'bdist_wheel' in sys.argv: - from wheel.bdist_wheel import bdist_wheel - setup_args['cmdclass']['bdist_wheel'] = bdist_wheel - -if __name__ == '__main__': +if __name__ == "__main__": setup(**setup_args)