From 08845f792acd946b075c71011aa9ffc2f03887d1 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Fri, 29 Mar 2024 19:23:13 -0400 Subject: [PATCH] Refactor setup.py and update dependencies --- setup.py | 97 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 44 deletions(-) diff --git a/setup.py b/setup.py index 4d84e69..3355b19 100644 --- a/setup.py +++ b/setup.py @@ -9,20 +9,20 @@ from shutil import rmtree from setuptools import setup, Command here = os.path.abspath(os.path.dirname(__file__)) -with io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as f: - long_description = '\n' + f.read() +with io.open(os.path.join(here, "README.rst"), encoding="utf-8") as f: + long_description = "\n" + f.read() class PublishCommand(Command): """Support setup.py publish.""" - description = 'Build and publish the package.' + description = "Build and publish the package." user_options = [] @staticmethod def status(s): """Prints things in bold.""" - print('\033[1m{}\033[0m'.format(s)) + print("\033[1m{}\033[0m".format(s)) def initialize_options(self): pass @@ -32,68 +32,77 @@ class PublishCommand(Command): def run(self): try: - self.status('Removing previous builds...') - rmtree(os.path.join(here, 'dist')) + self.status("Removing previous builds...") + rmtree(os.path.join(here, "dist")) except FileNotFoundError: pass - self.status('Building Source and Wheel (universal) distribution...') - os.system('{} setup.py sdist bdist_wheel --universal'.format(sys.executable)) + self.status("Building Source and Wheel (universal) distribution...") + os.system("{} setup.py sdist bdist_wheel --universal".format(sys.executable)) - self.status('Uploading the package to PyPi via Twine...') - os.system('twine upload dist/*') + self.status("Uploading the package to PyPi via Twine...") + os.system("twine upload dist/*") sys.exit() -requires = ['SQLAlchemy', - 'openpyxl<2.5.0', # temporary fix to issue #142 - 'tablib>=0.11.4', - 'openpyxl>2.6.0', # https://github.com/kennethreitz-archive/records/pull/184#issuecomment-606207851 - 'docopt'] -version = '0.5.3' + +requires = [ + "SQLAlchemy", + "tablib>=0.11.4", + "openpyxl>2.6.0", # https://github.com/kennethreitz-archive/records/pull/184#issuecomment-606207851 + "docopt", +] +version = "0.5.3" def read(f): - return open(f, encoding='utf-8').read() + return open(f, encoding="utf-8").read() + setup( - name='records', + name="records", version=version, - description='SQL for Humans', - long_description=read('README.rst') + '\n\n' + read('HISTORY.rst'), - author='Kenneth Reitz', - author_email='me@kennethreitz.org', - url='https://github.com/kennethreitz/records', - py_modules=['records'], - package_data={'': ['LICENSE']}, + description="SQL for Humans", + long_description=read("README.rst") + "\n\n" + read("HISTORY.rst"), + author="Kenneth Reitz", + author_email="me@kennethreitz.org", + url="https://github.com/kennethreitz/records", + py_modules=["records"], + package_data={"": ["LICENSE"]}, include_package_data=True, entry_points={ - 'console_scripts': ['records=records:cli'], + "console_scripts": ["records=records:cli"], }, install_requires=requires, extras_require={ - 'pandas': ['tablib[pandas]'], - 'pg': ['psycopg2'], - 'redshift': ['sqlalchemy-redshift', 'psycopg2'] + "pandas": ["tablib[pandas]"], + "pg": ["psycopg2-binary"], + "redshift": ["sqlalchemy-redshift", "psycopg2"], # TODO: Add the rest. }, - license='ISC', + license="ISC", zip_safe=False, classifiers=( - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Natural Language :: English', - 'License :: OSI Approved :: ISC License (ISCL)', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: Implementation :: CPython', + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Natural Language :: English", + "License :: OSI Approved :: ISC License (ISCL)", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "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", + "Programming Language :: Python :: Implementation :: CPython", ), cmdclass={ - 'publish': PublishCommand, - } + "publish": PublishCommand, + }, )