Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

osprey-connectors

Lean control-system and archiver connectors for OSPREY: EPICS, DOOCS, and mock/virtual-accelerator connectors for reading and writing control-system channels, plus matching archiver connectors (EPICS Archiver Appliance, DOOCS local history, MongoDB, mock) for historical data. The package also carries the small set of support modules those connectors depend on — configuration loading, logging setup, the error/exception taxonomy, and the data-driven simulation core used by the mock connectors — without pulling in the rest of the OSPREY framework (agents, capabilities, web UI, etc.).

Install

pip install osprey-connectors

Import map

osprey-framework still imports every one of these from their historical osprey.* paths. Those old paths are compatibility shims — the real code now lives under osprey_connectors.*, and new code should import from there directly.

Old path (osprey.*) New path (osprey_connectors.*)
osprey.connectors osprey_connectors
osprey.connectors.factory osprey_connectors.factory
osprey.connectors.types osprey_connectors.types
osprey.connectors.channel_taxonomy osprey_connectors.channel_taxonomy
osprey.connectors.control_system osprey_connectors.control_system
osprey.connectors.control_system.base osprey_connectors.control_system.base
osprey.connectors.control_system.epics_connector osprey_connectors.control_system.epics_connector
osprey.connectors.control_system.doocs_connector osprey_connectors.control_system.doocs_connector
osprey.connectors.control_system.mock_connector osprey_connectors.control_system.mock_connector
osprey.connectors.control_system.va_connector osprey_connectors.control_system.va_connector
osprey.connectors.control_system.limits_validator osprey_connectors.control_system.limits_validator
osprey.connectors.archiver osprey_connectors.archiver
osprey.connectors.archiver.base osprey_connectors.archiver.base
osprey.connectors.archiver.epics_archiver_connector osprey_connectors.archiver.epics_archiver_connector
osprey.connectors.archiver.doocs_archiver_connector osprey_connectors.archiver.doocs_archiver_connector
osprey.connectors.archiver.mongodb_archiver_connector osprey_connectors.archiver.mongodb_archiver_connector
osprey.connectors.archiver.mock_archiver_connector osprey_connectors.archiver.mock_archiver_connector
osprey.errors osprey_connectors.errors
osprey.utils.config osprey_connectors.config
osprey.utils.logger osprey_connectors.logger
osprey.utils.relative_time osprey_connectors.relative_time
osprey.simulation osprey_connectors.simulation
osprey.simulation.engine osprey_connectors.simulation.engine
osprey.simulation.expressions osprey_connectors.simulation.expressions
osprey.simulation.machine osprey_connectors.simulation.machine
osprey.simulation.series osprey_connectors.simulation.series

Optional runtime dependencies

Only the connectors you actually use need their backing libraries installed; none of the following are declared as hard dependencies of this package, so importing osprey_connectors never requires them:

  • EPICS Channel Access client libraries — pyepics itself is a declared dependency, but it needs a working libca at runtime to talk to real IOCs. Install epicscorelibs (or otherwise make a per-architecture libca available) if you use EPICSConnector or EPICSArchiverConnector against a live control system; PYEPICS_LIBCA can also point at one explicitly.
  • pymongo — required by MongoDBArchiverConnector. Installed with this package; the connector imports it inside connect() so registration stays cheap, not because it is optional.
  • doocs4py — required by DOOCSConnector and DOOCSArchiverConnector. Install separately (it is not on PyPI in all environments) if you connect to a DOOCS control system.

Stability

osprey-connectors follows semantic versioning starting at 0.1.0.

The exception taxonomy in osprey_connectors.errors is public API: the class names ChannelWriteBlockedError, ChannelWriteFailedError, and ChannelLimitsViolationError, and their reason codes, are load-bearing for callers that branch on them.

  • ChannelWriteBlockedError — the write was refused and no value was written. reason is one of WRITES_DISABLED, LIMITS, VALIDATION_ERROR, or CONTROL_SYSTEM_REFUSED. The first three are refused before any caput; the last means the control system was asked and denied the write itself (EPICS access security, for instance).
  • ChannelWriteFailedError — the write was attempted but did not verifiably succeed. reason is one of FAILED (the control system did not take the value), MISMATCH (the channel holds a different value), or UNCONFIRMED (sent, but not acknowledged in time or the confirming re-read itself failed). The codes are the WriteOutcome words that raise; the exception also carries outcome, value_written and observed_value.
  • ChannelLimitsViolationError — a channel write violated configured safety limits (range, read-only, step size, or unlisted channel).

Removing or renaming any of these classes or reason codes is a major version bump. Adding new classes or reason codes is a minor version bump.

Metadata

Release files for osprey-connectors 2026.9.0b2

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

Source distribution (sdist)

Source distribution for osprey-connectors 2026.9.0b2
File Size Uploaded Provenance
osprey_connectors-2026.9.0b2.tar.gz 240.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for osprey-connectors 2026.9.0b2
File Interpreter ABI Platform
osprey_connectors-2026.9.0b2-py3-none-any.whl Python 3 none any Details

Total release size: 512.4 kB

Release files / osprey_connectors-2026.9.0b2.tar.gz

Download URL osprey_connectors-2026.9.0b2.tar.gz
Size 240.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0fec035eacff6734af80072f4a1962bffc540ffb4cc75ed5d08013fc2822f6b0
BLAKE2b-256 checksum
How to use checksums
fcb4aec52422ebab386b245aaef13ef0034cce2bd77117d1e3342c92a79a8118
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 10, 2026.

Transparency log

Release files / osprey_connectors-2026.9.0b2-py3-none-any.whl

Download URL osprey_connectors-2026.9.0b2-py3-none-any.whl
Size 271.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e2760960e0a28fad4e6c100c668966ccf3c587fb297230441a1c3b7d907c7bce
BLAKE2b-256 checksum
How to use checksums
4af2f2a6a4f0d9f13c0f8e759e5e69f7aa41ea235fdd75925770160af6e8806b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 10, 2026.

Transparency log

Security for osprey-connectors 2026.9.0b2

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for osprey_connectors-2026.9.0b2.tar.gz

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 Sep 10, 2026.

Transparency log

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.

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