A lightweight client for an AHBicht powered Backend
Project description
AHBicht Functions Python Client
This repository contains a lightweight client for an AHBicht powered backend by Hochfrequenz.
It does not duplicate the core AHBicht logic but provides a PackageResolver
that accesses a database (via a REST API) that stores PackageKeyConditionExpressionMapping
s.
The database is maintained by Hochfrequenz.
Internally this client uses and requires aiohttp.
How to use the Client
- Install using pip:
pip install ahbichtfunctionsclient
Then call it
import asyncio
from ahbicht.mapping_results import PackageKeyConditionExpressionMapping, ConditionKeyConditionTextMapping
from ahbichtfunctionsclient import HochfrequenzPackageResolver
from maus.edifact import EdifactFormat, EdifactFormatVersion
async def retrieve_package_key_condition_expression_mapping():
# for a documentation about the purpose of a package resolver, you should read the ahbicht docs
package_resolver = HochfrequenzPackageResolver(EdifactFormatVersion.FV2204, EdifactFormat.UTILMD)
# the following data are just hardcoded to provide you a minimal working example
package_mapping = await package_resolver.get_condition_expression("10P") # this does an HTTP GET request
assert isinstance(package_mapping, PackageKeyConditionExpressionMapping) # the result is ahbicht compatible
async def retrieve_condition_key_condition_text_mapping():
condition_resolver = HochfrequenzPackageResolver(EdifactFormatVersion.FV2204, EdifactFormat.UTILMD)
# the following data are just hardcoded to provide you a minimal working example
condition_mapping = await condition_resolver.get_condition_expression("56") # this does an HTTP GET request
assert isinstance(condition_mapping, ConditionKeyConditionTextMapping) # the result is ahbicht compatible
async def minimal_working_example():
await retrieve_condition_key_condition_text_mapping()
await retrieve_package_key_condition_expression_mapping()
loop = asyncio.get_event_loop()
loop.run_until_complete(minimal_working_example())
Production Readiness
This AHBicht client has a 100% code coverage, is linted, statically type checked and PEP561 compatible. It relies on a Hochfrequenz API which is, as of today (2022-03-17), free to use. Hochfrequenz does not give any guarantees regarding the stability or uptime of the API. Also at one point it might require authorization.
How to use this Repository on Your Machine (for development)
Please follow the instructions in our Python Template Repository. And for futher information, see the Tox Repository.
You can also check out our MIG AHB Utility Stack (MAUS) and AHBicht repositories.
Contribute
You are very welcome to contribute to this template repository by opening a pull request against the main branch.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ahbichtfunctionsclient-0.0.5.tar.gz
.
File metadata
- Download URL: ahbichtfunctionsclient-0.0.5.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68e6b6ff94a4b4dde4c4b574c4f773e1b0dc9c132a0a61050712ea8b07fabac1 |
|
MD5 | 35147dea91b6bbc6312fc900e4c54629 |
|
BLAKE2b-256 | 1bb3b019a8027e28cfce41d018b08e40170708b56d23c8a0b664701b179cf0be |
File details
Details for the file ahbichtfunctionsclient-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: ahbichtfunctionsclient-0.0.5-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67def99deca641883b2b2c81516c02878eb6e9918ff2af35f68343d0d897f871 |
|
MD5 | c728a4a485027df093a9f9ef2ff0a899 |
|
BLAKE2b-256 | abfbfeee804fce9561bc2888d0a757cd6830d6783d7e9fd0d1504a58b34714f5 |