diff --git a/anexia_monitoring/__version__.py b/anexia_monitoring/__version__.py new file mode 100644 index 0000000..650d6c1 --- /dev/null +++ b/anexia_monitoring/__version__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +__version__ = "1.0.0" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 5aef279..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -description-file = README.rst diff --git a/setup.py b/setup.py index 9d0d210..aa1ba0a 100644 --- a/setup.py +++ b/setup.py @@ -1,35 +1,102 @@ -import os +# -*- coding: utf-8 -*- -from setuptools import find_packages, setup +# Note: To use the 'upload' functionality of this file, you must: +# $ pip install twine -with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme: - README = readme.read() +import os +import io +import sys +from shutil import rmtree -# allow setup.py to be run from any path -os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) +from setuptools import find_packages, setup, Command -setup( - name='django-anexia-monitoring', - version='1.0.0', - packages=find_packages(), - include_package_data=True, - license='MIT License', - description='A Django app used to monitor updates for Django and all installed python packages in the running environment. It can be also used to check if the website is alive and working correctly.', - long_description=README, - url='http://www.anexia-it.com/', - author='Anexia', - classifiers=[ - 'Environment :: Web Environment', - 'Intended Audience :: Developers', +# Package meta-data. +NAME = 'django-anexia-monitoring' +PACKAGE_PATH = 'anexia_monitoring' +DESCRIPTION = 'A Django app used to monitor updates for Django and all installed python packages in the running environment. It can be also used to check if the website is alive and working correctly.' +URL = 'https://github.com/anx-hnezbeda/anexia-monitoring-django' +AUTHOR = 'Anexia' +LICENSE = 'MIT' +REQUIRED = [ + 'updatable', +] +CLASSIFIERS = [ 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', - ], - install_requires=[ - 'updatable', - ], + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + 'Intended Audience :: Developers', + 'Operating System :: OS Independent', + 'Natural Language :: English', + 'Topic :: Utilities', +] + +# Setup configuration +current_path = os.path.abspath(os.path.dirname(__file__)) + +# Import the README and use it as the long-description. +# Note: this will only work if 'README.rst' is present in your MANIFEST.in file! +with io.open(os.path.join(current_path, 'README.rst'), encoding='utf-8') as f: + long_description = '\n' + f.read() + +# Load the package's __version__.py module as a dictionary. +about = {} +with open(os.path.join(current_path, PACKAGE_PATH, '__version__.py')) as f: + exec(f.read(), about) + +class PublishCommand(Command): + """Support setup.py publish.""" + + 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(current_path, 'dist')) + except FileNotFoundError: + 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( + name=NAME, + version=about['__version__'], + packages=find_packages(), + include_package_data=True, + license=LICENSE, + description=DESCRIPTION, + long_description=long_description, + url=URL, + author=AUTHOR, + classifiers=CLASSIFIERS, + install_requires=REQUIRED, + # $ setup.py publish support. + cmdclass={ + 'publish': PublishCommand, + }, )