Skip to main content

Build Status Coverage Status

Python code to retrieve data from the EPICS Archiver Appliance.

Usage

Note on timezones

When you pass a datetime to aapy it doesn't know by default what timezone that datetime is supposed to be in. It will assume that it is the local timezone, but will print a warning. If you pass it a timezone-aware datetime no warning will be printed. You can use utc_datetime() as a shortcut:

>>> from aa.utils import utc_datetime
>>> utc_datetime(2019, 10, 7, 17) # 5pm UTC on 7th October 2019

Fetching data

To retrieve data, create the appropriate fetcher

>>> from aa.js import JsonFetcher
>>> jf = JsonFetcher('archappl.diamond.ac.uk', 80)

You can request a single event, returning an ArchiveEvent object:

>>> from datetime import datetime
>>> event = jf.get_event_at('SR-DI-DCCT-01:SIGNAL', datetime.now())
WARNING:root:Assuming timezone for 2019-10-07 16:42:13.301672 is Europe/London
Archive event for PV SR-DI-DCCT-01:SIGNAL: timestamp 2019-10-07
15:42:04.876639 UTC value [301.33007915] severity 0
>>> event.value
array([300.77982715])
>>> event.utc_datetime
datetime.datetime(2019, 10, 7, 16, 2, 54, 928836, tzinfo=<UTC>)

You can also request a range of events, returning an ArchiveData object:

>>> data = jf.get_values('SR-DI-DCCT-01:SIGNAL', utc_datetime(2018, 1, 7), utc_datetime(2018, 1, 8))
>>> data.values
array([[2.51189843e-03],
   [1.56371643e-03],
   [5.54392030e-04],
   ...,
   [2.77373366e+02],
   [2.77329542e+02],
   [2.77287664e+02]])
>>> data.utc_datetimes
array([datetime.datetime(2018, 1, 6, 23, 59, 59, 3897, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 0, 0, 2, 3975, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 0, 0, 5, 4066, tzinfo=<UTC>), ...,
   datetime.datetime(2018, 1, 7, 23, 59, 53, 3885, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 23, 59, 56, 3825, tzinfo=<UTC>),
   datetime.datetime(2018, 1, 7, 23, 59, 59, 3726, tzinfo=<UTC>)],
  dtype=object)
>>> len(data)
28764

Development

aapy uses Pipenv to manage its dependencies.

To install development requirements:

pipenv install --dev

To run the tests and static checks:

pipenv run tests

Release files for aapy 0.12

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

Source distribution (sdist)

Source distribution for aapy 0.12
File Size Uploaded
aapy-0.12.tar.gz 26.4 kB Details

Built distribution (wheel)

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

Total release size: 57.3 kB

Release files / aapy-0.12.tar.gz

Download URL aapy-0.12.tar.gz
Size 26.4 kB
Tags Source
SHA-256 checksum
How to use checksums
df5b03eb233c4d8f1877d459f5cb85b4087ec011284dc4daa0670a0a08886eea
BLAKE2b-256 checksum
How to use checksums
1fe44a8dcca0323408a1f4ce8338112b8cd4e166769fd567df654fc4a979cc38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

Release files / aapy-0.12-py3-none-any.whl

Download URL aapy-0.12-py3-none-any.whl
Size 31.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6faee9b9edab0ab277176be7ffbfb7082f00955c3fbf3bf0f4968d2e9409fa9f
BLAKE2b-256 checksum
How to use checksums
6424c85b0df0f2cef7df06e04a9fc69b1413bcd1eaf6315db0c6883f5f3dc882
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

Release history Release notifications | RSS feed

This release

0.12 This release

2 release files

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