Skip to main content

PyPI - Version PyPI - Python Version GitHub Repo stars GitHub forks Downloads GitHub License Read the Docs Libraries.io dependency status for GitHub repo

PyBERT

PyBERT is a serial communication link bit error rate tester simulator with a graphical user interface (GUI).

It uses the Traits/UI package of the Enthought Python Distribution (EPD) http://www.enthought.com/products/epd.php, as well as the NumPy, SciPy, and SciKit-RF packages.

Notice: Before using this package for any purpose, you MUST read and understand the terms put forward in the accompanying "LICENSE" file.

User Installation

Developer Installation

Wiki

FAQ

Email List

Building, Testing, and Distributing

Note: As of February 2026, Tox is no longer used in the PyBERT build/test/dist. infrastructure.

The PyBERT build/test/dist. infrastructure is a two level structure:

  1. A make file provides the main interface for "normal" developers, offering the following targets:
% make
Available targets:
==================
  check: Validate the 'pyproject.toml' file.
  format: Reformats all Python source code. USE CAUTION!
  lint: Run 'ruff' and 'flake8' over the source code.
  type-check: Run type checking, via 'mypy', on the source code.
  docs: Run 'sphinx' on the source code, to generate documentation.
    To view the resultant API documentation, open 'docs/build/index.html' in a browser.
  build: Build both the source tarball and wheel.
  upload: Upload both the source tarball and wheel to PyPi.
  upload_test: Upload both the source tarball and wheel to TestPyPi.
  test: Run tests, using all supported Python versions.
  clean: Remove all previous build results, virtual environments, and cache contents.
  distclean: Runs a 'make clean' and removes 'dist/'.
  1. uv is now used, in place of pip, as the "back-end engine". If you peruse the makefile, you'll find that it uses uv extensively, to get its various jobs done. However, this use of uv should be transparent to typical developers. Understanding uv operation should only be necessary for those tinkering with the makefile itself. Everyone else should be able to use make exclusively for building, testing, and distributing.

Documentation

PyBERT documentation exists in 2 separate forms:

Acknowledgments

I would like to thank the following individuals for their contributions to the PyBERT project:

David Patterson for being my main co-author and for his countless hours driving the PyBERT project across the Python2<=>Python3 divide, as well as, more recently, completely updating its build infrastructure to be more in sync. w/ modern Python package building/testing/distribution philosophy.

Peter Pupalaikis for sharing his expertise w/ both Fourier transform and S-parameter subtleties. The PyBERT source code wouldn't have nearly the mathematical/theoretical fidelity that it does had Peter not contributed.

Yuri Shlepnev for his rock solid understanding of RF fundamentals, as well as his infinite patience in helping me understand them, too. ;-)

Dennis Han for thoroughly beating the snot out of PyBERT w/ nothing but love in his heart and determination in his mind to drive PyBERT further towards a professional level of quality. Dennis has made perhaps the most significant contributions towards making PyBERT a serious tool for the working professional serial communications link designer.

Todd Westerhoff for helping me better understand what tool features really matter to working professional link designers and which are just in the way. Also, for some very helpful feedback, re: improving the real World PyBERT experience for the user.

Mark Marlett for first introducing me to Python/NumPy/SciPy, as an alternative to MATLAB for numerical computing and signal processing, as well as his countless hours of tutelage, regarding the finer points of serial communication link simulation technique. Mark is also the one, who insisted that I take a break from development and finally write some documentation, so that others could understand what I intended and, hopefully, contribute. Thanks, Mark!

Low Kian Seong for straightening out my understanding of the real purpose of the description field in the setup.py script.

Jason Ellison for many cathartic chats on the topic of quality open source software creation, maintenance, and distribution.

Michael Gielda & Denz Choe for their contributions to the PyBERT code base.

The entire SciKit-RF team for creating and supporting an absolutely wonderful Python package for working with RF models and simulations.

:)

Metadata

Release files for pipbert 11.1.0

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

Source distribution (sdist)

Source distribution for pipbert 11.1.0
File Size Uploaded Provenance
pipbert-11.1.0.tar.gz 388.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pipbert 11.1.0
File Interpreter ABI Platform
pipbert-11.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 735.3 kB

Release files / pipbert-11.1.0.tar.gz

Download URL pipbert-11.1.0.tar.gz
Size 388.4 kB
Tags Source
SHA-256 checksum
How to use checksums
eacf7243ada061bd09b78bf38dfe3c4f3052c19d7d3dc5124d726e06a5934796
BLAKE2b-256 checksum
How to use checksums
ac7edb80db604430edf356792ec28d2c7cdf0be0497f2107e2186bc9c1499802
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pipbert-11.1.0-py3-none-any.whl

Download URL pipbert-11.1.0-py3-none-any.whl
Size 346.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d2d32c816fc232fb961d0ec2a123b1de65df0682fa7951a6fe6d48b4c0c7c3c
BLAKE2b-256 checksum
How to use checksums
bd36e36a2f8657246889164bc6f9b3e40dba1ecb597083be0e03b978cb786cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pipbert 11.1.0

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

11.1.0 This release

2 release files No provenance

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