Skip to main content

LBUtils

Code style: black Documentation Status PyPI version

Background

This library is designed to install all of the common drivers, library code, and helper code used within modules at Leeds Beckett University. It is principally targeted at MicroPython on the Pico H/W micro-controllers: but compatibility is also maintained with CPython 3.10 where possible (or relevant).

Examples for how to use the library can be found in the 'examples' folder: or in the documentation. Otherwise the library is organised as follows

  • drivers: Classes aimed at low-level support of I2C, SPI and other devices requiring board-level support.
  • graphics: Classes providing support for drawing and text output on display devices.
  • helpers: Functions and classes which help replace boiler-plate code for tasks such as setting up network access.
  • pmod: Drivers and support for the Digilent peripheral modules.

Installation

A package of this library is provided on PyPi as lbutils. This can be installed with the normal Python tools, and should also install to boards running MicroPython under Thonny.

For manual installation, everything under the lbutils directory should be copied to the appropriate directory on the MicroPython board, usually /lib. The library, or individual drivers, can then be imported as normal: see the documentation for the examples for more detailed guidance on the use of the library. This code is also available in the lbutils/examples folder, or as the library lbutils.examples when the package is installed.

Contributions

Releases are pulled from the trunk, and development should be undertaken in branches to ensure that the code in trunk remains in working order. This library is principally a teaching library, so the Documentation should be at least as important as the 'code'. Where possible all algorithms and implementation techniques should also be explained as fully as possible, or at least linked to reference standards/implementations.

For consistency

  • All code should also be in the format standardised by the Black library. This makes it easier to co-ordinate external code and documentation with the implementation documented here.

    Note: The 'future' style of black breaks the current (3.4) parser for MicroPython. Until this changes, only the 'current' style should be used.

  • Code should pass ruff cleanly, with exceptions documented in the pyproject.toml file. Modern (Python > 3.10) conventions should be respected where possible: except where these conflict with the syntax accepted by MicroPython. In particular all libraries, functions and methods should have a type signature; dummy libraries should be used to support this where possible (see typing.py in the lbutils directory).

  • Code is documented according to the NumPy documentation standard, and should be provided as standard Python docstrings. The docstrings are considered to be authoritative, and will be used to automatically document the class/method/etc.

  • Docstrings should be in NumPy format, and should be checked by docformatter for correctness. Code documentation is generated by MkDocs, using the embedded docstrings in the code.

  • All documentation, including documentation strings, should be in the [Markdown format accepted by MkDocs, and will be automatically rebuilt on commit. A basic check for documentation sanity can be done via

    docformatter --in-place --config ./pyproject.toml
    
  • All documentation should be organised according to the Diátaxis framework: ideally with examples that do not require specific board set-ups. Where specific set-up are required, platforms such as WokWi should be used where possible to illustrate code and example set-ups.

Tools such as darglint might also be useful (and are installed with the default requirements.txt). However currently darglint has minimal support for the NumPy documentation standard, and so the output of darglint should be used with caution.

Where possible the above should be/is enforced by the use of a pre-commit hook for git. The script hook.sh in the bin directory is provided for this purpose, and can be installed as

cd .git/hooks; ln -s ../../bin/hook.sh pre-commit

from the project directory.

Known Implementations

  • Raspberry Pi Pico H/W (MicroPython 3.4)
  • CPython (3.10)

Metadata

Release files for lbutils-mp 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lbutils-mp 0.2.4
File Size Uploaded
lbutils-mp-0.2.4.tar.gz 47.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lbutils-mp 0.2.4
File Interpreter ABI Platform
lbutils_mp-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 114.4 kB

Release files / lbutils-mp-0.2.4.tar.gz

Download URL lbutils-mp-0.2.4.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
15b95f26a339ec11ce564f7f538a884df290ac4cc9de946a1629a99ad08b3ed4
BLAKE2b-256 checksum
How to use checksums
82a7afc37d294bdc2b9f1547db4dedc610bbcdaef7c9976923ec1e3adedaf228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / lbutils_mp-0.2.4-py3-none-any.whl

Download URL lbutils_mp-0.2.4-py3-none-any.whl
Size 67.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61cd4d8d24da0df1792ae17599534d5d37b18f5a370b682ed9827e95fc6697b7
BLAKE2b-256 checksum
How to use checksums
ca0f8d2dcaae6839a7912ee067fa507a14a0c4b6b15d6ae9ffd4663afba672ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page