X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/09422b62c65b439c46f0f15178f541ea30e88423..77cdce0bc63f050d7701bdb83eb9580f1ea898c9:/setup.py diff --git a/setup.py b/setup.py index 370f556..88e36e9 100755 --- a/setup.py +++ b/setup.py @@ -7,118 +7,72 @@ import io import os import sys -from shutil import rmtree -from setuptools import find_packages, setup, Command - -# Package meta-data. -NAME = 'Adafruit-Blinka' -DESCRIPTION = 'CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython.' -URL = 'https://github.com/adafruit/Adafruit_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? -with open('requirements.txt') as f: - requirements = f.read().splitlines() +from setuptools import setup, find_packages 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 +with io.open(os.path.join(here, "README.rst"), encoding="utf-8") as f: + long_description = "\n" + f.read() + +board_reqs = [] +if os.path.exists("/proc/device-tree/compatible"): + with open("/proc/device-tree/compatible", "rb") as f: + compat = f.read() + if b"nvidia,tegra" in compat: + board_reqs = ["Jetson.GPIO"] + if ( + b"brcm,bcm2835" in compat + or b"brcm,bcm2836" in compat + or b"brcm,bcm2837" in compat + or b"brcm,bcm2838" in compat + ): + board_reqs = ["RPi.GPIO", "rpi_ws281x>=4.0.0", "sysv_ipc"] - 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, + name="Adafruit-Blinka", + use_scm_version=True, + setup_requires=["setuptools_scm"], + description="CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython.", 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' + long_description_content_type="text/x-rst", + author="Adafruit Industries", + author_email="circuitpython@adafruit.com", + python_requires=">=3.5.0", + url="https://github.com/adafruit/Adafruit_Blinka", + package_dir={"": "src"}, + packages=find_packages("src"), + # py_modules lists top-level single file packages to include. + # find_packages only finds packages in directories with __init__.py files. + py_modules=[ + "analogio", + "bitbangio", + "board", + "busio", + "digitalio", + "micropython", + "pulseio", + "neopixel_write", ], - # 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=requirements, - include_package_data=True, - license='MIT', + package_data={ + "adafruit_blinka.microcontroller.bcm283x.pulseio": ["libgpiod_pulsein"] + }, + install_requires=[ + "Adafruit-PlatformDetect>=2.18.1", + "Adafruit-PureIO>=1.1.6", + "pyftdi>=0.40.0", + ] + + board_reqs, + 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', + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: Implementation :: MicroPython", ], - # $ setup.py publish support. - cmdclass={ - 'upload': UploadCommand, - }, )