Skip to content

v2.0.0

Choose a tag to compare

@jacksonlee-civis jacksonlee-civis released this 21 May 13:24
· 44 commits to main since this release
62b26ea

Breaking Changes from v1.x.x to v2.0.0

(Changes documented in this section are not repeated in the following sections.)

  • A civis.response.Response object is no longer mutable.
    More concretely, both the "setitem" (e.g., response["foo"] = "bar")
    and "setattr" (e.g., response.foo = "bar") operations
    would now raise an CivisImmutableResponseError exception. (#463)
  • Instantiating a civis.response.Response object no longer
    accepts the boolean snake_case keyword argument;
    snake-case keys at a Response object are now always available (and preferred). (#463)
  • Parameters for various classes/functions that have long been deprecated are removed:
    api_key, resources, retry_total, archive, headers.
    Also dropped the deprecated methods in ServiceClient. (#472)
  • The return_type parameter of a civis.response.Response object
    no longer has the "pandas" option. (#473)
  • When civis.find uses kwargs as filters, boolean values are now treated in the same
    way as other data types for value equality comparison, rather than the presence or
    absence of the key in question. (#474)
  • To access the API endpoints "MatchTargets" and "RemoteHosts" via client = civis.APIClient(),
    client.matchtargets and client.remotehosts are no longer available.
    Only the names with underscores, i.e., client.match_targets and client.remote_hosts,
    can be used instead. (#479)

Added

  • Added error handling of file_id with type string passed to civis.io.civis_file_to_table. (#454)
  • Added support for Python 3.10, 3.11, and 3.12 (#462, #475)
  • A FutureWarning is now raised when a deprecated Civis API endpoint method is called. (#477)
  • Added civis_logger for logging in Civis Platform scripts. (#478)
  • Added the stub file client.pyi to surface the API endpoints and their type annotations
    at a civis.APIClient instance to IDEs. (#479)
  • Added the job_url property to CivisFuture objects. (#482)
  • Added .readthedocs.yaml to configure the ReadTheDocs build. (#483)

Changed

  • Updated references from 'master' to 'main' (#460)
  • Clarified the usage example for civis.io.civis_to_multifile_csv. Updated
    CircleCI config so dev-requirements is only used when needed. (#452)
  • Removed unneeded time.sleep calls and pytest.mark calls and mocked time.sleep calls to optimize tests. (#453)
  • Refactored tests to remove dependency on the vcr library. (#456)
  • Fixed typo in "Testing Your Code" example of the User Guide (#458)
  • Adding try-except to catch JSONDecodeErrors in CivisAPIError (#459)
  • civis.io.file_id_from_run_output now works for all job types (#461)
  • A nested civis.response.Response object now supports both snake-case and camel-case
    for key access. Previously, only the non-Pythonic camel-case keys were available. (#463)
  • Pinned the dependency joblib at < 1.3.0, since joblib >= 1.3.0 is incompatible
    with the current civis-python codebase. (#469)
  • Changed civis.io.civis_file_to_table to not rely on table IDs for determining a table's existence (#470)
  • Broke out the "API Resources" documentation page into individual endpoint pages (#471)
  • Switched to pyproject.toml for packaging. (#475)
  • CI builds for Windows switched from AppVeyor to CircleCI. (#480)
  • Applied the black code formatter to the codebase. (#481)

Removed

  • Dropped support for Python 3.7 and 3.8 (#462, #475)

Security

  • Added the pip-audit check to CI
    for potential security vulnerabilities of Python dependencies. (#476, #485)