A betfair parser
Project description
betfair_parser
A simple and fast betfair parser. Why you might like this library:
- Complete: All betfair (non-vendor) client API included
- Conventions: The API strictly follows pythonic naming conventions
- Consistency: All data is type checked, API requests as well as responses
- Comfort: All betfair enums and type definitions are included, to support IDE syntax completion
- Clear errors: API errors don't just throw cryptic codes, but contain documentation about that error
- Compatible: Use it with any HTTP library you like, including async libraries
- Cheetah fast: Thanks to the magic of msgspec, megabytes of input parse in milliseconds
Usage
betfair_parser
is built out of API building blocks, that can be used with any HTTP client
you like. All API operations provide .headers()
, .body()
and a .parse_response()
method.
The client
module
contains a sample, minimalistic client implementation. It may be used as is with any requests
-compatible
HTTP client or serve as an example, how to integrate betfair_parser
with other HTTP clients.
import requests
from betfair_parser import client
from betfair_parser.spec import accounts, betting
session = requests.Session() # or anything similar like httpx.Client()
client.login(session, "username", "password", "app_key")
client.request(session, accounts.GetAccountFunds.with_params())
# AccountFundsResponse(available_to_bet_balance=10000.0, exposure=0.0,
# retained_commission=0.0, exposure_limit=-10000.0, discount_rate=0.0,
# points_balance=10, wallet=<Wallet.UK: 'UK'>)
# Request with an invalid wallet parameter:
client.request(session, accounts.GetAccountFunds.with_params(wallet="AUS"))
# >>> AccountAPINGException: INVALID_PARAMETERS: Problem parsing the parameters,
# or a mandatory parameter was not found
client.request(session, betting.ListCurrentOrders.with_params())
# CurrentOrderSummaryReport(current_orders=[], more_available=False)
# Support for other countries
from betfair_parser.endpoints import endpoint
endpoint_cfg = endpoint("ITA") # alpha-3 code
client.login(session, "username", "password", "app_key", endpoints=endpoint_cfg)
See test_live.py
for more API call examples.
Releasing
Releases are published automatically when a tag is pushed to GitHub.
# Set next version number
export RELEASE=x.x.x
# Create tags
git commit --allow-empty -m "Release $RELEASE"
git tag -a $RELEASE -m "Version $RELEASE"
# Push
git push --tags
git push
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
Built Distribution
File details
Details for the file betfair_parser-0.13.0.tar.gz
.
File metadata
- Download URL: betfair_parser-0.13.0.tar.gz
- Upload date:
- Size: 54.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 840651b30004e80377379ae09feb6cdd769a4c5566a5866342399e344c9aeba4 |
|
MD5 | 48ab79b42b0c691d5631c8294835f127 |
|
BLAKE2b-256 | e0405dcd596dbda60ef12514f88a4a744ed4b21ed468efe6ea189a359b83f3cd |
File details
Details for the file betfair_parser-0.13.0-py3-none-any.whl
.
File metadata
- Download URL: betfair_parser-0.13.0-py3-none-any.whl
- Upload date:
- Size: 65.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7447278f39108213811dd9837b07ccfab944b0b4e8adeb8e8d0bffdc0e3594d0 |
|
MD5 | a2682942d9be2a8ed3b788935d8c1a0d |
|
BLAKE2b-256 | 1128b0e4d837f7509363339078c64f25eb1deb893c8b1246c0222f9cfabe26db |