# rrdtool-bindings
Python bindings from [RRDtool](https://oss.oetiker.ch/rrdtool),
packaged to work with modern Python packaging tools.
Spiritual successor to [python-rrdtool](https://pypi.org/project/rrdtool/),
which has not been updated since 2022 and the GitHub project was archived in 2023.
It failed to install/compile via `uv` or `pdm` on recent Fedora releases,
so this project was born.
Supported Python versions: 3.8+
## Installation
This package compiles the bindings, so it requires the following dependencies:
* Debian/Ubuntu: `apt-get install -y gcc librrd-dev python3-dev`
* Fedora/Red Hat: `dnf install -y gcc rrdtool-devel python3-devel`
Then run:
pip install rrdtool-bindings
## Usage
Example from the RRDtool documentation.
```python
import rrdtool
# Create Round Robin Database
rrdtool.create('test.rrd', '--start', 'now', '--step', '300', 'RRA:AVERAGE:0.5:1:1200', 'DS:temp:GAUGE:600:-273:5000')
# Feed updates to the RRD
rrdtool.update('test.rrd', 'N:32')
```
See [rrdpython](https://oss.oetiker.ch/rrdtool/prog/rrdpython.en.html) and `tests/test_bindings.py` for more examples.
## History
### v0.2.0 - 2024-05-31
Initial release.
Uses the C code from [5JAN24](https://github.com/oetiker/rrdtool-1.x/blob/b39df920f0ff31a49460d9872006a2579ee4c7ed/bindings/python/rrdtoolmodule.c).
## Contributing
Changes to the C code should be submitted [upstream](https://github.com/oetiker/rrdtool-1.x),
then copied to this repository.
This project uses [PDM](https://pdm-project.org/latest/),
so you will need that installed first.
Then fork/clone the repository and run `pdm install`.
Wheels can be compiled locally via `pdm build`.
[`just`](https://github.com/casey/just) is used as a task runner for convenience,
but it is optional,
any of the commands in `justfile` can be ran by hand.
Raw data
{
"_id": null,
"home_page": null,
"name": "rrdtool-bindings",
"maintainer": "Scott Searcy",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "rrdtool",
"author": "Christian Kroeger, Hye-Shik Chang",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ca/f6/55974616d1e34af8a05722e7e13a39a395e36984aea39b19d38608b36c33/rrdtool_bindings-0.2.0.tar.gz",
"platform": null,
"description": "# rrdtool-bindings\n\nPython bindings from [RRDtool](https://oss.oetiker.ch/rrdtool),\npackaged to work with modern Python packaging tools.\n\nSpiritual successor to [python-rrdtool](https://pypi.org/project/rrdtool/),\nwhich has not been updated since 2022 and the GitHub project was archived in 2023.\nIt failed to install/compile via `uv` or `pdm` on recent Fedora releases,\nso this project was born.\n\nSupported Python versions: 3.8+\n\n## Installation\n\nThis package compiles the bindings, so it requires the following dependencies:\n\n* Debian/Ubuntu: `apt-get install -y gcc librrd-dev python3-dev`\n* Fedora/Red Hat: `dnf install -y gcc rrdtool-devel python3-devel`\n\nThen run:\n\n pip install rrdtool-bindings\n\n## Usage\n\nExample from the RRDtool documentation.\n\n```python\nimport rrdtool\n\n# Create Round Robin Database\nrrdtool.create('test.rrd', '--start', 'now', '--step', '300', 'RRA:AVERAGE:0.5:1:1200', 'DS:temp:GAUGE:600:-273:5000')\n\n# Feed updates to the RRD\nrrdtool.update('test.rrd', 'N:32')\n```\n\nSee [rrdpython](https://oss.oetiker.ch/rrdtool/prog/rrdpython.en.html) and `tests/test_bindings.py` for more examples.\n\n## History\n\n### v0.2.0 - 2024-05-31\n\nInitial release.\n\nUses the C code from [5JAN24](https://github.com/oetiker/rrdtool-1.x/blob/b39df920f0ff31a49460d9872006a2579ee4c7ed/bindings/python/rrdtoolmodule.c).\n\n\n## Contributing\n\nChanges to the C code should be submitted [upstream](https://github.com/oetiker/rrdtool-1.x),\nthen copied to this repository.\n\nThis project uses [PDM](https://pdm-project.org/latest/),\nso you will need that installed first.\nThen fork/clone the repository and run `pdm install`.\nWheels can be compiled locally via `pdm build`.\n\n[`just`](https://github.com/casey/just) is used as a task runner for convenience,\nbut it is optional,\nany of the commands in `justfile` can be ran by hand.\n",
"bugtrack_url": null,
"license": "GPL-2.0-or-later",
"summary": "Modern Python packaging for RRDtool Python bindings to C extension.",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/smsearcy/rrdtool-python-bindings",
"Source": "https://github.com/smsearcy/rrdtool-python-bindings"
},
"split_keywords": [
"rrdtool"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "caf655974616d1e34af8a05722e7e13a39a395e36984aea39b19d38608b36c33",
"md5": "6f1f6749c31a824d2caa860cda73b843",
"sha256": "70cde6a81fb3581d463d1da9b188b19ce98faceadbb4a202be1a1c57bc17f0b8"
},
"downloads": -1,
"filename": "rrdtool_bindings-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "6f1f6749c31a824d2caa860cda73b843",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 23409,
"upload_time": "2024-05-31T20:16:04",
"upload_time_iso_8601": "2024-05-31T20:16:04.909515Z",
"url": "https://files.pythonhosted.org/packages/ca/f6/55974616d1e34af8a05722e7e13a39a395e36984aea39b19d38608b36c33/rrdtool_bindings-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-31 20:16:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "smsearcy",
"github_project": "rrdtool-python-bindings",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "cfgv",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "distlib",
"specs": [
[
"==",
"0.3.8"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.14.0"
]
]
},
{
"name": "identify",
"specs": [
[
"==",
"2.5.36"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "nodeenv",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.0"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.2.2"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "pre-commit",
"specs": [
[
"==",
"3.5.0"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.2.1"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "ruff",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "virtualenv",
"specs": [
[
"==",
"20.26.2"
]
]
}
],
"lcname": "rrdtool-bindings"
}