Skip to content

Commit cae6762

Browse files
chore(master): release cognite-sdk-python 8.0.6 (#2482)
Co-authored-by: Håkon V. Treider <haakonvt@gmail.com>
1 parent aeb023d commit cae6762

5 files changed

Lines changed: 137 additions & 10 deletions

File tree

.github/workflows/release-please.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
name: release-please
22

3-
# Disabled: master is dormant pending v8 merge. Re-enable when v8 lands on master.
4-
# Previously triggered on push to master; moved to pysdk-release-v7 for ongoing v7 maintenance.
53
on:
6-
workflow_dispatch:
4+
push:
5+
branches:
6+
- master
77

88
jobs:
99
release:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: google-github-actions/release-please-action@e4dc86ba9405554aeba3c6bb2d169500e7d3b4ee # v4
12+
- uses: googleapis/release-please-action@v4
1313
with:
1414
token: ${{ secrets.RELEASE_PLEASE_GITHUB_TOKEN }}
1515
config-file: release-please-config.json

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "7.92.0"
2+
".": "8.0.6"
33
}

CHANGELOG.md

Lines changed: 130 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,136 @@ As of 2025-08-29, changes are grouped as follows
1313
- 🐛 Bug Fixes: Bug fixes.
1414
- ⚡ Improvements: Transparent changes, e.g. better performance.
1515

16+
## [8.0.6] - 2026-04-08
17+
### Fixed
18+
- Filters are hashable again (regression introduced in 8.0.0). Be aware that they compare and hash based on identity (as before).
19+
20+
## [8.0.5] - 2026-03-30
21+
### Fixed
22+
- Handle invalid geo locations better on Assets and Files.
23+
24+
## [8.0.4] - 2026-03-29
25+
### Added
26+
- Public `load_if` method on data classes to conditionally load data from dictionaries.
27+
- Improved `load` methods for `DataModelingId`, `VersionedDataModelingId` and `InstanceId`.
28+
29+
## [8.0.3] - 2026-03-28
30+
### Added
31+
- Client conversion methods to switch between sync and async clients: `AsyncCogniteClient.as_sync()` and `CogniteClient.as_async()`.
32+
33+
### Fixed
34+
- Task ordering bug in `execute_async_tasks_with_fail_fast` when all tasks succeed (e.g., retrieve).
35+
36+
## [8.0.2] - 2026-03-27
37+
### Fixed
38+
- Compatibility with older Pyodide versions through targeted patching.
39+
40+
## [8.0.1] - 2026-03-26
41+
### Fixed
42+
- Issue when using Streamlit (running with Pyodide).
43+
44+
## [8.0.0] - 2026-03-25
45+
### Dependency
46+
- **httpx**: The SDK now uses `httpx` instead of `requests` for HTTP operations. This is a new required dependency that enables the new async interface.
47+
48+
### Added
49+
- **Async Support**: The SDK now provides full async support. The main client is now `AsyncCogniteClient`, but the synchronous `CogniteClient` is still available for backward compatibility. An important implementation detail is that it just wraps `AsyncCogniteClient`.
50+
- All helper/utility methods on data classes now have an async variant. A few examples: Class `Asset` has `children` and now also `children_async`, `subtree` and `subtree_async`, class `Function` now has `call` and `call_async`, class `TimeSeries` now has `latest` and `latest_async` etc.
51+
- Instantiating a client has gotten a tiny bit simpler, by allowing either `cluster` or `base_url` to be passed. When passing cluster, it is expected to be on the form 'https://{cluster}.cognitedata.com'
52+
- The context manager `FileMultipartUploadSession`, returned by a call to one of the Files API methods `multipart_upload_content` or `multipart_upload_content_session`, now also supports async; you can enter with `async with`, and upload parts using `await upload_part_async`.
53+
- The SDK now ships with a new mock for the async client, namely `AsyncCogniteClientMock`. Both it and the previous `CogniteClientMock` are greatly improved and provide better type safety, checking of call signatures and spec_set=True is now enforced for all APIs (even the mocked client itself), through the use of `create_autospec` and bottom-up construction of nested APIs.
54+
- With the move to an async client, concurrency now works in Pyodide e.g. Jupyter-Lite in the browser. This also means that user interfaces like Streamlit won't freeze while resources from CDF are being fetched!
55+
- File upload speeds are now significantly faster on Windows after `requests` is gone!
56+
- Datapoints API method `retrieve_dataframe` and all `to_pandas` methods on datapoints-container-like objects now accept a new parameter: `include_unit` (`bool`). Time series using physical units via `unit_external_id`, will end up as part of the pandas DataFrame columns (like aggregate info).
57+
58+
### Removed
59+
- The generic `aggregate` method on classic CDF APIs has been removed (Assets, Events, Sequences and Time Series). Use one of the more specific `aggregate_count`, `aggregate_unique_values`, `aggregate_cardinality_values`, `aggregate_cardinality_properties`, or `aggregate_unique_properties` instead.
60+
- The generic `aggregate` method on the Data Sets API and Files API has been replaced with `aggregate_count`.
61+
- The aggregation data class `CountAggregate` has been removed. Methods now return the count (`int`) directly.
62+
- The generic `filter` method on classic CDF APIs has been removed (Assets, Events, Sequences and Time Series). Use the normal `list` method instead and pass filters as `advanced_filters=...` instead.
63+
- The method `trigger` on the Workflow Executions API has been removed. Use `run` instead.
64+
- The method `create` on the Workflow Triggers API has been removed. Use `upsert` instead.
65+
- The method `get_triggers` on the Workflow Triggers API has been removed. Use `list` instead.
66+
- The method `get_trigger_run_history` on the Workflow Triggers API has been removed. Use `list_runs` instead.
67+
- Data class `WorkflowTriggerCreate` has been removed. Use `WorkflowTriggerUpsert`.
68+
- The method `as_primitive` method on the identifier data class `WorkflowVersionId` has been removed. Use `as_tuple` instead.
69+
- The methods `insert`, `retrieve`, `retrieve_last_row` and `retrieve_dataframe` on the Sequence Data API no longer support the parameter `column_external_ids`. Use `columns` instead.
70+
- The `__iter__` method has been removed from all APIs. Use `__call__` instead: `for ts in client.time_series()`. This makes it seamless to pass one or more parameters.
71+
- The helper methods on `client.iam`, `compare_capabilities` and `verify_capabilities` no longer support the `ignore_allscope_meaning` parameter.
72+
- The Templates API has been completely removed from the SDK (the API service has already been shut off).
73+
- The separate beta `CogniteClient` has been removed. Note: APIs currently in alpha/beta are (already) implemented directly on the main client and throw warnings on use.
74+
- **Data Modeling**: System-managed, read-only properties for `CogniteFile` in `../cdm/v1.py`, `is_uploaded` and `uploaded_time`, have been removed from the `CogniteFileApply` class.
75+
- **Data Modeling**: The write class for classic time series, `TimeSeriesWrite` no longer has the field `instance_id`. All time series with instance ID must be created through the Data Modeling API, so this was confusing.
76+
- **Data Modeling**: The write class for classic file, `FileMetadataWrite` no longer has the field `instance_id`. All files with instance ID must be created through the Data Modeling API, so this was confusing.
77+
- **Data Modeling**: The method `load_yaml` on the data class `Query` has been removed. Use `load` instead.
78+
- **Datapoints**: Datapoints API method `retrieve_dataframe_in_tz` has been removed. Use `retrieve`, `retrieve_arrays` or `retrieve_dataframe` and specify `timezone` instead.
79+
- **Datapoints**: All references to `legacy_name` on time series data classes and API have been removed.
80+
- **Datapoints**: Data class `DataPointSubscriptionCreate` has been removed. Use `DataPointSubscriptionWrite`.
81+
- **Datapoints**: The `error` attribute has been removed from the `Datapoints` class (moved to `SyntheticDatapoints`).
82+
- **Datapoints**: Removed `include_errors` parameter from `Datapoints.to_pandas()`. This parameter only applies to `SyntheticDatapoints.to_pandas()`.
83+
- **Datapoints**: Iterating through a `DatapointsArray` is no longer supported. Access the numpy arrays directly and use vectorised operations instead.
84+
- **Datapoints**: Extending a `Datapoints` instance is no longer supported.
85+
- **Datapoints**: Passing `column_names` to the Datapoints API method `retrieve_dataframe` or to `to_pandas` on any datapoints-container-like instance is no longer supported. The resolving is now dynamic with the precedence order: instance ID, then external ID and lastly (internal) ID.
86+
- **Datapoints**: When using the Datapoints API to request datapoints, passing dictionaries with individual settings is no longer supported. Pass raw identifiers (`str`, `int`, `NodeId`) or `DatapointsQuery`.
87+
88+
### Changed
89+
- Attributes on all "read" data classes now have the correct type (typically no longer `Optional[...]`), meaning type inference will be correct. If you try to instantiate these classes directly (*you shouldn't* - use the write versions instead!), you will see that all required parameters in the API response will also be required on the object.
90+
- All (HTTP) responses from the SDK (returned by e.g. `client.post` or `client.get`) are now of type `CogniteHTTPResponse` (from `cognite.client.response`) instead of the specific type from the underlying http library to support future http-client changes.
91+
- Parameter `partitions` has been removed from all `__call__` methods except for the Raw Rows API (which has special handling for it). It was previously being ignored with the added side effect of ignoring `chunk_size` stemming from a very early API design oversight.
92+
- The method `retrieve` on the Workflow Versions API no longer accepts `workflow_external_id` and `version` as separate arguments. Pass a single or a sequence of `WorkflowVersionId` (tuples also accepted).
93+
- When loading a `ViewProperty` or `ViewPropertyApply`, the resource dictionary must contain the `"connectionType"` key or an error is raised.
94+
- The specific exceptions `CogniteDuplicatedError` and `CogniteNotFoundError` should now always be used when appropriate (previously certain API endpoints always used `CogniteAPIError`).
95+
- `ModelFailedException` has changed name to `CogniteModelFailedError`.
96+
- For `class Transformation`, which used to have an async `run` method, this is now named `run_async` to unify the overall interface. The same applies to the `cancel` and `jobs` methods for the same class, and `update` and `wait` on `TransformationJob`.
97+
- **ClientConfig**: `max_workers` has functionally been removed (just throws a warning). Concurrency is now controlled via `global_config.concurrency_settings`. See the [Settings documentation](https://cognite-sdk-python.readthedocs-hosted.com/en/v8/settings.html#concurrency-settings) for details.
98+
- **ClientConfig**: `timeout` default has been increased from 30 sec to 60 sec.
99+
- **global_config**: New setting `follow_redirects` that controls whether or not to follow redirects. Defaults to `False`.
100+
- **global_config**: New setting `file_download_chunk_size` that allows you to override the chunk size for streaming file downloads. Defaults to `None` (auto).
101+
- **global_config**: New setting `file_upload_chunk_size` that allows you to override the chunk size for streaming file uploads.
102+
- **global_config**: New setting `event_loop`, allowing you to override the default event loop used by the SDK.
103+
- **global_config**: `proxies` have been replaced by `proxy` and follow httpx directly. See: [Proxies - HTTPX](https://www.python-httpx.org/advanced/proxies/)
104+
- **global_config**: `max_retry_backoff` default has been increased from 30 sec to 60 sec.
105+
- **global_config**: `max_connection_pool_size` default has been reduced from 50 to 20.
106+
- **Data Modeling**: The default value for the `operator` parameter in the `InstancesAPI.search` method has been changed to `AND` (which previously defaulted to 'OR' behavior). This change provides more precise search results by default, requiring all search terms to be present. If you need the previous behavior of matching any search term, explicitly pass `operator='OR'`.
107+
- **Data Modeling**: All typed instance apply classes, e.g. `CogniteAssetApply` from `cognite.client.data_classes.data_modeling.cdm.v1` (or `extractor_extensions.v1`) now work with patch updates (using `replace=False`). Previously, all unset fields would be dumped as `None` and thus cleared/nulled in the backend database. Now, any unset fields are not dumped and will not clear an existing value (unless used with `replace=True`).
108+
- **Data Modeling**: For users of the Data Modeling API method `sync`, the data classes have been split from those used in `query`. They can be recognized by simply appending `Sync` to the end, e.g. `Query` and `QuerySync`. Examples: `QuerySync`, `SelectSync`, `NodeResultSetExpressionSync` and `EdgeResultSetExpressionSync`.
109+
- **Data Modeling**: When using `to_pandas` on a list of Data Modeling instances, the properties will be expanded by default (to separate columns). To get the old behaviour, pass `expand_properties=False`.
110+
- **Data Modeling**: When using `to_pandas` on a list of Data Modeling instances, parameters `expand_metadata` and `metadata_prefix` are no longer silently ignored and will raise as unrecognized.
111+
- **Data Modeling**: When using `get` on a list of Data Modeling instances, the parameter `id` has been removed. Use `instance_id` (or `external_id` when there is no ambiguity on space).
112+
- **Datapoints**: When using the Datapoints API to ingest datapoints through `insert_dataframe`, the parameters `external_id_headers` and `instance_id_headers` have been removed. The new logic infers the kind of identifier from the type of the column: an integer is an ID, a string is an external ID and a NodeId (or 2-tuple of space and ext.id) is an instance ID.
113+
- **Datapoints**: The `.columns` of the returned pandas DataFrame from both Datapoints API method `retrieve_dataframe` and all `to_pandas` methods on datapoints-container-like objects are now pandas `MultiIndex`, where each level corresponds to the: time series identifiers (always present), then the possible aggregate-, granularity-, status code- and unit information. Any level with no information is automatically dropped.
114+
- **Datapoints**: When using the Datapoints API to ingest datapoints, empty containers no longer raise `ValueError`, but short-circuit.
115+
- **Datapoints**: The `Datapoints` class was previously (mis)used for several different API endpoints with different response structures. Dedicated classes have been introduced:
116+
- **retrieve_latest**: Now returns `LatestDatapoint` or `LatestDatapointList` instead of `Datapoints` or `DatapointsList`. `LatestDatapoint` has scalar values: `timestamp` is `datetime` (not `list[int]`), `value` is `float | str` (not a list). Use `has_datapoint` property to check if a datapoint was returned (or just `if dp: ...`).
117+
- **TimeSeries.latest()**: Now returns `LatestDatapoint` instead of `Datapoint | None`.
118+
- **Synthetic datapoints queries**: Now return `SyntheticDatapoints` or `SyntheticDatapointsList` instead of `Datapoints` or `DatapointsList`. The `error` field only exists on `SyntheticDatapoints` (where it belongs). Use `to_pandas(include_errors=True)` on `SyntheticDatapoints` to include the error column.
119+
- **Datapoint subscriptions**: `DatapointsUpdate.upserts` is now `SubscriptionDatapoints` instead of `Datapoints`.
120+
- **Datapoints**: `Datapoints` and `DatapointsArray` now require `id` and `is_step`, `is_string` and `type`.
121+
122+
### Deprecated
123+
- Accessing the Sequence Data API through the Sequence API should use `.data` instead of `.rows`. This may raise in a future version.
124+
125+
### Features
126+
127+
* Add deprecation warning for Vision API ([#2469](https://github.com/cognitedata/cognite-sdk-python/issues/2469)) ([ea1b662](https://github.com/cognitedata/cognite-sdk-python/commit/ea1b662b1d252381dfc99d8737539e9119f91f11))
128+
* **signals:** Add support for subscribeSignals ACL ([#2500](https://github.com/cognitedata/cognite-sdk-python/issues/2500)) ([3b7d0e8](https://github.com/cognitedata/cognite-sdk-python/commit/3b7d0e84d514811fd82bdc061bd719b788152c0cb))
129+
130+
131+
### Bug Fixes
132+
133+
* add last_called to TIME_ATTRIBUTES for datetime rendering ([#2487](https://github.com/cognitedata/cognite-sdk-python/issues/2487)) ([8afd420](https://github.com/cognitedata/cognite-sdk-python/commit/8afd420272a71b14e0f70442fdb18b9addc78e0a))
134+
* avoid flaky workflow execution list test by comparing IDs ([#2488](https://github.com/cognitedata/cognite-sdk-python/issues/2488)) ([8fb5f58](https://github.com/cognitedata/cognite-sdk-python/commit/8fb5f588c99662a734757ef9b8a82fd57c929897))
135+
* handle invalid geo locations better ([#2529](https://github.com/cognitedata/cognite-sdk-python/issues/2529)) ([581086e](https://github.com/cognitedata/cognite-sdk-python/commit/581086ea44d6de6c1aaeef211fdbf70e973f318d))
136+
137+
138+
139+
### Documentation
140+
141+
* add tool confirmation flow example to agents chat() ([#2543](https://github.com/cognitedata/cognite-sdk-python/issues/2543)) ([b76c56b](https://github.com/cognitedata/cognite-sdk-python/commit/b76c56b62bfa34e3c49a35cfa0f07d0b8a6cf24c))
142+
* Fix sqlite syncing example ([#2463](https://github.com/cognitedata/cognite-sdk-python/issues/2463)) ([08da799](https://github.com/cognitedata/cognite-sdk-python/commit/08da7993d39e64be26f79fba41bc3d8b04472680))
143+
* reorder top-level doc sections, separate DM from legacy (DM-3572) ([#2481](https://github.com/cognitedata/cognite-sdk-python/issues/2481)) ([3db85d7](https://github.com/cognitedata/cognite-sdk-python/commit/3db85d76917137d12fb30bcf99efb16ae2de5575))
144+
145+
16146
## [7.92.0](https://github.com/cognitedata/cognite-sdk-python/compare/cognite-sdk-python-v7.91.2...cognite-sdk-python-v7.92.0) (2026-02-18)
17147

18148

@@ -180,9 +310,6 @@ As of 2025-08-29, changes are grouped as follows
180310
## [7.83.0] - 2025-08-28
181311
### Added
182312
- Add `timezone` as an optional param to the WorkflowScheduledTriggerRule.
183-
184-
## [Unreleased]
185-
### Added
186313
- [alpha] Support for `created_time` and `simulation_time` filters in `client.simulators.runs.list()` to filter simulation runs by timestamp ranges.
187314
- Added `get_quantities()` and `get_units()` methods to the `Simulator` class for easier access to simulator unit quantities and their units.
188315

cognite/client/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from __future__ import annotations
22

3-
__version__ = "8.0.5" # x-release-please-version
3+
__version__ = "8.0.6" # x-release-please-version
44

55
__api_subversion__ = "20230101"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "cognite-sdk"
3-
version = "8.0.5"
3+
version = "8.0.6"
44

55
description = "Cognite Python SDK"
66
readme = "README.md"

0 commit comments

Comments
 (0)