Skip to content

v2.4.0

Choose a tag to compare

@jacksonlee-civis jacksonlee-civis released this 11 Nov 21:55
· 26 commits to main since this release
24be84d

Added

  • The new kwarg retries has been added to civis.APIClient so that
    a tenacity.Retrying instance can be provided to customize retries. (#495)
  • Added civis.workflows.validate_workflow_yaml
    to validate a Civis Platform workflow YAML definition. (#497, #499)
  • The helper I/O functions that create a Civis file
    (i.e., civis.io.file_to_civis, civis.io.dataframe_to_file, and civis.io.json_to_file)
    accept a new description keyword argument for the new description attribute
    of Civis file objects. (#498, #500)
  • Response objects are now fully typed through the attribute syntax. (#501)
  • Both Response and PaginatedResponse are now directly available under the civis namespace. (#501)
  • Added support for Python 3.13. (#501)
  • Added the new property default_database_credential_id at civis.APIClient,
    which is going to replace the existing default_credential. (#502)

Changed

  • When a PaginatedResponse object is returned from an API call,
    a user-specified limit kwarg is now honored to facilitate speeding up the pagination. (#501)

Deprecated

  • The method get_database_credential_id at civis.APIClient has been deprecated
    and will be removed at civis-python v3.0.0. There's no replacement for this method. (#502)
  • The property default_credential at civis.APIClient has been deprecated
    and will be removed at civis-python v3.0.0,
    in favor of the new property default_database_credential_id. (#502)

Removed

  • Dropped support for Python 3.9. (#499)

Fixed

  • The repr form of Response objects is now the dict-based Response({‘spam’: 123})
    instead of the dataclass-based Response(spam=123), since response object keys can
    be invalid Python identifiers. (#501)
  • In Response object instantiation, object keys that originate from environment variables
    are now preserved for their (customarily upper-) case even in the default snake-case setting. (#501)
  • In Response object instantiation, an API response that represents a JSONValue object
    now has its value attribute unmodified as the Python object representation
    of the deserialized JSON form (as opposed to being converted to a Response-based form). (#501)