Name | python-easyverein JSON |
Version |
1.1.1
JSON |
| download |
home_page | None |
Summary | Python library to interact with the EasyVerein API |
upload_time | 2025-07-20 08:04:24 |
maintainer | None |
docs_url | None |
author | Daniel Herrmann |
requires_python | <4.0,>=3.11 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[](https://python-easyverein.readthedocs.io/en/latest/?badge=latest)
[](https://opensource.org/licenses/MIT)



[](https://results.pre-commit.ci/latest/github/waza-ari/python-easyverein/main)
# Python EasyVerein
**Full documentation** is [available at Read The Docs](https://python-easyverein.readthedocs.io/en/stable/)
This package contains an unofficial API client for [EasyVerein](http://easyverein.com) written in Python. Please note that this
library is unofficial and therefore not supported in any way by SD Software Design GmbH. If you have issues using this
library, please do not open a support request within EasyVerein but report it to our GitHub repository instead.
## State of the API
This client was written against and tested against the Hexa v1.7 API version of EasyVerein. It may or may not work
with newer / older API versions, so please use them at your own risk. As the EasyVerein API does not expose model
information, the models used as part of this library are specific to this library and are based on information obtained
from the API responses (e.g. required fields when creating an item).
In addition to the official endpoints, the client provides some convenience functions that are not included in the
official API (e.g. setting a custom field of a member to certain value, no matter if it has been set before or not
or create an invoice with items in one go) which makes it much simpler to work with the API.
Not all endpoints offered by the EasyVerein API are supported. For now, only the following endpoints are implemented.
When saying CRUD, it means the library supports various methods to **C**reate, **R**ead, **U**pdate and
**D**elete objects. See the API reference for details on supported CRUD operations.
* `contact-details`: CRUD, Soft-Delete
* `custom-fields`: CRUD, Soft-Delete
* `invoice`: CRUD, Soft-Delete, plus some convenience methods
* `invoice-item`: CRUD
* `member`: CRUD, Soft-Delete
* `member-groups`: CRUD, Soft-Delete
* `member/<id>/custom-fields`: CRUD, plus some convenience methods
* `member/<id>/member-groups`: CRUD, plus some convenience methods
* `wastebasket` (its the official name used by the EasyVerein API to reference soft-deleted objects)
In addition to that, the library supports nested queries using the query syntax, included nested model validation.
See the Usage section of this documentation for more details.
## Installation
Install the package using `poetry`:
```bash
poetry add python-easyverein
```
or `pip`:
```bash
pip install python-easyverein
```
## Getting Started
This simple example shows how to setup the library and retrieve all invoices:
```python
import os
from easyverein import EasyvereinAPI
api_key = os.getenv('EV_API_KEY', '')
ev_client = EasyvereinAPI(api_key)
print(ev_client.invoice.get())
```
The result will be a list of invoice objects. All returned objects are [Pydantic](https://pydantic.dev) models under
the hood, so you get auto-completion and a guaranteed interface for these models. For details please refer to the usage
section of this documentation.
## Tests
All features of this client are automatically tested against the actual API using pytest. If you want to run the tests
yourself, it is advisable to create a separate demo account for that. Then, set the following environment variable to
your API token and simply run `pytest`:
```
EV_API_KEY=<your-api-key>
```
## Contributing
The client is written in pure Python, using `mkdocs` with `mkdocstrings` for documentation. Any changes or
pull requests are more than welcome, but please adhere to the code style:
- Use `ruff` based code linting, formatting and styling
- Use `mypy` for static type checking
A pre-commit hook configuration is supplied as part of the project. You can run them prior to your commit using:
```bash
pre-commit
# Or run them for the entire project
pre-commit run --all-files
```
Please make sure that any additions are properly tested. PRs won't get accepted if they don't have test cases to
cover them.
## Getting Help
Once more, this library is not officially supported by SD Software Design GmbH, the company behind EasyVerein.
If you have troubles, please ask yourself the following questions:
- Is your problem around API usage in general, which endpoint to call, which fields to set to achieve a certain thing?
Do you have questions around attribute naming, usage, or why the API behaves a certain way? Those questions should be
directed towards their support, as I cannot help with them.
- is your question around how to use this library, a mistake in the Pydantic models it's using, an error in the library
code or other questions around this library? Please open a GitHub issue for those questions.
Raw data
{
"_id": null,
"home_page": null,
"name": "python-easyverein",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Daniel Herrmann",
"author_email": "daniel.herrmann1@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/61/d8/0d353d81563ecabf1c44ee005241a1443a2fda583379b185a7b933830540/python_easyverein-1.1.1.tar.gz",
"platform": null,
"description": "[](https://python-easyverein.readthedocs.io/en/latest/?badge=latest)\n[](https://opensource.org/licenses/MIT)\n\n\n\n[](https://results.pre-commit.ci/latest/github/waza-ari/python-easyverein/main)\n\n\n\n# Python EasyVerein\n\n**Full documentation** is [available at Read The Docs](https://python-easyverein.readthedocs.io/en/stable/)\n\nThis package contains an unofficial API client for [EasyVerein](http://easyverein.com) written in Python. Please note that this\nlibrary is unofficial and therefore not supported in any way by SD Software Design GmbH. If you have issues using this\nlibrary, please do not open a support request within EasyVerein but report it to our GitHub repository instead.\n\n## State of the API\n\nThis client was written against and tested against the Hexa v1.7 API version of EasyVerein. It may or may not work\nwith newer / older API versions, so please use them at your own risk. As the EasyVerein API does not expose model\ninformation, the models used as part of this library are specific to this library and are based on information obtained\nfrom the API responses (e.g. required fields when creating an item).\n\nIn addition to the official endpoints, the client provides some convenience functions that are not included in the\nofficial API (e.g. setting a custom field of a member to certain value, no matter if it has been set before or not\nor create an invoice with items in one go) which makes it much simpler to work with the API.\n\nNot all endpoints offered by the EasyVerein API are supported. For now, only the following endpoints are implemented.\nWhen saying CRUD, it means the library supports various methods to **C**reate, **R**ead, **U**pdate and\n**D**elete objects. See the API reference for details on supported CRUD operations.\n\n* `contact-details`: CRUD, Soft-Delete\n* `custom-fields`: CRUD, Soft-Delete\n* `invoice`: CRUD, Soft-Delete, plus some convenience methods\n* `invoice-item`: CRUD\n* `member`: CRUD, Soft-Delete\n* `member-groups`: CRUD, Soft-Delete\n* `member/<id>/custom-fields`: CRUD, plus some convenience methods\n* `member/<id>/member-groups`: CRUD, plus some convenience methods\n* `wastebasket` (its the official name used by the EasyVerein API to reference soft-deleted objects)\n\nIn addition to that, the library supports nested queries using the query syntax, included nested model validation.\nSee the Usage section of this documentation for more details.\n\n## Installation\n\nInstall the package using `poetry`:\n\n```bash\npoetry add python-easyverein\n```\n\nor `pip`:\n\n```bash\npip install python-easyverein\n```\n\n## Getting Started\n\nThis simple example shows how to setup the library and retrieve all invoices:\n\n```python\nimport os\nfrom easyverein import EasyvereinAPI\n\napi_key = os.getenv('EV_API_KEY', '')\n\nev_client = EasyvereinAPI(api_key)\n\nprint(ev_client.invoice.get())\n```\n\nThe result will be a list of invoice objects. All returned objects are [Pydantic](https://pydantic.dev) models under\nthe hood, so you get auto-completion and a guaranteed interface for these models. For details please refer to the usage\nsection of this documentation.\n\n## Tests\n\nAll features of this client are automatically tested against the actual API using pytest. If you want to run the tests\nyourself, it is advisable to create a separate demo account for that. Then, set the following environment variable to\nyour API token and simply run `pytest`:\n\n```\nEV_API_KEY=<your-api-key>\n```\n\n## Contributing\n\nThe client is written in pure Python, using `mkdocs` with `mkdocstrings` for documentation. Any changes or\npull requests are more than welcome, but please adhere to the code style:\n\n- Use `ruff` based code linting, formatting and styling\n- Use `mypy` for static type checking\n\nA pre-commit hook configuration is supplied as part of the project. You can run them prior to your commit using:\n\n```bash\npre-commit\n\n# Or run them for the entire project\npre-commit run --all-files\n```\n\nPlease make sure that any additions are properly tested. PRs won't get accepted if they don't have test cases to\ncover them.\n\n## Getting Help\n\nOnce more, this library is not officially supported by SD Software Design GmbH, the company behind EasyVerein.\nIf you have troubles, please ask yourself the following questions:\n\n- Is your problem around API usage in general, which endpoint to call, which fields to set to achieve a certain thing?\n Do you have questions around attribute naming, usage, or why the API behaves a certain way? Those questions should be\n directed towards their support, as I cannot help with them.\n- is your question around how to use this library, a mistake in the Pydantic models it's using, an error in the library\n code or other questions around this library? Please open a GitHub issue for those questions.\n",
"bugtrack_url": null,
"license": null,
"summary": "Python library to interact with the EasyVerein API",
"version": "1.1.1",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "24ee86d33455f9918b7e2be88bad93d13b089e313e3335d17872b7f60daffab4",
"md5": "cf7ecab0e091a5f17a3246c3d784ae47",
"sha256": "5cc6b9e879d474e6f0a208d41edbaaf1b03372eae922f8e523bf52c5438bbdc3"
},
"downloads": -1,
"filename": "python_easyverein-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cf7ecab0e091a5f17a3246c3d784ae47",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 37281,
"upload_time": "2025-07-20T08:04:23",
"upload_time_iso_8601": "2025-07-20T08:04:23.484735Z",
"url": "https://files.pythonhosted.org/packages/24/ee/86d33455f9918b7e2be88bad93d13b089e313e3335d17872b7f60daffab4/python_easyverein-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61d80d353d81563ecabf1c44ee005241a1443a2fda583379b185a7b933830540",
"md5": "5d4c5787f97965af9137c39029fda550",
"sha256": "74e65179aa24d1f6cdf58eb140039baa2c1fb0a2b2f4b44483cb4bd88c33b83f"
},
"downloads": -1,
"filename": "python_easyverein-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "5d4c5787f97965af9137c39029fda550",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 25751,
"upload_time": "2025-07-20T08:04:24",
"upload_time_iso_8601": "2025-07-20T08:04:24.775815Z",
"url": "https://files.pythonhosted.org/packages/61/d8/0d353d81563ecabf1c44ee005241a1443a2fda583379b185a7b933830540/python_easyverein-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-20 08:04:24",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "python-easyverein"
}