From: Melissa LeBlanc-Williams Date: Mon, 23 Jun 2025 15:58:03 +0000 (-0700) Subject: Merge pull request #981 from makermelissa/main X-Git-Tag: 8.61.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/949aac8cde9e4d6972b88d3cebbce94f457c54f1?hp=b595f89212a015ba148fbdc0bdf284c7eebfe711 Merge pull request #981 from makermelissa/main Revert back to using setup.py to fix install problems --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 52d16c1..80940d0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,10 +16,10 @@ jobs: - name: Translate Repo Name For Build Tools filename_prefix id: repo-name run: echo "repo-name=Adafruit-Blinka" >> $GITHUB_OUTPUT - - name: Set up Python 3.11 + - name: Set up Python 3.8 uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: 3.8 - name: Versions run: | python3 --version @@ -47,12 +47,7 @@ jobs: - name: Build docs working-directory: docs run: sphinx-build -E -W -b html . _build/html - - name: Check For pyproject.toml - id: need-pypi - run: | - echo "pyproject-toml=$( find . -wholename './pyproject.toml' )" >> $GITHUB_OUTPUT - name: Build Python package - if: contains(steps.need-pypi.outputs.pyproject-toml, 'pyproject.toml') run: | pip install --upgrade build twine for file in $(find -not -path "./.*" -not -path "./docs*" \( -name "*.py" -o -name "*.toml" \) ); do diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71f7c07..55d1f82 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,32 +2,30 @@ # # SPDX-License-Identifier: Unlicense name: Release Actions - on: release: types: [published] - jobs: upload-pypi: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Check For pyproject.toml + - name: Check For setup.py id: need-pypi run: | - echo "pyproject-toml=$( find . -wholename './pyproject.toml' )" >> $GITHUB_OUTPUT + echo "setup-py=$( find . -wholename './setup.py' )" >> $GITHUB_OUTPUT - name: Set up Python - if: contains(steps.need-pypi.outputs.pyproject-toml, 'pyproject.toml') + if: contains(steps.need-pypi.outputs.setup-py, 'setup.py') uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.x' - name: Install dependencies - if: contains(steps.need-pypi.outputs.pyproject-toml, 'pyproject.toml') + if: contains(steps.need-pypi.outputs.setup-py, 'setup.py') run: | python -m pip install --upgrade pip pip install --upgrade build twine - name: Build and publish - if: contains(steps.need-pypi.outputs.pyproject-toml, 'pyproject.toml') + if: contains(steps.need-pypi.outputs.setup-py, 'setup.py') env: TWINE_USERNAME: ${{ secrets.pypi_username }} TWINE_PASSWORD: ${{ secrets.pypi_password }} diff --git a/docs/conf.py b/docs/conf.py index 35c7aea..97f47fe 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -111,7 +111,7 @@ html_static_path = ["_static"] html_favicon = "_static/favicon.ico" # Output file base name for HTML help builder. -htmlhelp_basename = "Adafruit_blinkaDisplayioLibrarydoc" +htmlhelp_basename = "AdafruitBlinkaLibrarydoc" # -- Options for LaTeX output --------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 72da97f..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,61 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Alec Delaney for Adafruit Industries -# -# SPDX-License-Identifier: MIT - -[build-system] -requires = [ - "setuptools", - "wheel", - "setuptools-scm", -] - -[project] -name = "Adafruit-Blinka" -description = "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython." -version = "0.0.0+auto.0" -readme = "README.rst" -authors = [ - {name = "Adafruit Industries", email = "circuitpython@adafruit.com"} -] -urls = {Homepage = "https://github.com/adafruit/Adafruit_Blinka"} -license = {text = "MIT"} -classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "Topic :: Software Development :: Libraries", - "Topic :: System :: Hardware", - "License :: OSI Approved :: MIT License", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", -] -dynamic = ["dependencies"] - -[tool.setuptools] -py-modules = [ - "analogio", - "bitbangio", - "board", - "busio", - "digitalio", - "keypad", - "micropython", - "neopixel_write", - "onewireio", - "pulseio", - "pwmio", - "rainbowio", - "usb_hid", -] - -[tool.setuptools.packages.find] -where = ["src"] -include = [ - "adafruit_blinka", - "adafruit_blinka.microcontroller.bcm283x.libgpiod_pulsein*", - "adafruit_blinka.microcontroller.amlogic.meson_g12_common.pulseio.libgpiod_pulsein*", - "microcontroller", - "*.pyi" -] - -[tool.setuptools.dynamic] -dependencies = {file = ["requirements.txt"]} diff --git a/requirements.txt b/requirements.txt index ca51f29..aec7911 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,9 @@ -Adafruit-PlatformDetect>=3.70.1 -Adafruit-PureIO>=1.1.7 -Jetson.GPIO; platform_machine=='aarch64' -RPi.GPIO; platform_machine=='armv7l' or platform_machine=='armv6l' or platform_machine=='aarch64' -rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l' or platform_machine=='aarch64' -sysv_ipc>=1.1.0; sys_platform == 'linux' and platform_machine!='mips' -pyftdi>=0.40.0 -binho-host-adapter>=0.1.6 -adafruit-circuitpython-typing -toml>=0.10.2; python_version<'3.11' -lgpio>=0.2.2.0; sys_platform=='linux' and python_version<'3.13' -Adafruit-Blinka-Raspberry-Pi5-Neopixel; platform_machine=='aarch64' + # requirements.txt + # + # installs dependencies from ./setup.py, and the package itself, + # in editable mode + # -e . + + # (the -e above is optional). you could also just install the package + # normally with just the line below (after uncommenting) + . diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..b793194 --- /dev/null +++ b/setup.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT + +# Note: To use the 'upload' functionality of this file, you must: +# $ pip install twine + +import io +import os + +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() + +board_reqs = [] +if os.path.exists("/proc/device-tree/compatible"): + with open("/proc/device-tree/compatible", "rb") as f: + compat = f.read() + # Jetson Nano, TX2, Xavier, etc + if b"nvidia,tegra" in compat: + board_reqs = ["Jetson.GPIO"] + # Pi 5 + elif b"brcm,bcm2712" in compat: + board_reqs = [ + "rpi_ws281x>=4.0.0", + "lgpio", + "Adafruit-Blinka-Raspberry-Pi5-Neopixel", + ] + # Pi 4 and Earlier + elif ( + b"brcm,bcm2835" in compat + or b"brcm,bcm2836" in compat + or b"brcm,bcm2837" in compat + or b"brcm,bcm2838" in compat + or b"brcm,bcm2711" in compat + ): + board_reqs = ["RPi.GPIO", "rpi_ws281x>=4.0.0"] + # BeagleBone Black, Green, PocketBeagle, BeagleBone AI, etc. + elif b"ti,am335x" in compat: + board_reqs = ["Adafruit_BBIO"] + +setup( + name="Adafruit-Blinka", + use_scm_version={ + # This is needed for the PyPI version munging in the Github Actions release.yml + "git_describe_command": "git describe --tags --long", + "local_scheme": "no-local-version", + }, + 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="Adafruit Industries", + author_email="circuitpython@adafruit.com", + python_requires=">=3.7.0", + url="https://github.com/adafruit/Adafruit_Blinka", + package_dir={"": "src"}, + packages=find_packages("src") + ["micropython-stubs"], + # 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", + "keypad", + "micropython", + "neopixel_write", + "onewireio", + "pulseio", + "pwmio", + "rainbowio", + "usb_hid", + ], + package_data={ + "adafruit_blinka.microcontroller.bcm283x.pulseio": [ + "libgpiod_pulsein", + "libgpiod_pulsein64", + ], + "adafruit_blinka.microcontroller.amlogic.meson_g12_common.pulseio": [ + "libgpiod_pulsein", + ], + "micropython-stubs": ["*.pyi"], + }, + include_package_data=True, + install_requires=[ + "Adafruit-PlatformDetect>=3.70.1", + "Adafruit-PureIO>=1.1.7", + "binho-host-adapter>=0.1.6", + "pyftdi>=0.40.0", + "adafruit-circuitpython-typing", + "sysv_ipc>=1.1.0;sys_platform=='linux' and platform_machine!='mips'", + "toml>=0.10.2;python_version<'3.11'", + ] + + 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.7", + "Programming Language :: Python :: Implementation :: MicroPython", + ], +)