A thin python wrapper for the fastbill API
Project description
Super thin Python wrapper for Fastbill’s HTTP API developed by STYLIGHT.
Latest release:
Bugfix release. In the case of an successful HTTP response without a valid JSON structure the wrapper would crash.
Tests which would catch this bug were not run due to test misconfiguration. This is fixed as well.
Add configurable timeout to all API calls. The default timeout is 1 minute. This could lead to unexpected timeout exceptions, you’ll need to handle.
Bugfix release for name parameter.
Warning: This release has a bug. The ‘name’ parameter will break on str types on Python2. Use 0.7.1 instead.
Potentially breaking change: Restructure fastbill module into package with each component having it’s own module. Your imports may break.
Added mock library to setup.py
Breaking change: Don’t throw a KeyError, but rather an AttributeError on FastbillResponse.currency property
Add pre- and post-request callbacks
Added NOK to CURRENCIES dict.
Support pickling of FastbillResponse objects. The link to the API connection will not be pickled though. API credentials will also not be pickled.
Introduce name parameter to better distinguish FastbillWrapper instances.
Bugfix release.
Calls to potential special methods like __unicode__ would lead to an erroneous Fastbill API call.
Improved debug logging.
Deprecated `FastbillHttpError` Execption. Now only FastbillResponseError will be raised. FastbillResponseError will inherit from FastbillHttpError for the time being, but catching FastbillHttpError is deprecated. Use FastbillResponseError instead.
Improved testcase to check for failing API calls as well.
Experimental: Improved FastbillResponse to allow ORM like object traversals. Use with caution.
Added property currency which looks up the proper ISO 4217 currency abbreviation when a CURRENCY_CODE integer is present in the response. An AttributeError will be raised when it’s not present.
Limitations:
only supports JSON payloads
doesn’t (overly) check for consistency of responses
doesn’t convert date strings to datetime objects
Dependencies:
requests
six (for Python 2/3 compatibility)
Installation:
pip install fastbill
Usage:
from fastbill import FastbillWrapper
# Construct the api client for Fastbill's automatic API
client = FastbillWrapper('fastbill_user', 'fastbill_key')
# You can also specify a service_url, in case you need Fastbill's core API instead:
core_client = FastbillWrapper('fastbill_user', 'fastbill_key', service_url='endpoint_url')
# Make requests, e.g. service customer.create
client.customer_create(data={})
# Search for customer, subscriptions, etc...
for customer in client.customer_get(filter={'city': 'Munich'}):
print customer
# But you can also see the full result
result = client.customer_get(filter={'city': 'Munich'})
print result.keys()
# Will give you 'CUSTOMERS'
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.