Python Library that implements the BO4E Standard.
Project description
Python Library that Implements BO4E. Requires Python >=3.8.
Other Noteworthy BO4E Implementations
Contributing
Contributions are welcome. Feel free to open a Pull Request against the develop branch of this repository. Please provide unit tests if you contribute logic beyond bare bare business object definitions.
To enhance this BO4E implementation and contribute to this project check out the master branch, install tox and set the virtual environment created by the command
tox -e dev
The created venv should be located somewhere around .tox/dev/Scripts.
Regular Expression for Enumerations
If you want to add a new enumeration from the BO4E website then you can copy paste HTML table content and use the following regular expression pattern:
^(?<wert>[A-Z\d_]+)\t(?<bedeutung>.+)$
In combination with this substitution:
"$wert": "$wert", #: $bedeutung
This substitution can directly used on the website regex101.
Versioning
To create the version number itself, we stick to the default behavior of setuptools-scm. It will take a look at three things:
latest tag (with a version number)
the distance to this tag (e.g. number of revisions since latest tag)
workdir state (e.g. uncommitted changes since latest tag)
and uses roughly the following logic to render the version:
- no distance and clean:
{tag}
- distance and clean:
{next_version}.dev{distance}+{scm letter}{revision hash}
- no distance and not clean:
{tag}+dYYYYMMDD
- distance and not clean:
{next_version}.dev{distance}+{scm letter}{revision hash}.dYYYYMMDD
The next version is calculated by adding 1 to the last numeric component of the tag.
To get the current version run in your working directory:
python setup.py --version
At the moment it is not possible to get the version number at runtime. To achieve this, we have to implement Retrieving package version at runtime.
If you follow the instruction in the release workflow, you will get the version number which you define with the label name.
Release workflow
Check with tox all tests and lintings: tox
Check with tox if the packaging works fine: tox -e test_packaging
Merge all your changes you would like to have in the release into the master branch
Check that all Github actions for tests and linting do pass (should be automatically enforced for PRs against master)
Go to BO4E-python and click on “Draft a new release” in the right sidebar
Write in the Tag version field and in the Release title your new version, i.e. v0.0.6
Add a describtion to the release
Publish the release
There is a Github Action which gets triggered by a release event. It will run all default tests with tox. If they pass, it will take the tag title to replace the version information in the setup.cfg file. After checking the package with twine check it will finally upload the new package release.
Hochfrequenz
Hochfrequenz Unternehmensberatung GmbH is a Grünwald (near Munich) based consulting company with offices in Berlin and Bremen. According to Kununu ratings Hochfrequenz is among the most attractive employers within the German energy market. Applications of talented developers are welcome at any time! Please consider visiting our career page that also contains job openings.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.