Releases: civisanalytics/civis-python
Releases · civisanalytics/civis-python
v2.8.1
v2.8.0
Added
- Added type annotations to public functions and classes. (#529)
- Enabled static type checks with
mypyon CI builds. (#529) - File-related
civis.io.*functions that accept a path can now take either a string
or a path-like object as the input. (#529) - A
PaginatedResponseobject now has thejson()method. (#529) - Added support for Python 3.14. (#528)
- Added API endpoint method and path URL in the error message of a
CivisAPIErrorexception. (#528)
Changed
- Updated
civis.utils.run_templateto accept kwargs. (#526) - Updated retries for Civis API calls under
civis.APIClient
to wait at least theRetry-Afterduration from the response header,
instead of potentially less than that. (#525)
Deprecated
- Deprecated the JSONValue parameter of
civis.utils.run_template. (#526) - Some of the
list*methods from various Civis API endpoints should have been named
get*, because they return a singletoncivis.Responseobject, as opposed to an array
of such objects. Theselist*methods are now deprecated. The corresponding
equivalentget*methods are available and should be preferred. The following
is the full list of theselist*methods and their preferredget*counterparts (#530):client.clusters.list_kubernetes_instance_configs_historical_graphs->client.clusters.get_kubernetes_instance_configs_historical_graphsclient.clusters.list_kubernetes_instance_configs_historical_metrics->client.clusters.get_kubernetes_instance_configs_historical_metricsclient.databases.list_advanced_settings->client.databases.get_advanced_settingsclient.endpoints.list->client.endpoints.getclient.git_repos.list_refs->client.git_repos.get_refsclient.groups.list_child_groups->client.groups.get_child_groupsclient.models.list_schedules->client.models.get_schedulesclient.notebooks.list_update_links->client.notebooks.get_update_linksclient.notebooks.list_git->client.notebooks.get_gitclient.notifications.list->client.notifications.getclient.predictions.list_schedules->client.predictions.get_schedulesclient.reports.list_git->client.reports.get_gitclient.scripts.list_sql_git->client.scripts.get_sql_gitclient.scripts.list_javascript_git->client.scripts.get_javascript_gitclient.scripts.list_python3_git->client.scripts.get_python3_gitclient.scripts.list_r_git->client.scripts.get_r_gitclient.usage.list_llm_organization_summary->client.usage.get_llm_organization_summaryclient.users.list_me->client.users.get_meclient.workflows.list_git->client.workflows.get_git
Removed
- Dropped support for Python 3.10. (#528)
Fixed
- Fixed
civis.utils.run_templatefor the return value whenreturn_as="JSONValue". (#529) - Fixed retries for Civis API calls under
civis.APIClient
that would lead to a recursion error. (#525) - Updated documentation for the
preview_rowsargument ofcivis.io.query_civisto
have the correct maximum of 1000. (#523)
v2.7.1
v2.7.0
v2.6.0
Added
- Added the keyword argument
clienttocivis.utils.job_logs(). (#518) - Implemented
ListResponseas a list ofcivis.Responseobjects that has "headers"
information from a Civis API call. (#518) - The
civis.io.*functions for dataframes support polars in addition to pandas. (#515)- For
civis.io.read_civis_sqlandcivis.io.read_civis:
The new kwargreturn_ashas been added. It defaults to"list"to maintain
the same return behavior as civis-python <= v2.5.0.
To return a dataframe, setreturn_asto either"pandas"or"polars". - For
civis.io.dataframe_to_fileandcivis.io.dataframe_to_civis:
Either a pandas or polars dataframe can now be directly used as input. - For
civis.io.file_to_dataframe:
The new kwargreturn_ashas been added. It defaults to"pandas"to maintain
the same return behavior as civis-python <= v2.5.0.
To return a polars dataframe, setreturn_asto"polars".
- For
- Added examples to
civis.utils.job_logs()docstring (#510)
Changed
- Updated Civis parallel backend's internals for refactored joblib's backend. (#513)
- Updated the Sphinx docs for
ListResponseand the Civis API. (#519)
Deprecated
- The kwarg
use_pandasatcivis.io.read_civis_sqlandcivis.io.read_civis
has been deprecated and will be removed at civis-python v3.0.0 (no release timeline yet).
Its continued usage is discouraged, and please use the new kwargreturn_asinstead
(see notes under the "added" section above). - The property
feature_flagsat acivis.APIClientinstance is now deprecated.
client.users.list_me()["feature_flags"]should be used instead. (#516)
Fixed
- Switched from a pool to the concurrent.futures API in the file multipart upload
implementation. (#520) - Fixed
civis_loggerfor needing a user-provided__name__as best practice. (#512)
Security
- Updated
docs/requirements.txtdue to a security advisory for jinja2. See GHSA-cpwx-vrp4-4pq7 (#510)
v2.5.0
v2.4.3
v2.4.2
Changed
- Refactored
docs/since thedocs/source/subdirectory is no longer needed. (#506)
Fixed
- Fixed the tool for checking if the upstream Civis API spec has changed. (#505)
Security
- In docs build, bumped the transitive dependency
jinja2's version from 3.1.4 to 3.1.5,
due to CVE-2024-56326. (#506)
v2.4.1
v2.4.0
Added
- The new kwarg
retrieshas been added tocivis.APIClientso that
atenacity.Retryinginstance 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, andcivis.io.json_to_file)
accept a newdescriptionkeyword argument for the newdescriptionattribute
of Civis file objects. (#498, #500) Responseobjects are now fully typed through the attribute syntax. (#501)- Both
ResponseandPaginatedResponseare now directly available under thecivisnamespace. (#501) - Added support for Python 3.13. (#501)
- Added the new property
default_database_credential_idatcivis.APIClient,
which is going to replace the existingdefault_credential. (#502)
Changed
- When a
PaginatedResponseobject is returned from an API call,
a user-specifiedlimitkwarg is now honored to facilitate speeding up the pagination. (#501)
Deprecated
- The method
get_database_credential_idatcivis.APIClienthas been deprecated
and will be removed at civis-python v3.0.0. There's no replacement for this method. (#502) - The property
default_credentialatcivis.APIClienthas been deprecated
and will be removed at civis-python v3.0.0,
in favor of the new propertydefault_database_credential_id. (#502)
Removed
- Dropped support for Python 3.9. (#499)
Fixed
- The repr form of
Responseobjects is now the dict-basedResponse({‘spam’: 123})
instead of the dataclass-basedResponse(spam=123), since response object keys can
be invalid Python identifiers. (#501) - In
Responseobject 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
Responseobject instantiation, an API response that represents a JSONValue object
now has itsvalueattribute unmodified as the Python object representation
of the deserialized JSON form (as opposed to being converted to aResponse-based form). (#501)