VERSION: 0.7.0
A Python module containing a couple of tools to calculate the blood alcohol content of people.
It's at home at GitHub: https://github.com/brutus/boozelib/.
As a side note: I created this library mainly to have a very simple module to try different Python testing and packaging best practice. This is in no way a serious medical approach and also accepts a rather big level of abstraction. Depending on your use case, this might be okay; but I would not deem it fit for serious health and / or legal stuff 😉 🍻
You can install it from PyPi, it is known as boozelib
and has no
dependencies:
pip install --user boozelib
The two main functions are:
-
get_blood_alcohol_content(age, weight, height, sex, volume, percent)
Return the blood alcohol contents raise (per mill) for a person after a drink.
Given a drink containing volume (ml) of percent (vol/vol) alcohol, for a person with age (years), weight (kg) and height (cm) — using a formular for "female body types" if sex is true.
-
get_blood_alcohol_degradation(age, weight, height, sex, minutes=1, degradation=None)
Return the alcohol degradation (per mill) for a person over minutes.
For a person with age (years), weight (kg) and height (cm), using the formular for "female body types" if sex is true, over the given minutes. If degradation is not set,
ALCOHOL_DEGRADATION
is used as default.
This uses some constants and one variable you might want to review:
ALCOHOL_DEGRADATION
: the default value for alcohol degradation; meaning the amount of alcohol (in gram) your body is degrading per minute, per kilogram body weight. This is usually a value between0.0017
and0.0025
(about 0.1—0.2 per thousand per hour).
Return the blood alcohol contents raise (per mill) for a person after a drink:
from boozelib import get_blood_alcohol_content
get_blood_alcohol_content(
age=32, weight=48, height=162, sex=True, volume=500, percent=4.9
)
# ⇒ 0.5480779730398769
And to calculate alcohol degradation:
from boozelib import get_blood_alcohol_degradation
get_blood_alcohol_degradation(
age=32, weight=48, height=162, sex=True, minutes=60
)
# ⇒ 0.20133476560648536
You can change the default for alcohol degradation globally via setting
boozelib.ALCOHOL_DEGRADATION
. Or change the value for alcohol degradation
per call:
get_blood_alcohol_degradation(
age=32, weight=48, height=162, sex=True, minutes=60, degradation=0.002
)
# ⇒ 0.16106781248518828
See the source or the documentation for more information and the used formulas.
Poetry is used to manage a virtual environment for the development setup.
A Makefile
is provided, that collects some common tasks. You have to run
the following once, to setup your environment:
make setup
nox is used as a test runner (with ward as the framework). If you have the development environment activated, you can just run:
make tests
If something fails, please get in touch.
- Big hugs to Mathilda for hanging around and helping me figuring out all that math and biology stuff.
If you find bugs, issues or anything else, please use the issue tracker on GitHub. Issues and PRs are welcome ❤️