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:
- Create new test cases
- Write new feature code and/or bugfixes
- Write documentation for new features
- 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 theblack,flake8, andisortchecks- Occurs on all merge requests and is required to pass before a merge request can be merged
version: Runs thegen-semver.pycommand 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
versionstage
- Triggered by new tags, which are created by the
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| f3ts_hardware_utils-0.1.26.tar.gz | 1.4 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.