Metadata-Version: 2.4
Name: zabgrab
Version: 1.0.0
Summary: Zabbix data retrieval
Author-email: Sean Leavey <sean.leavey@stfc.ac.uk>
License-Expression: GPL-3.0-or-later
Project-URL: Documentation, https://seands.github.io/zabgrab/
Project-URL: Source Code, https://github.com/SeanDS/zabgrab
Project-URL: Changelog, https://github.com/SeanDS/zabgrab/blob/main/CHANGELOG.rst
Project-URL: Issues, https://github.com/SeanDS/zabgrab/issues
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: System :: Monitoring
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.2
Requires-Dist: rich>=13.7
Requires-Dist: pydantic>=2.11
Requires-Dist: tomlkit>=0.12
Requires-Dist: aiohttp>=3.9
Requires-Dist: keyring>=24
Requires-Dist: dateparser>=1.2
Requires-Dist: numpy>=1.26
Requires-Dist: h5py>=3.10
Provides-Extra: plot
Requires-Dist: matplotlib>=3.8; extra == "plot"
Provides-Extra: docs
Requires-Dist: sphinx>=8; extra == "docs"
Requires-Dist: sphinx-click>=6; extra == "docs"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov>=5; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: pre-commit>=3.7; extra == "dev"
Dynamic: license-file

# zabgrab

zabgrab is a command line tool that fetches data from [Zabbix](https://www.zabbix.com/)
servers into files you can analyse: MATLAB (`.mat`), HDF5 (`.h5`), TSV and CSV.

**Documentation: https://seands.github.io/zabgrab/** (development version:
https://seands.github.io/zabgrab/dev/)

## Installation

zabgrab needs Python 3.11 or later, and works with Zabbix 7.0 or later.

```bash
pip install zabgrab
pip install 'zabgrab[plot]'    # with plotting (matplotlib)
```

[pipx](https://pipx.pypa.io/) (`pipx install 'zabgrab[plot]'`) keeps it in its own
environment.

## Running zabgrab

```bash
zabgrab --help                 # the commands
zabgrab COMMAND --help         # a command's options

zabgrab token add https://zabbix.example.org      # store an API token
zabgrab items "Particles *" --server https://zabbix.example.org
zabgrab fetch --server https://zabbix.example.org --item "host=lab1,name=Particles *" \
    --from "24 hours ago" --to now --output particles.h5
zabgrab plot particles.h5
```

zabgrab asks for anything it needs that you don't give it. The
[documentation](https://seands.github.io/zabgrab/) explains how to configure servers
and templates, keep files up to date, and load the data in MATLAB and Python.

## Building the documentation

The documentation is in `docs/`, built with [Sphinx](https://www.sphinx-doc.org/):

```bash
pip install -e ".[docs]"
sphinx-build -b html docs docs/_build/html
```

Then open `docs/_build/html/index.html`. The documentation's developer guide explains
how to set up a development environment, run the tests, and make a release.

## Credits

Sean Leavey <sean.leavey@stfc.ac.uk>
