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.operations.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.operations.GetAccountFunds.with_params(wallet="AUS"))
# >>> AccountAPINGException: INVALID_PARAMETERS: Problem parsing the parameters,
# or a mandatory parameter was not found
client.request(session, betting.operations.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 upstream --tags
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
betfair_parser-0.5.0.tar.gz
(48.0 kB
view hashes)
Built Distribution
Close
Hashes for betfair_parser-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05ed35c7de9072713c65883c58e0fe6b42d6446ca9df8e7fa0af265b68e7ce85 |
|
MD5 | 77294362af6c74c89afbaa14b0dcbb9f |
|
BLAKE2b-256 | 44349b5b377f04b0f9e641a63be5e6ab3ecf56187b8f5d81b5cd9efc39bcb435 |