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.
Source Distribution
fastbill-0.7.3.tar.gz
(7.2 kB
view hashes)