/ setup.py
setup.py
 1  #!/usr/bin/env python
 2  # -*- coding: utf-8 -*-
 3  
 4  # Note: To use the 'upload' functionality of this file, you must:
 5  #   $ pip install twine
 6  
 7  import io
 8  import os
 9  import sys
10  
11  from setuptools import setup, find_packages
12  
13  here = os.path.abspath(os.path.dirname(__file__))
14  
15  # Import the README and use it as the long-description.
16  # Note: this will only work if 'README.md' is present in your MANIFEST.in file!
17  with io.open(os.path.join(here, "README.rst"), encoding="utf-8") as f:
18      long_description = "\n" + f.read()
19  
20  board_reqs = []
21  if os.path.exists("/proc/device-tree/compatible"):
22      with open("/proc/device-tree/compatible", "rb") as f:
23          compat = f.read()
24      if b"nvidia,tegra" in compat:
25          board_reqs = ["Jetson.GPIO"]
26      if (
27          b"brcm,bcm2835" in compat
28          or b"brcm,bcm2836" in compat
29          or b"brcm,bcm2837" in compat
30          or b"brcm,bcm2838" in compat
31      ):
32          board_reqs = ["RPi.GPIO", "rpi_ws281x>=4.0.0", "sysv_ipc"]
33  
34  setup(
35      name="Adafruit-Blinka",
36      use_scm_version=True,
37      setup_requires=["setuptools_scm"],
38      description="CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython.",
39      long_description=long_description,
40      long_description_content_type="text/x-rst",
41      author="Adafruit Industries",
42      author_email="circuitpython@adafruit.com",
43      python_requires=">=3.5.0",
44      url="https://github.com/adafruit/Adafruit_Blinka",
45      package_dir={"": "src"},
46      packages=find_packages("src"),
47      # py_modules lists top-level single file packages to include.
48      # find_packages only finds packages in directories with __init__.py files.
49      py_modules=[
50          "analogio",
51          "bitbangio",
52          "board",
53          "busio",
54          "digitalio",
55          "micropython",
56          "pulseio",
57          "neopixel_write",
58      ],
59      package_data={
60          "adafruit_blinka.microcontroller.bcm283x.pulseio": ["libgpiod_pulsein"]
61      },
62      install_requires=[
63          "Adafruit-PlatformDetect>=2.18.1",
64          "Adafruit-PureIO>=1.1.7",
65          "pyftdi>=0.40.0",
66      ]
67      + board_reqs,
68      license="MIT",
69      classifiers=[
70          # Trove classifiers
71          # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
72          "License :: OSI Approved :: MIT License",
73          "Programming Language :: Python",
74          "Programming Language :: Python :: 3",
75          "Programming Language :: Python :: 3.5",
76          "Programming Language :: Python :: Implementation :: MicroPython",
77      ],
78  )