Version 0.4.3
Changes
- Fix ValueError/JSONDecodeError when ESI/SSO is not returning valid JSON data (ie. it returns plain HTML)
- Changed the content of
APIException.response to be a string (containing either the HTML or JSON message) instead of being a json dict.
- updated minimal version required for pyswagger, to make sure some bug are fixed (case insensitive headers for example).
Version 0.4.2
Changes
- Fix
UnboundLocalError in EsiApp
- Fix the check for invalidate cache, as it was checking
self.expire instead of cache_expire
Version 0.4.1
Changes
- Fix header name that were overwritten when 304 to make sure they still have the capital E for expires and D for date. (until pyswagger is not anymore case sensitive for this)
- Fix EsiApp cache that wasn’t updated when we had HTTP 304
Version 0.4.0
Cache - Possible breaking change
- All cache have lost the timeout parameter in
set() method.
- If you have a custom cache with timeout, you should remove it, as it will not allow the Etag process to be used. If you keep it with a default value, it will continue to work.
EsiClient
- Do not cache
POST, PUT and DELETE requests anymore
- Support for head requests
- Add
Etag mechanism in the cache management
- Allow to set a
raise_on_error flag in EsiClient.request() to get an exception when status is not 2XX.
- Add a
timeout value for requests in the EsiClient.__init__() to force timeout requests (default is None)
- Allow to define a custom Signal to replace
API_CALL_STATS using signal_api_call_stats when initializing the client.
EsiSecurity
- Allow to define a custom Signal to replace
AFTER_TOKEN_REFRESH using signal_token_updated when initializing the client.
- Add a token identifier that will be returned to the
AFTER_TOKEN_REFRESH signal listeners, so it can identify a token
APIException
- Added request_param and response_header to the Exception, to have more precise data for error management
EsiApp
cache_time parameter value has changed. Number and 0 will still behave like before (forcing a cache time or no expiration with 0), None will disable forced cache time and use Expires header from swagger specifications. Default is still 1d caching.
- While getting swagger spec (meta or any version),
EsiApp will make sure to deal correctly with caching (headers Expires and Etag) by doing a HEAD request before (due to how App object works).
- Add a
datasource argument on initialization, to be able to get swagger spec for specific datasource (tranquility by default, or singularity)
Thanks
- @SpeedProg (#38, #39)
- @ArchEcho (#36)
- @blitzmann (#34)