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)