Skip to main content

f3ts-hardware-utils

FixturFab Functional Test System Hardware Utilities Library

Connect and Control Test Hardware for your FixturFab Functional Test System

f3ts-hardware-utils is a Python module that contains the basic utilities for creating a PCBA functional test system. This module contains classes for controlling all common test hardware, including:

  • Acroname Manufacturing Test Modules
  • Feasa LED Analyzers
  • FixturFab Test Instruments
  • Segger J-Link Programmers
  • Rigol Power Supplies and Programmable Loads
  • Various USB Relay Hardware

Installation into a Project using poetry

Install the package into your project using poetry:

poetry add f3ts-hardware-utils

Documentation

The documentation for the package can be found here.

Development

Environment Setup

poetry is used for dependency management and pre-commit is used to identify simple issues before submission for code review. Once installed, run the following commands to setup your development environment:

poetry install
pre-commit install

Making changes

Use the following process when making changes to the module:

  1. Create new test cases
  2. Write new feature code and/or bugfixes
  3. Write documentation for new features
  4. Run pre-commit checks and tests prior to committing

To run the pre-commit checks, simply run the following:

poetry run pre-commit run --all-files

Code Quality Tools

black

black is used for code formatting, this is configured within pyproject.toml

To run black manually, run:

poetry run black .

flake8

flake8 is used to enforce additional style guidelines.

To run flake8 manually, run:

poetry run flake8 ./pytest_f3ts

isort

isort is used to automatically reformat python module import statements.

To run isort manually, run:

poetry run isort .

pre-commit

To automatically check if code is ready to be committed and pushed to Gitlab pre-commit is used. This is configured via the .pre-commit-config.yml file.

To run pre-commit manually, run:

poetry run pre-commit run --all-files

Documentation Generation

mkdocs is utilized along with mkdocs-material to generate documentation for this project.

The docs directory contains the general structure for the documentation in the form of markdown files. To autogenerate additional documentation from docstrings, the mkdocstrings module is used.

Developing documentation with the live server

When creating additional documentation it's useful to run the mkdocs server which will live-reload the webpages as you make changes. To start this server, run the following in a terminal: ### pre-commit

poetry run mkdocs serve

Adding a new file for autodocumentation

To add a new python file to the autodocumentation, open the docs/reference.md file. Add a new header to the file, and then add the line ::: f3ts_hardware_utils.{new_file_name}, this will signal to mkdocstrings to process the new file when building the documentation

Manually building and uploading a wheel

poetry config repositories.f3ts-hardware-utils https://us-west1-python.pkg.dev/test-runner-404519/pytest-f3ts/

# On windows you will need to run the following command as two separate commands
# and paste the token into the password prompt for the second command.
gcloud auth print-access-token | poetry config http-basic.f3ts-hardware-utils oauth2accesstoken

poetry publish --repository pytest-f3ts --build

Pipeline Setup

The pipeline is configured via the .gitlab-ci.yml file. The pipeline is configured to run the following stages:

  • linting: Runs the black, flake8, and isort checks
    • Occurs on all merge requests and is required to pass before a merge request can be merged
  • version: Runs the gen-semver.py command to update the version number
    • Occurs after a merge request is accepted.
    • [skip ci] is added to a new Git Commit to prevent the pipeline from running again
  • build: Builds the package and uploads it to the Gitlab package registry
    • Triggered by new tags, which are created by the version stage

Metadata

Release files for f3ts-hardware-utils 0.1.26

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

Source distribution (sdist)

Source distribution for f3ts-hardware-utils 0.1.26
File Size Uploaded Provenance
f3ts_hardware_utils-0.1.26.tar.gz 1.4 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for f3ts-hardware-utils 0.1.26
File Interpreter ABI Platform
f3ts_hardware_utils-0.1.26-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / f3ts_hardware_utils-0.1.26.tar.gz

Download URL f3ts_hardware_utils-0.1.26.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
b5af501035c65dd944f105a757533ecfdca4ade3bfce68e664b0ae4be08c0169
BLAKE2b-256 checksum
How to use checksums
3d5ccb4cf4fccc0b41b5554ff1064017be15bddaa02fef439febeaa91f3ae272
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.1 CPython/3.10.19 Linux/5.15.154+

Release files / f3ts_hardware_utils-0.1.26-py3-none-any.whl

Download URL f3ts_hardware_utils-0.1.26-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
79e499f494e644f3e088201b6ca433ae3ce1dfe4591ad7505e12088a0a359493
BLAKE2b-256 checksum
How to use checksums
dd47262416cb5b1c1ea19a8df9eba11097be6422336577530aedecb76eeed3d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.1 CPython/3.10.19 Linux/5.15.154+

Security for f3ts-hardware-utils 0.1.26

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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