Skip to main content

Pytation

Build Documentation

Welcome to the Pytation project! Use Pytation to quickly build reliable test stations for your custom hardware projects. Although building manufacturing test stations is the primary goal of this project, you can also build repeatable development and validation test stations. The framework allows you to run tests using a variety of runners including the graphical PySide6 runner and command line runner.

Project links:

Terminology and Architecture

A station represents a physical test setup — the equipment, instruments, and fixtures used to test hardware units. A station starts once, opens long-lived equipment, and runs continuously until the operator shuts it down.

Each unit under test goes through a suite — a single pass through the full list of tests. The suite captures all results for that unit into a ZIP file and then resets so the next unit starts fresh. A station runs suites in a loop: load a unit, run the suite, save results, repeat.

A test is a single test function within a suite. Each test receives a context object that provides access to devices, configuration, environment variables, the output filesystem, and user interaction (prompts, wait-for-user, progress reporting).

A device is a piece of equipment or instrument (e.g. a power supply, oscilloscope, or the device under test itself). Each device has a lifecycle that controls when it is opened and closed:

  • station (default) — opened once at station start, closed at station stop.
  • suite — opened and closed with each suite (each unit).
  • test — opened and closed around each individual test.
  • manual — opened and closed explicitly by test code.

A runner drives the station. Pytation provides two built-in runners:

  • GUI runner — a PySide6 graphical interface with state images, progress bars, and prompt dialogs.
  • CLI runner — a command-line interface for headless or scripted operation.

The execution lifecycle is:

station_start
│   station_setup
│   for each unit:
│   │   suite_setup          (e.g. wait for operator to load unit)
│   │   for each test:
│   │   │   test_setup
│   │   │   test function    (receives Context)
│   │   │   test_teardown
│   │   suite_teardown       (e.g. display PASS/FAIL, wait for removal)
│   │   save results to ZIP
station_stop
    station_teardown

Quick Start

You will need Python 3.9 or newer. You can install this package using pip:

pip3 install -U pytation

Alternatively, you can clone the repo:

git clone https://github.com/jetperch/pytation.git
cd pytation
pip3 install -U -r requirements.txt
python3 setup.py qt

You can then run the example:

python3 -m pytation gui pytation_examples.simple.STATION

Pytation GUI

On Windows, you may need to use python rather than python3.

License

All pytation code is released under the permissive Apache 2.0 license. See the License File for details.

Metadata

Release files for pytation 0.6.2

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

Source distribution (sdist)

Source distribution for pytation 0.6.2
File Size Uploaded
pytation-0.6.2.tar.gz 58.9 kB Details

Release files / pytation-0.6.2.tar.gz

Download URL pytation-0.6.2.tar.gz
Size 58.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ef8193cdae30f59f924a7313eedb8e42e53aedf51d12c65983d749e9e38eb186
BLAKE2b-256 checksum
How to use checksums
33088ac87f03170601f0d9d1f093e26c26e1e94eea9919baf8c9c43347e5daf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.2 This release

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.2

1 release file

0.0.1

1 release file

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