From 3795b9630feac8e2e3e42e626da80ad4b632f0cf Mon Sep 17 00:00:00 2001 From: Dmitrii-I Date: Sat, 3 Nov 2018 12:20:22 +0100 Subject: [PATCH] Add command to upload to PyPI --- setup.py | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index e9cc7c3..75c91be 100644 --- a/setup.py +++ b/setup.py @@ -1,11 +1,41 @@ -""" See [1] on how to write proper `setup.py` script. +import os.path +import sys +from setuptools import setup, Command, find_packages +from logging_configurator import __version__ +from shutil import rmtree -[1] https://github.com/pypa/sampleproject/blob/master/setup.py -""" +class UploadCommand(Command): + """ Shamelessly copied from Kenneth Reitz. """ -from setuptools import setup -from logging_configurator import __version__ + description = 'Build and publish the package.' + user_options = [] + + @staticmethod + def status(s): + """Prints things in bold.""" + print('\033[1m{0}\033[0m'.format(s)) + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + try: + self.status('Removing previous builds…') + rmtree(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'dist')) + except OSError: + pass + + self.status('Building Source and Wheel (universal) distribution…') + os.system('{0} setup.py sdist bdist_wheel --universal'.format(sys.executable)) + + self.status('Uploading the package to PyPi via Twine…') + os.system('twine upload dist/*') + + sys.exit() setup( @@ -18,5 +48,6 @@ author_email='izgurskii@gmail.com', license='MIT', keywords='logging', - packages=['logging_configurator'] + packages=find_packages(exclude=['contrib', 'docs', '*test*']), + cmdclass={'upload': UploadCommand} )