]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
first pass at a setup.py
authorBrennen Bearnes <bbearnes@gmail.com>
Mon, 4 Jun 2018 22:10:18 +0000 (16:10 -0600)
committerBrennen Bearnes <bbearnes@gmail.com>
Mon, 4 Jun 2018 22:10:18 +0000 (16:10 -0600)
Using https://github.com/kennethreitz/setup.py/blob/master/setup.py as
starter boilerplate.

docs/conf.py
setup.py [new file with mode: 0644]
src/__version__.py [new file with mode: 0644]

index 627addfecdaec1e2a0020448b24159d3adbfb8a4..5976c17a806d91b5c7f5c999ae4d1b878791ac6d 100644 (file)
@@ -40,9 +40,9 @@ author = u'cefn'
 # built documents.
 #
 # The short X.Y version.
-version = u'1.0'
+version = u'1.0.0'
 # The full version, including alpha/beta/rc tags.
-release = u'1.0'
+release = u'1.0.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/setup.py b/setup.py
new file mode 100644 (file)
index 0000000..7d4228e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Note: To use the 'upload' functionality of this file, you must:
+#   $ pip install twine
+
+import io
+import os
+import sys
+from shutil import rmtree
+
+from setuptools import find_packages, setup, Command
+
+# Package meta-data.
+NAME = 'Adafruit-Micropython-Blinka'
+DESCRIPTION = 'A selection of packages for mirroring the CircuitPython API on hosts running micropython.'
+URL = 'https://github.com/adafruit/Adafruit_Micropython_Blinka'
+EMAIL = 'python@adafruit.com'
+AUTHOR = 'Adafruit Industries'
+REQUIRES_PYTHON = '>=3.6.0'
+VERSION = None
+
+# What packages are required for this module to be executed?
+REQUIRED = [
+    # 'requests', 'maya', 'records',
+]
+
+here = os.path.abspath(os.path.dirname(__file__))
+
+# Import the README and use it as the long-description.
+# Note: this will only work if 'README.md' is present in your MANIFEST.in file!
+with io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as f:
+    long_description = '\n' + f.read()
+
+# Load the package's __version__.py module as a dictionary.
+about = {}
+if not VERSION:
+    # with open(os.path.join(here, NAME, '__version__.py')) as f:
+    with open(os.path.join(here, 'src', '__version__.py')) as f:
+        exec(f.read(), about)
+else:
+    about['__version__'] = VERSION
+
+
+class UploadCommand(Command):
+    """Support setup.py upload."""
+
+    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(here, '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/*')
+
+        self.status('Pushing git tags…')
+        os.system('git tag v{0}'.format(about['__version__']))
+        os.system('git push --tags')
+        
+        sys.exit()
+
+
+# Where the magic happens:
+setup(
+    name=NAME,
+    version=about['__version__'],
+    description=DESCRIPTION,
+    long_description=long_description,
+    long_description_content_type='text/x-rst',
+    author=AUTHOR,
+    author_email=EMAIL,
+    python_requires=REQUIRES_PYTHON,
+    url=URL,
+    package_dir={'': 'src'},
+    #packages=find_packages(exclude=('tests',)),
+    packages=[
+        'adafruit_blinka',
+        'adafruit_blinka.agnostic',
+        'adafruit_blinka.board',
+        'adafruit_blinka.microcontroller',
+        'adafruit_blinka.microcontroller.esp8266',
+        'adafruit_blinka.microcontroller.stm32',
+        'microcontroller'
+    ],
+    # If your package is a single module, use this instead of 'packages':
+    py_modules=['bitbangio', 'board', 'busio', 'digitalio'],
+    # entry_points={
+    #     'console_scripts': ['mycli=mymodule:cli'],
+    # },
+    install_requires=REQUIRED,
+    include_package_data=True,
+    license='MIT',
+    classifiers=[
+        # Trove classifiers
+        # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
+        'License :: OSI Approved :: MIT License',
+        'Programming Language :: Python',
+        'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: Implementation :: MicroPython',
+    ],
+    # $ setup.py publish support.
+    cmdclass={
+        'upload': UploadCommand,
+    },
+)
diff --git a/src/__version__.py b/src/__version__.py
new file mode 100644 (file)
index 0000000..96bfa14
--- /dev/null
@@ -0,0 +1,3 @@
+VERSION = (1, 0, 0)
+
+__version__ = '.'.join(map(str, VERSION))