Skip to main content

pi-top Python SDK

Project description

GitHub tag (latest by date) GitHub release (latest by date) PyPI release Latest Build Status Documentation Language grade: Python Language grade: Javascript Codecov pre-commit.ci status

pi-top Python SDK (Preview)

A simple, modular interface for interacting with a pi-top and its related accessories and components.

Supports all pi-top devices:

https://github.com/pi-top/pi-top-Python-SDK/raw/master/docs/_static/overview/devices.jpg

Supports pi-top Maker Architecture (PMA):

https://github.com/pi-top/pi-top-Python-SDK/raw/master/docs/_static/overview/pma.jpg

Supports all pi-top peripherals:

https://github.com/pi-top/pi-top-Python-SDK/raw/master/docs/_static/overview/peripherals.jpg

Status: Active Development

This SDK is currently in active development. Please be patient while we work towards v1.0.0!

Backwards Compatibility

When this library reaches v1.0.0, we will aim to maintain backwards-compatibility thereafter. Until then, every effort will be made to ensure stable support, but it cannot be guaranteed. Breaking changes will be clearly documented.

About

This SDK aims to provide an easy-to-use framework for managing a pi-top. It includes a Python 3 package (pitop), with several modules for interfacing with a range of pi-top devices and peripherals It also contains CLI utilities, to interact with your pi-top using the terminal.

The SDK is included out-of-the-box with pi-topOS.

Ensure that you keep your system up-to-date to enjoy the latest features and bug fixes.

This library is installed as a Python 3 module called pitop. It includes several submodules that allow you to easily interact with most of the hardware inside a pi-top.

You can easily connect different components of the system using the modules available in the library:

from time import sleep
from pitop import UltrasonicSensor
from pitop import Pitop

pitop = Pitop()
utrasonic = UltrasonicSensor("D1")

while True:
    pitop.miniscreen.display_text(utrasonic.distance)
    sleep(0.1)

Check out the API Recipes chapter of the documentation for ideas on how to get started.

This repository also contains a ‘pi-top’ command-line interface (CLI) for some SDK functionality:

$ pi-top oled write "Hey! I'm a $(pt devices hub)"

A ‘pt’ alias is also provided for quicker typing:

$ pt oled write "Hey! I'm a $(pt devices hub)"

Check out the CLI chapter of the documentation for ideas on how to get started.

Installation

The pi-top Python SDK is installed out of the box with pi-topOS, which is available from pi-top.com. To install on Raspberry Pi OS or other operating systems, see the Getting Started chapter.

Documentation

Comprehensive documentation is available here.

Development

To make changes to the SDK you’ll want to install it from source with the documentation and test dependencies:

git clone https://github.com/pi-top/pi-top-Python-SDK.git
cd pi-top-Python-SDK
pip3 install -e ".[doc,test]"

Changes you make to the source will be reflected in your Python environment.

You may want to repeat this process for the pi-top-Python-Common-Library if it’s not installed already or you need to make changes there too.

Once the SDK is installed you can run the automated test suite with:

python3 -m pytest

And you can build the docs locally by running:

PYTHONPATH=. sphinx-build -W -v -bhtml docs/ build/html

To view the generated docs open the build/html/index.html file in your browser.

Most of the SDK requires pi-top hardware to work but it should be possible to run the tests and build documentation in any environment with Python3.

Contributing

Please refer to the Contributing document in this repository for information on contributing to the project.

See the contributors page on GitHub for more info on contributors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pitop-0.20.2.tar.gz (272.1 kB view details)

Uploaded Source

Built Distribution

pitop-0.20.2-py2.py3-none-any.whl (344.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pitop-0.20.2.tar.gz.

File metadata

  • Download URL: pitop-0.20.2.tar.gz
  • Upload date:
  • Size: 272.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.11

File hashes

Hashes for pitop-0.20.2.tar.gz
Algorithm Hash digest
SHA256 bd530a2cd4e21b8773bf1c336d9790e1920fa3ccbed7be38c4d5cf21a8b596fc
MD5 474a8dc80f9f723d66d6acced8e61a5f
BLAKE2b-256 eaeac7aeb8694759aae6329e37dab19c8a88b7a00d474d93da88c6e710b37050

See more details on using hashes here.

File details

Details for the file pitop-0.20.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pitop-0.20.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 344.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.11

File hashes

Hashes for pitop-0.20.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2dd7acf4d90e5bee13cc92c5eea69008deda8ed2e056fc01b12d2bebabd2554d
MD5 357d1a2020f34f84bcde1eeaf1d6bb8f
BLAKE2b-256 afbc3047c9e011c8a3303c71ca937a976e1e39f96dbbd0efd7de107d318b5800

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page