Programming with betting odds, made simple
Project description
Degen
Programming with betting odds, made simple
pronounced "dee-gen" as in Degenerate Gambler
Table of Contents
Installation
pip install degen
Getting Started
from degen import AmericanOdds
odds = AmericanOdds(-110)
print(odds.value)
# >>> -110
Easy conversion between odds types
There are 3 main Odds
types provided by degen:
AmericanOdds
DecimalOdds
ImpliedProbability
They all support the methods:
.to_american_odds()
.to_decimal_odds()
.to_implied_probability()
No more formulas
Examples
Example 0: simple odds objects
from degen import AmericanOdds, DecimalOdds, ImpliedProbability
american_odds = AmericanOdds(-110)
decimal_odds: DecimalOdds = american_odds.to_decimal_odds()
print(decimal_odds.value)
# >>> 1.909090909090909090909090909
implied_probability: ImpliedProbability = american_odds.to_implied_probability()
print(implied_probability.value)
# >>> 0.5238095238095238095238095238
Example 1: Bitwise operators for simple odds computation, parlay using bitwise-and operator
odds1 = AmericanOdds(-110)
odds2 = AmericanOdds(-110)
parlay_odds: AmericanOdds = odds1 & odds2
print(parlay_odds.value)
# >>> 264.4628099173553719008264463
Example 2: Computing juice or the vig using the bitwise-or operator
juice = AmericanOdds(-110) | AmericanOdds(-110)
# Juice can't be represented by american odds, so the type of the juice
# variable will be "ImpliedProbability" after the computation, which is still an Odds type.
print(type(juice))
# >>> <class 'degen.odds_models.ImpliedProbability'>
# ImpliedProb > 1.0 provides a measure of "juiced" odds, or the book "vig"
print(juice.value)
# >>> 1.047619047619047619047619048
# You can ask all odds objects if they're "juiced"
print(juice.is_juiced)
# >>> True
Contributing / Developing
Install requirements
pip install -r requirements-dev.txt -r requirements.txt
Run tox suite:
- Run black code fmt checks
- Run unittests
- Check coverage
- Generate coverage report & badge
tox
Test coverage has a floor of 95% - this will block a PR from getting approval if this threshold isn't met.
Todo
Contributions from other developers are always welcome, here are some things that need to be implemented:
- Fractional Odds
- Hong Odds
Notes
- Everythign done with Decimals for numerical precision
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.
Source Distribution
File details
Details for the file degen-0.1.6.tar.gz
.
File metadata
- Download URL: degen-0.1.6.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10ced4b48c31f17142e3789f5961982d84589045f9a5880e8fcfad77f78ed888 |
|
MD5 | 13f85cb6d0062d68d699f2c7d31f298d |
|
BLAKE2b-256 | 42e6e10b7a3381e572715bf639163fd371fed5c4908e65e83dd551f96742f6d2 |