This release is a pre-release and may not be stable for production use.
Constellation is a package for simplifying instrument control. It is designed to build off of libraries like pyvisa and pyvisa-py and provide a complete ecosystem for instrument automation. As a brief example of what this can look like in its simplest form, here's an example script which connects to an instrument, resets it, then adjusts and reads some basic settings:
from constellation.all import *
# Create log object
log = plf.LogPile()
# Create NRX Driver
nrx = RohdeSchwarzNRX("TCPIP0::192.168.0.10::INSTR", log)
# Preset device
nrx.preset()
# Get meas frequency
nrx.set_meas_frequency(1e9)
fmeas = nrx.get_meas_frequency()
One of the key components of Constellation is a set of instrument drivers, one of which,
the RohdeSchwarzNRX class, was seen above. However, Constellation is more than just
a collection of driver classes. Some of its key features include:
- Instrument API standardization: Drivers inherit from category classes, guaranteeing that all instruments of the same category (ie. all oscilloscopes) will share a common API.
- Networking: In addition to directly connecting to and interfacing with your instruments, you can optionally use Constellation's networking classes to remotely access your instruments. This works by connecting multiple clients to a single server program over an AES-encrypted network. Typically one client would interface with the instrument drivers, while the other clients can be used to monitor or adjust experiments remotely.
- Autmoatic Rich Logging: Because Constellation's core use-case concerns scientific experiments,
robust and thorough logging is crucial. Constellation automates this via the pylogfile
library and records every command sent to the instruments. Logs can be saved in the binary and open-source HDF format, which can be viewed and analyzed usign the
lumberjackcommand line tool. - Ease of Creating New Drivers: The instrument category classes automate much of the work involved in creating a driver, meaning you only need to focus on finding the right SCPI commands to create any new drivers you need.
- (Work in progress) GUIs: GUI widgets for specific instrument categories make it easy to control or monitor your experiments.
Installation
Constellation can be installed via pip using
pip install constellation-py
TODO
Technical detail: Category system and Drivers
- How the categories work, with 0-n
- How they use ABCs to force correct usage
- They inherit RemoteInstrument so without the end user paying attention, they can be used across a network!
Include graphic of cateogry system, including remote access, drivers and GUIs.
Instrument Control Example
TODO = basic example
Networking
Technical Detail: Networking
- Mention TCPIP, AES, passwords, automatically setup database and server.
- Mention PyFrost (WIP)
Networking Example
TODO = Networking example
List of included drivers
Metadata
Release files for constellation-core 0.0.0.dev0
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 | Actions |
|---|---|---|---|---|
| constellation_core-0.0.0.dev0.tar.gz | 56.6 kB | Without provenance | Details for constellation_core-0.0.0.dev0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| constellation_core-0.0.0.dev0-py3-none-any.whl | Python 3 | none | any | Details for constellation_core-0.0.0.dev0-py3-none-any.whl |
Total release size: 139.2 kB
Release files / constellation_core-0.0.0.dev0.tar.gz
| Download URL | constellation_core-0.0.0.dev0.tar.gz |
|---|---|
| Size | 56.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6dcdd41b64e70894848e998e42cd9f5a588e3401f52b670b4dc064bd0fe908f1
|
|
BLAKE2b-256 checksum How to use checksums |
3269a63606681064187dfc3b0725c5fd0536d686fadc0f3dff9cde14800b5f0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.6
|
Release files / constellation_core-0.0.0.dev0-py3-none-any.whl
| Download URL | constellation_core-0.0.0.dev0-py3-none-any.whl |
|---|---|
| Size | 82.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74bc338adf4ded1aa9004055ce5a89279ff38b2dea9e2bd74611ec3ade75d1ea
|
|
BLAKE2b-256 checksum How to use checksums |
7a4df82a55f2246d8787d960f35bacc4b9afb52ccdf8b4d35ed33fb4725281c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.6
|
Security for constellation-core 0.0.0.dev0
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.