No project description provided
Project description
§ 3b of the German Einkommensteuergesetz (EStG) defines the premiums for work on weekends, holidays and special days, like new year. This library takes a list of work hours / shifts (e.g. on 2018-06-03 from 19:00 until 03:00) and returns the premium factor (e.g. 1.5) as well as the relevant time-spans.
As noted in the license, this software is provided without any warranty or guarantee for correctness.
§ 3b des Deutschen Einkommensteuergesetzes (EStG) definiert die Höhe der steuerfreien Zuschläge für Arbeit in der Nacht, an Sonntagen, Feiertagen sowie besonderen Tagen wie Neujahr. Diese Library errechnet aus einer Liste von Arbeitszeiten die Höhe der maximalen Zuschläge.
Diese Software wird, wie in der Lizenz angegeben, ohne Gewähr und Garantie auf Richtigkeit bereitgestellt.
Installation
Install libestg3b via pip:
$ pip install libestg3b
Usage
>>> import datetime as DT
>>> from libestg3b import EStG3b
>>> e = EStG3b('DE')()
>>> e.calculate_shift([datetime(2018, 9, 16, 20), datetime(2018, 9, 17, 2)])
[
Match(
start=datetime.datetime(2018, 9, 16, 19, 0),
end=datetime.datetime(2018, 9, 16, 20, 0),
rules={<Rule: Sonntagsarbeit>}
),
Match(
start=datetime.datetime(2018, 9, 16, 20, 0),
end=datetime.datetime(2018, 9, 17, 0, 0),
rules={<Rule: Sonntagsarbeit>, <Rule: Nachtarbeit 20:00-06:00>}
),
Match(
start=datetime.datetime(2018, 9, 17, 0, 0),
end=datetime.datetime(2018, 9, 17, 2, 0),
rules={<Rule: Sonntagsarbeit (Montag)>, <Rule: Nachtarbeit 00:00-04:00 (Folgetag)>}
),
]
Development
Setup
Using python 3.6, do the following:
$ virtualenv venv --python=python3.6
$ pip install -e ".[dev]"
Usual Tasks
make test: run tests (use tox or py.test directly to supply flags like -k)
make lint: run pylava and friends
make fixlint: sort imports correctly
Releasing a new version
Assuming you have been handed the required credentials, a new version can be released as follows.
adapt the version in setup.py, according to semver.
commit this change as Version 1.2.3
tag the resulting commit as v1.2.3
push the new tag as well as the master branch
update the package on PyPI:
$ rm dist/*
$ python setup.py sdist bdist_wheel
$ twine upload dist/*
Prerequisites
This library is currently python 3.6+. If you would like to use this library with a lower python version, please open an issue. We’re happy to change things around.
Versioning
New version numbers are assigned following semver. All 0.x.y versions are tested and usable, but do not have a stable public interface.
A version 1.0 will be released, once we deem the library stable.
License
All code in this repository is licensed under the MIT license.
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 libestg3b-0.0.5.tar.gz
.
File metadata
- Download URL: libestg3b-0.0.5.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c71c4a32ab545596ec0273253ec50a5520bc8be528b42c6b6aebdb68d562b0c5 |
|
MD5 | bba3657822ce7d5a4bd45500182b97c2 |
|
BLAKE2b-256 | 53a7ccb3f22d599d6812a338348f97529d4ad7e67dcb8b84eccf060c2b2a6174 |
File details
Details for the file libestg3b-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: libestg3b-0.0.5-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a69bf4dc2964aafad4f5d2d9a07dbd050c0d69e75eb424b1ccd22fedffa9f29 |
|
MD5 | dec02fff11063e3fae16beead3a591eb |
|
BLAKE2b-256 | 41df8ee6f80f265971177ac3a6c5fb650db5c370e5f0e371c85f88fa9f0444cc |