/ README.rst
README.rst
  1  Introduction
  2  ============
  3  
  4  .. image:: https://readthedocs.org/projects/adafruit-micropython-blinka/badge/?version=latest
  5      :target: https://circuitpython.readthedocs.io/projects/blinka/en/latest/
  6      :alt: Documentation Status
  7  
  8  .. image:: https://img.shields.io/discord/327254708534116352.svg
  9      :target: https://adafru.it/discord
 10      :alt: Discord
 11  
 12  .. image:: https://travis-ci.com/adafruit/Adafruit_Blinka.svg?branch=master
 13      :target: https://travis-ci.com/adafruit/Adafruit_Blinka
 14      :alt: Build Status
 15  
 16  .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
 17      :target: https://github.com/psf/black
 18      :alt: Code Style: Black
 19  
 20  This repository contains a selection of packages mirroring the CircuitPython API
 21  on hosts running micropython. Working code exists to emulate the CircuitPython packages;
 22  
 23  * **board** - breakout-specific pin identities
 24  * **microcontroller** - chip-specific pin identities
 25  * **analogio** - analog input/output pins, using pin identities from board+microcontroller packages
 26  * **digitalio** - digital input/output pins, using pin identities from board+microcontroller packages
 27  * **bitbangio** - software-driven interfaces for I2C, SPI
 28  * **busio** - hardware-driven interfaces for I2C, SPI, UART
 29  * **pulseio** - contains classes that provide access to basic pulse IO (PWM)
 30  
 31  For details, see the `Blinka API reference
 32  <https://circuitpython.readthedocs.io/projects/blinka/en/latest/index.html>`_.
 33  
 34  Dependencies
 35  =============
 36  
 37  The Micropython compatibility layers described above are intended to provide a CircuitPython-like API for devices which
 38  are running CPython or Micropython. Since corresponding packages should be built-in to any standard
 39  CircuitPython image, they have no value on a device already running CircuitPython and would likely conflict in unhappy ways.
 40  
 41  The test suites in the test/src folder under **testing.universal** are by design
 42  intended to run on *either* CircuitPython *or* Micropython+compatibility layer to prove conformance.
 43  
 44  Installing from PyPI
 45  =====================
 46  
 47  On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
 48  PyPI <https://pypi.org/project/Adafruit-Blinka/>`_. To install for current user:
 49  
 50  .. code-block:: shell
 51  
 52      pip3 install Adafruit-Blinka
 53  
 54  To install system-wide (this may be required in some cases):
 55  
 56  .. code-block:: shell
 57  
 58      sudo pip3 install Adafruit-Blinka
 59  
 60  To install in a virtual environment in your current project:
 61  
 62  .. code-block:: shell
 63  
 64      mkdir project-name && cd project-name
 65      python3 -m venv .env
 66      source .env/bin/activate
 67      pip3 install Adafruit-Blinka
 68  
 69  Usage Example
 70  =============
 71  
 72  At the time of writing (`git:7fc1f8ab <https://github.com/cefn/Adafruit_Micropython_Blinka/tree/7fc1f8ab477124628a5afebbf6826005955805f9>`_),
 73  the following sequence runs through some basic testing of the digitalio compatibility layer...
 74  
 75  .. code-block:: python
 76  
 77      from testing import test_module_name
 78      test_module_name("testing.universal.digitalio")
 79  
 80  An example log from running the suites is `here <https://github.com/cefn/Adafruit_Micropython_Blinka/issues/2#issuecomment-366713394>`_ .
 81  
 82  Contributing
 83  ============
 84  
 85  Contributions are welcome! Please read our `Code of Conduct
 86  <https://github.com/adafruit/Adafruit_Blinka/blob/master/CODE_OF_CONDUCT.md>`_
 87  before contributing to help this project stay welcoming.
 88  
 89  Building locally
 90  ================
 91  
 92  Sphinx documentation
 93  -----------------------
 94  
 95  Sphinx is used to build the documentation based on rST files and comments in the code. First,
 96  install dependencies (feel free to reuse the virtual environment from above):
 97  
 98  .. code-block:: shell
 99  
100      python3 -m venv .env
101      source .env/bin/activate
102      pip install Sphinx sphinx-rtd-theme Adafruit-PlatformDetect
103  
104  Now, once you have the virtual environment activated:
105  
106  .. code-block:: shell
107  
108      cd docs
109      sphinx-build -E -W -b html . _build/html
110  
111  This will output the documentation to ``docs/_build/html``. Open the index.html in your browser to
112  view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to
113  locally verify it will pass.