No description
Find a file
2021-12-06 18:21:20 -05:00
.github/workflows fix name label 2021-10-06 17:10:09 -04:00
adafruit_platformdetect First note that in the old code, the entire list is evaluated before the any() is called. Changing this code solves two issues. 1) if there is an error in one of these conditions, then the entire function won't error out immediately but may hit a True condition and exit early. 2) Most of these conditions are inexpensive lookups, but some, like 'any_raspberry_pi' perform lots of logic including an IO lookup 2021-12-06 18:21:20 -05:00
bin MaaXBoard and MaaXBoard Mini are both detected 2021-10-26 17:11:13 -07:00
docs Pin docutils to older version 2021-11-02 16:35:36 -07:00
.gitignore Fixed gitignore and added build 2020-04-20 14:57:38 -07:00
.pylintrc Update .pylintrc 2021-06-21 09:38:16 +01:00
.readthedocs.yaml Fix parameter name for v2 2021-11-03 08:15:38 -07:00
CODE_OF_CONDUCT.md Documentification 2020-04-20 17:18:03 -07:00
LICENSE initial commit 2018-12-03 23:26:33 -07:00
README.rst Fix expired Discord link 2020-12-08 01:13:02 +11:00
requirements.txt Adding Tinker Board detection 2020-05-29 13:00:37 -04:00
setup.py Change minimum Python to 3.6 2021-02-03 08:50:28 -08:00

Introduction
============

.. image:: https://readthedocs.org/projects/adafruit-platformdetect/badge/?version=latest
    :target: https://circuitpython.readthedocs.io/projects/platformdetect/en/latest/
    :alt: Documentation Status

.. image:: https://img.shields.io/discord/327254708534116352.svg
    :target: https://adafru.it/discord
    :alt: Discord

.. image:: https://github.com/adafruit/Adafruit_Python_PlatformDetect/workflows/Build%20CI/badge.svg
    :target: https://github.com/adafruit/Adafruit_Python_PlatformDetect/actions
    :alt: Build Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :alt: Code Style: Black

This library provides best-guess platform detection for a range of single-board
computers and (potentially) other platforms.  It was written primarily for use
in `Adafruit_Blinka <https://github.com/adafruit/Adafruit_Blinka>`_, but may be
useful in other contexts.

Platform detection is divided into "chip" and "board" detection, with the latter
generally dependent on the former.  Platform info is gathered from:

  - Python's `sys.platform`

  - Various files on Linux systems:

    - /proc/cpuinfo (for processor info, Raspberry Pi hardware revisions, etc.)

    - /proc/device-tree/compatible (for 96Boards info)

  - Beaglebone EEPROM board IDs

  - Distribution-specific files such as /etc/armbian-release.

Dependencies
=============
This driver depends on:

* Python 3.5 or higher

Installing from PyPI
=====================

On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
PyPI <https://pypi.org/project/Adafruit-PlatformDetect/>`_. To install for current user:

.. code-block:: shell

  pip3 install Adafruit-PlatformDetect

To install system-wide (this may be required in some cases):

.. code-block:: shell

  sudo pip3 install Adafruit-PlatformDetect

To install in a virtual environment in your current project:

.. code-block:: shell

  mkdir project-name && cd project-name
  python3 -m venv .env
  source .env/bin/activate
  pip3 install Adafruit-PlatformDetect

Usage Example
=============

.. code-block:: python

  from adafruit_platformdetect import Detector
  detector = Detector()
  print("Chip id: ", detector.chip.id)
  print("Board id: ", detector.board.id)

  # Check for specific board models:
  print("Pi 3B+? ", detector.board.RASPBERRY_PI_3B_PLUS)
  print("BBB? ", detector.board.BEAGLEBONE_BLACK)
  print("Orange Pi PC? ", detector.board.ORANGE_PI_PC)
  print("generic Linux PC? ", detector.board.GENERIC_LINUX_PC)

Contributing
============

Contributions are welcome! Please read our `Code of Conduct
<https://github.com/adafruit/Adafruit_Python_PlatformDetect/blob/master/CODE_OF_CONDUCT.md>`_
before contributing to help this project stay welcoming.

Documentation
=============

For information on building library documentation, please check out `this guide <https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1>`_.