# PyArchAppl
[](https://pypi.org/project/PyArchAppl/)
[](./LICENSE)

**PyArchAppl** is a Python client library for the [EPICS Archiver Appliance](https://github.com/archiver-appliance/epicsarchiverap), providing easy data access, management, and automation for control system data.
---
## Features
- Retrieve and plot time-series data from Archiver Appliance
- Management interface for PVs (Process Variables)
- Command-line tools for data access and inspection
- Flexible site configuration
- Support Python 3.9, 3.10, 3.11, 3.12, 3.13
---
## Installation
```bash
pip install pyarchappl
```
To upgrade:
```bash
pip install --upgrade pyarchappl
```
---
## Quick Start
### Data Retrieval Example
```python
from archappl.client import ArchiverDataClient
import matplotlib.pyplot as plt
client = ArchiverDataClient()
client.url = 'http://127.0.0.1:17665' # Optional, default provided
pv = 'TST:gaussianNoise'
data = client.get_data(pv)
data.plot()
plt.show()
```

### Management Example
```python
from archappl.client import ArchiverMgmtClient
client = ArchiverMgmtClient()
client.url = 'http://127.0.0.1:17665'
all_pvs = client.get_all_pvs(pv="TST*")
print(all_pvs)
# [u'TST:fakeGaussianNoise', u'TST:gaussianNoise', u'TST:uniformNoise']
```
---
## Command Line Tools
PyArchAppl provides convenient CLI tools:
- `pyarchappl-get` — Retrieve data (use `-h` for help)
- `pyarchappl-inspect` — Inspect archiver information (use `-h` for help)
---
## Configuration
PyArchAppl uses an INI-style configuration file to define service connection and behavior.
**Config file search order:**
1. `~/.pyarchappl/config.ini`
2. `/etc/pyarchappl/config.ini`
3. Package default: `main/config/default.ini`
Override with the environment variable: `PYARCHAPPL_CONFIG_FILE`.
See the [default.ini](./main/config/default.ini) for all options.
---
## Development
- Clone the repo and install dependencies from `requirements.txt` and `requirements-dev.txt`.
- [Optional] Set up a local Archiver Appliance for testing.
---
## License
This project is licensed under the GPLv3+ License. See the [LICENSE](./LICENSE) file for details.
---
## Links
- [Documentation](https://zhangt58.github.io/PyArchAppl/)
- [Archiver Appliance Docs](https://epicsarchiver.readthedocs.io/en/latest/)
- [PyPI Project](https://pypi.org/project/PyArchAppl/)
Raw data
{
"_id": null,
"home_page": null,
"name": "pyarchappl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "Archiver, EPICS, CA, PVA",
"author": "Tong Zhang",
"author_email": null,
"download_url": null,
"platform": null,
"description": "# PyArchAppl\n\n[](https://pypi.org/project/PyArchAppl/)\n[](./LICENSE)\n\n\n**PyArchAppl** is a Python client library for the [EPICS Archiver Appliance](https://github.com/archiver-appliance/epicsarchiverap), providing easy data access, management, and automation for control system data.\n\n---\n\n## Features\n\n- Retrieve and plot time-series data from Archiver Appliance\n- Management interface for PVs (Process Variables)\n- Command-line tools for data access and inspection\n- Flexible site configuration\n- Support Python 3.9, 3.10, 3.11, 3.12, 3.13\n\n---\n\n## Installation\n\n```bash\npip install pyarchappl\n```\n\nTo upgrade:\n```bash\npip install --upgrade pyarchappl\n```\n\n---\n\n## Quick Start\n\n### Data Retrieval Example\n\n```python\nfrom archappl.client import ArchiverDataClient\nimport matplotlib.pyplot as plt\n\nclient = ArchiverDataClient()\nclient.url = 'http://127.0.0.1:17665' # Optional, default provided\n\npv = 'TST:gaussianNoise'\ndata = client.get_data(pv)\n\ndata.plot()\nplt.show()\n```\n\n\n### Management Example\n\n```python\nfrom archappl.client import ArchiverMgmtClient\n\nclient = ArchiverMgmtClient()\nclient.url = 'http://127.0.0.1:17665'\n\nall_pvs = client.get_all_pvs(pv=\"TST*\")\nprint(all_pvs)\n# [u'TST:fakeGaussianNoise', u'TST:gaussianNoise', u'TST:uniformNoise']\n```\n\n---\n\n## Command Line Tools\n\nPyArchAppl provides convenient CLI tools:\n\n- `pyarchappl-get` — Retrieve data (use `-h` for help)\n- `pyarchappl-inspect` — Inspect archiver information (use `-h` for help)\n\n---\n\n## Configuration\n\nPyArchAppl uses an INI-style configuration file to define service connection and behavior.\n\n**Config file search order:**\n1. `~/.pyarchappl/config.ini`\n2. `/etc/pyarchappl/config.ini`\n3. Package default: `main/config/default.ini`\n\nOverride with the environment variable: `PYARCHAPPL_CONFIG_FILE`.\n\nSee the [default.ini](./main/config/default.ini) for all options.\n\n---\n\n## Development\n\n- Clone the repo and install dependencies from `requirements.txt` and `requirements-dev.txt`.\n- [Optional] Set up a local Archiver Appliance for testing.\n\n---\n\n## License\n\nThis project is licensed under the GPLv3+ License. See the [LICENSE](./LICENSE) file for details.\n\n---\n\n## Links\n\n- [Documentation](https://zhangt58.github.io/PyArchAppl/)\n- [Archiver Appliance Docs](https://epicsarchiver.readthedocs.io/en/latest/)\n- [PyPI Project](https://pypi.org/project/PyArchAppl/)\n",
"bugtrack_url": null,
"license": null,
"summary": "Python interface to Archiver Appliance",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://github.com/zhangt58/pyarchappl",
"PyPI": "https://pypi.org/project/pyarchappl"
},
"split_keywords": [
"archiver",
" epics",
" ca",
" pva"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2dc8577845b61e0aadeed613ef1cf21fdbe96b8ba9b2aee9f4541cd0c5caef4a",
"md5": "4075cc76b2ece335f30430fe22c68d0a",
"sha256": "aa941545f59ab062d10d14a94964e646c4d8901dae5c6c854c04057f18248dd9"
},
"downloads": -1,
"filename": "pyarchappl-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4075cc76b2ece335f30430fe22c68d0a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 48421,
"upload_time": "2025-09-18T21:28:38",
"upload_time_iso_8601": "2025-09-18T21:28:38.758535Z",
"url": "https://files.pythonhosted.org/packages/2d/c8/577845b61e0aadeed613ef1cf21fdbe96b8ba9b2aee9f4541cd0c5caef4a/pyarchappl-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-18 21:28:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zhangt58",
"github_project": "pyarchappl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": [
[
">=",
"1.0"
],
[
"<",
"2.0"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"1.0"
],
[
"<",
"2.0"
]
]
},
{
"name": "openpyxl",
"specs": [
[
">",
"3.0"
],
[
"<",
"3.1"
]
]
},
{
"name": "tqdm",
"specs": [
[
"<",
"5.0"
],
[
">=",
"4.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.0"
],
[
"<",
"3.0"
]
]
},
{
"name": "simplejson",
"specs": [
[
"<",
"4.0"
],
[
">=",
"3.0"
]
]
},
{
"name": "tables",
"specs": [
[
"<",
"4.0"
],
[
">=",
"3.0"
]
]
},
{
"name": "protobuf",
"specs": [
[
"<",
"4.0"
],
[
">=",
"3.0"
]
]
}
],
"lcname": "pyarchappl"
}