GuidesChangelogTypeScript API ReferencePython v2 API Reference
Changelog

Changelog

HERE SDK for Python V2

Version

Change

Description

2.33.0

FIXED

Fixed an issue where multi-part uploads using aiohttp ignored environment proxy settings.

2.33.0

FIXED

Added retry handling for ChunkedEncodingError in standard (non-streaming) requests, preventing immediate failures and improving resilience to transient network issues.

2.33.0

FIXED

Added retry logic for multi-part partition blob uploads in the Python SDK, preventing failures on transient errors (e.g., HTTP 429) and improving reliability.

2.32.0

ADDED

Added support for http streaming with retries and respecting "next"
field for the response when listing partitions or changes
from the Metadata API. This will catch errors when iterating over the
chunks and retry with a Range header to start where it left off. This
improves both the existing use case of downloading blobs with streaming
mode, which bypasses the typical retry behavior for the initial request,
as well as for streaming extremely large partition lists that can extend
for many minutes or even hours.

2.32.0

ADDED

Added support for python 3.13 and 3.14 in the SDK packages.

2.32.0

CHANGED

Added support for HMC v2.3 which adds support for topology-attributes layer
and removes support for all other *-attributes layers.

2.32.0

DEPRECATED

Deprecation notice for support of keplergl in here-inspector. It will be removed in June 2026 release.

2.30.0

REMOVED

Remove HEREMapInspector in favor of IpyleafletInspector.

2.30.0

ADDED

Added TopologyAttributes class to handle HMC topology-attributes layer.

2.30.0

DEPRECATED

Deprecated RoadAttributes, NavigationAttributes and AdvancedNavigationAttributes classes.
Please use TopologyAttributes class instead.

Please also note, that some examples in the developer guide (chapter HMC) are deprecated.
For these deprecated examples there are new examples using TopologyAttributes for equal functionality.

2.29.1

DEPRECATED

Deprecate HEREMapInspector in favor of IpyleafletInspector.

2.29.1

CHANGED

Changed the behavior of ranges.

If a start and/or end offset is null from the source data
the behavior until now was that the Range class was initialized
with default values Range(start=0.0, end=1.0). This leads to
some misinterpretations as these float values could be actual values
from the source data whereas null would be need to be interpreted
differently. E.g. for manoeuvres the would be no distiction between
no manoeuvre and a u-turn.

Now, the bahavior of Range is changed in a way that it is
initialized with None to reflect a null value in the source
data. E.g. if in the source data start_offset is null and
end_offset is 0.85 then the result will be
Range(start=None, end=0.85).

2.29.1

CHANGED

Changed the behavior of street index.

If a street section has a street index which is null in the source data
it means that this street section has no name.

Behavior until now was that in case of street_index = null the
HMC StreetSection.street_index was set to default 0. But this index 0
points actually to the first element of streets name array.

Now the behavior is changed that in case of null the default value None
is set, so that the street index points to nothing.

2.29.1

REMOVED

We removed the support for conda packages.
Please use pip packages instead.

2.28.0

DEPRECATED

Deprecate HEREMapInspector in favor of IpyleafletInspector.

2.28.0

DEPRECATED

Deprecation notice: In 2.29.0 release, conda support will be removed.

2.28.0

KNOWN ISSUE

Conda package for version 2.28.0 will not be released due to a dependency conflict with an imported package.

2.27.2

FIXED

Config files for here_platform are fixed

2.27.1

FIXED

Config files for here_platform are fixed

2.27.0

ADDED

Added support for Python 3.11 & 3.12

2.27.0

REMOVED

Removed support for Python 3.8 and 3.9

2.27.0

FIXED

Version_dependencies issue resolved when writing data to the layer

2.27.0

CHANGED

Migrated functions using obsolete HMC layers to use 'places' layer.

2.26.0

CHANGED

Migrated Apache Kafka connector from kafka-python to kafka-python-ng package.

2.26.0

ADDED

Added supported Python version and added a suggestion to use Python 3.10.

2.26.0

FIXED

Dev guide has been updated to include new HMC2 examples, and deprecated HMC examples have been removed.

2.26.0

FIXED

ObjectStoreLayer is_directory() check is fixed.

2.25.0

REMOVED

HERE stopped offering HERE platform in China. Therefore, the support of HERE
platform in China was removed from HERE Data SDK for Python V2.

2.25.0

DEPRECATED

Python 3.8 and 3.9 getting outdated this and next year, thus won't get
security updates anymore; see https://devguide.python.org/versions/.
Therefore, we need to remove support for these versions from
HERE Data SDK for Python V2 in the mid-term.

The support of Python 3.8 and 3.9 by HERE Data SDK for Python V2 is deprecated.
We will remove that support with Q3/24 release in September 2024.

2.24.0

REMOVED

Removed support for deprecated HMC version 1.
Please use here.content.hmc2 package instead.

2.24.0

REMOVED

Removed MLflow plugin which was used for storing MLflow data in
HERE platform catalogs.

2.23.1

FIXED

Moves dependencies from global to the individual package scope.

2.23.1

ADDED

Support for Object Store API to the local DataService.

2.22.0

CHANGED

Downloading of partition data now supports streaming. This applies to read_partitions(),
read_object(), read_stream(), get_blob(), and get_data() functions, which now take two
additional optional arguments:

* stream: set to True to stream data. This implies decode=False where applicable as streamed
data cannot be decoded.
* chunk_size: the size of each chunk to download. This will default to a value that balances
memory usage and download throughput.

Streamed data is returned as the type Iterator[bytes], where each iteration will request the next
chunk of data.

Example to stream partitions to file:

partitions = versioned_layer.read_partitions(partition_ids=[19377307, 19377333], stream=True)
for partition, data_iter in partitions:
with open(f'{partition.id}.pb', 'wb') as f:
for data in data_iter:
f.write(data)

2.21.0

CHANGED

Please note that the HERE SDK for Python will be released on a bimonthly cadence. The next release release will be end of July.

2.21.0

FIXED

Datastream api subscribe http request payload changes, fix the Request Body dict structure with proper key 'kafkaConsumerProperties' and related values.

2.21.0

DEPRECATED

The MLflow plugin is deprecated. It will be removed from HERE offering after November 2023.

2.20.0

DEPRECATED

Please stop using any class of here.content.hmc package of the here-content module.

Please use equivalent classes of here.content.hmc2.
Please find the notebook with examples how to use hmc2 at https://developer.here.com/documentation/sdk-python-v2/dev_guide/topics/usage/hmc.html.

2.19.0

ADDED

Support for Artifact API Service.

The artifact service provides a way to store/consume schemas and artifacts.
You can perform the following operations:

Schema operations

* GET schemas from HERE platform
* GET individual Schema details
* UPDATE Schema permissions
* GET Schema Documentation information
* DELETE Schema

Artifact Operations
* GET artifacts from HERE platform
* GET individual artifact details
* UPDATE artifact permissions
* GET artifact file details
* DELETE artifact

2.18.0

ADDED

HMC Bindings for new layer here-truck-service-locations added.
The Truck Service Locations layer is a HERE Premium layer that publishes "trucking" related Places categories like truck parking, petrol stations, rest areas etc and relevant attributes for these places such as availability of Diesel, Truck Wash, Pay at Pump, High Canopy etc.

from here.platform import Platform
from here.geopandas_adapter import GeoPandasAdapter
from here.content.hmc2 import HMC

platform = Platform()
hmc = HMC(platform, adapter=GeoPandasAdapter())
truck_service_locations = hmc.truck_service_locations

df = truck_service_locations.get("partition_id_from_layer", "attributes")
df.head(2)

2.18.0

ADDED

Added support for directly dealing with blobs.
From the specific Layer instance you can use the following new
functions depending on layer type:

VersionedLayer and VolatileLayer

* blob_exists
* get_blob
* put_blob

IndexLayer

* blob_exists
* get_blob
* put_blob
* delete_blob

StreamLayer

* blob_exists
* put_blob

###### Please note
> that neither ObjectstoreLayer nor InteractiveMapLayer support these functions because
> * ObjectstoreLayer uses another concept where each object is a blob itself
> * and InteractiveMapLayer user geojson feature instead of blobs.

2.18.0

ADDED

HMC Bindings for new layer here-places added.
This layer is a HERE Premium content layer of global, fresh, comprehensive and consolidated places for over 400 categories.
Place attributes include location, name, address, phone number and parent-child relations between places.

from here.platform import Platform
from here.geopandas_adapter import GeoPandasAdapter
from here.content.hmc2 import HMC

platform = Platform()
hmc = HMC(platform, adapter=GeoPandasAdapter())
here_places = hmc.here_places

df = here_places.get("partition_id_from_layer", "attributes")
df.head(2)

2.18.0

ADDED

HMC Bindings for new layer here-places-essential-map added.
Places for HERE Essential Map is a built-in layer that contains a sub-set of Places categories. It includes location, name, address, phone number and parent-child relations between places.

from here.platform import Platform
from here.geopandas_adapter import GeoPandasAdapter
from here.content.hmc2 import HMC

platform = Platform()
hmc = HMC(platform, adapter=GeoPandasAdapter())
here_places_essential_map = hmc.here_places_essential_map

df = here_places_essential_map.get("partition_id_from_layer", "attributes")
df.head(2)

2.18.0

ADDED

HMC Bindings for new layer adas-attributes added.

The ADAS Attributes layer is a HERE Premium Content layer that publishes the road characteristics such as road curvature, heading and elevation. Example applications enabled with the ADAS content are: adaptive cruise control, adaptive front light systems, eco-friendly routing, collision warning, powertrain control, fuel economy, speed advisory systems etc.

Documentation for reference:- HMC Bindings for ADAS layer

2.18.0

ADDED

HMC Bindings for new layer composite-road-attributes added.

Complex Road Attributes provides cartographic representations of simple features grouped into aggregated Complex Features for purposes of generalizing geometry. These features show multi-carriageways and motorway interchanges with ramps grouped to enable creation of a basic representation.

Documentation for reference:- HMC Bindings for Composite Road layer

2.18.0

ADDED

Support for the JSON schemas which can be associated with any layer with the
content-type application/json, application-geo+json or
application-vnd.geo+json has been added to the adapters in the PySDK.

Background:

As a user of the here-platform, you can create
layers to store data in json/geojson format. Such layers could also have a
custom json-schema associated with them. With this release, PySDK will support
json/geojson schema validation while
reading
(if decode=True) or
writing
(if encode=True) the data.

2.18.0

ADDED

Support for writing dataframes to protobuf layers.

2.18.0

REMOVED

The deprecate method
here.platform.schema.Schema.decode_and_parse_blob(self, data: bytes) has been
removed from the here-platform package.

Going forward, users should use
here.platform.schema.Schema.decode_blob(self, data: bytes) and parse the
result using google.protobuf.json_format.MessageToDict.

2.17.0

ADDED

Protobuf write functionality; user can write now to layers with protobuf content type

2.17.0

ADDED

Extended support to Kepler widget for map visualisation

2.17.0

CHANGED

here-inspector uses HERE map widget as default now; please set LS_API_KEY environment variable to your HERE platform API key

2.17.0

FIXED

Fixed Partition data_handle handling

2.16.0

ADDED

A new feature was added which allows you to subscribe to changes of an interactive map layer. For further reading please see the documentation

2.16.0

FIXED

Fixed service_api behaviour by removing trailing slash in base urls and only parse json

2.15.0

FIXED

Replaced pandas.append with pandas.concat

2.15.0

FIXED

PythonSDK works with multiple groups in credentials file

2.15.0

REMOVED

Support for PySDK for Python 3.7

2.14.0

ADDED

Map matching i.e map matcher and point matcher functionality by using MMaaS backend. For more details please see https://developer.here.com/documentation/sdk-python-v2/dev_guide/topics/usage/map_matcher.html.

2.14.0

ADDED

Raise exception if partition does not exist or it has no content

2.14.0

ADDED

schema property to LayerConfiguration

2.14.0

FIXED

StreamLayer inline limit default changed from None to default inline stream data limit

2.14.0

FIXED

New detailed schema exception message added

2.14.0

FIXED

Project scope fixed in credentials.properties

2.14.0

FIXED

Incomplete data returned from Partition.get_blob()

2.13.0

ADDED

schema property to LayerConfiguration

2.13.0

FIXED

Incomplete data returned from Partition.get_blob()

2.13.0

FIXED

Project scope in credentials.properties fixed

2.13.0

REMOVED

functions for manual handling of protobuf

2.12.1

ADDED

Enable configurable objectstore upload part size and multi-part upload test

2.12.1

FIXED

Fixed content encoding for objectstore read and write

2.12.0

ADDED

New and improved single layer and multi-layer HMC bindings support

2.12.0

ADDED

Function to get details of a specified version of a catalog

2.12.0

ADDED

Unique schema registry per Platform object

2.12.0

ADDED

part param is added to query Index layer by partId

2.12.0

FIXED

Exception is not raised when additional_fields parameters is None in DataMetadataApi

2.12.0

FIXED

No null pointer exception is thrown while using services

2.12.0

REMOVED

Deprecated offset and offset_partition functions

2.11.1

FIXED

get_services returns Service object for the given HRN

2.11.0

ADDED

Application configuration parameters in the dev guide

2.11.0

ADDED

Added compressedDataSize field to default response of get_partition_changes

2.11.0

FIXED

get_partitions_metadata of versioned layer return version

2.11.0

REMOVED

Removal of list_features function from layer

2.11.0

REMOVED

Removal of update_partitions_index function from layer

2.11.0

REMOVED

Removal of read_stream_data function from layer

2.10.0

ADDED

Functionality to find which version(s) of a catalog is compatible with other catalogs

2.10.0

ADDED

Improving credentials handling by adding support for 'scope'

2.10.0

ADDED

Support for Python 3.10

2.10.0

ADDED

Added mapping properties from the Config API response to the CatalogConfiguration and LayerConfiguration model

2.9.0

ADDED

Support for compressed_data_size in partition metadata for Versioned and Volatile layer

2.9.0

ADDED

since_version to VersionedLayer get_partitions_metadata

2.9.0

FIXED

Credentials.from_default() fails under Windows

2.9.0

FIXED

Partial additional fields evaluated

2.9.0

DEPRECATED

The parameter publication is deprecated for the function StreamLayer.write_stream. It is not needed anymore, therefore please remove it from your code.

2.9.0

DEPRECATION NOTICE

The support for Python 3.7 will be dropped after October'2022 release. Please use a newer version of Python. We support Python 3.8 and 3.9.

2.8.0

ADDED

Context manager support to Publication

2.8.0

ADDED

Context manager support for StreamSubscription

2.8.0

ADDED

Passing an existing subscription ID to a StreamLayer allowing it to be used across multiple runs

2.7.0

ADDED

Convenience method is_directory for ObjectStore layers to check if key is a directory

2.7.0

ADDED

Optional overwrite protection check when publishing ObjectStore layers

2.7.0

ADDED

New method get_statistics for versioned layers which returns summary statistics for the layer

2.7.0

ADDED

Ability to use an upublished (local) schema artifact to decode/encode data

2.7.0

CHANGED

Removed 192 MB restriction on object size when publishing to ObjectStore layers

2.7.0

CHANGED

When using Inspector, you can now pass tuples of (content, style) in the layers parameter so that it's not required to use layers_style

2.7.0

DOCUMENTATION

Tutorial notebooks and examples are now available singly via GitHub in addition to downloadable .zip bundle in Developer Guide

2.7.0

PERFORMANCE

Takes into account layer compression when preferring single part upload over multipart

2.6.0

ADDED

Support for listing, reading, writing, and deleting content from Object Store layers

2.6.0

ADDED

DefaultAdapter and GeoPandasAdapter support for writing to Stream layers

2.6.0

ADDED

Added timestamp and offset columns when reading Stream Layer using GeoPandasAdapter

2.6.0

CHANGED

When using GeoPandasAdapter in reading from volatile layer, instead of raising exception if data not found for given data handle, that row is simply omitted from returned DataFrame. Previously, an exception would be raised.

2.6.0

FIXED

When using HERE Content Bindings with GeoPandasAdapter to read an empty or non-existing partition, error was raised. This now returns an empty (Geo)DataFrame

2.6.0

FIXED

Jupyter crash when attempting to visualize an empty (Geo)DataFrame using Inspector. Now an empty layer will be added.

2.6.0

FIXED

Support for layers with SHA-1 and SHA-256 checksum algorithms

2.6.0

DOCUMENTATION

Instructions for upgrading HERE Data SDK for Python packages to new version within an existing environment.

2.6.0

PERFORMANCE

When publishing data smaller than 50MB, a single part upload will be used instead of multipart.

2.5.0

ADDED

Improved decoding to data frames of content in protocol buffers format, composite columns are automatically unpacked into multiple, single-value columns

2.5.0

ADDED

Support for direct Kafka for stream layer

2.5.0

ADDED

When writing a single message to stream layer, inline data limit in the message is now configurable. Its default value is set to 800KB

2.5.0

ADDED

Added inspector backend based on HERE Map Widget for Jupyter. Refer to new sample notebook ExploreInspector_HereMapWidgetForJupyter.ipynb

2.5.0

ADDED

Improved stream layer support by adding offset management

2.5.0

FIXED

get_attribute functions will return None when attribute_names do not exist in some partitions

2.4.0

ADDED

CSV support in DefaultAdapter

2.4.0

ADDED

Support for Local Catalogs / Local Data Service

2.4.0

ADDED

Add xyzservices dependency to access basemaps from many providers

2.4.0

ADDED

New functions to seek and commit kafka offsets in a StreamSubscription

2.4.0

FIXED

Data field of stream messages not populated

2.4.0

REMOVED

JoinData_geopandas and JoinData_platform example notebooks

2.3.0

ADDED

New example showing how to convert your Python code to an interactive dashboard using Plotly Dashboard

2.3.0

ADDED

New add_layer and update_layer methods as simplified alternatives to full catalog reconfiguration

2.3.0

ADDED

New clone_catalog method to create a catalog by cloning an existing one

2.3.0

ADDED

JSON and GeoJSON support in DefaultAdapter

2.3.0

ADDED

JSON and GeoJSON support in GeoPandasAdapter

2.3.0

ADDED

New MLflow sample notebooks showing how to use Ray for distributed XGBoost and PyTorch training models

2.3.0

FIXED

Geopandas adapter error when publishing dataframe to versioned and volatile layers

2.3.0

FIXED

Error calling list_version when number of catalog versions is > 1000

2.2.0

ADDED

Geopandas Adapter now allows for direct writing of dataframe contents to versioned and volatile layers in addition to index layer

2.2.0

ADDED

New tutorial notebook demonstrating how to work with Here Content package

2.2.0

ADDED

New tutorial notebook demonstrating how to work with Interactive Map layers

2.2.0

ADDED

Support for reading from and writing to Interactive Map layers

2.2.0

ADDED

New tutorial notebook illustrating how to run interactive notebook as a dashboard using Voila

2.2.0

ADDED

New Here Content package providing simplified access to HERE Map Content layers

2.2.0

ADDED

Methods supporting direct interaction with Platform Services

2.2.0

FIXED

PlatformException no longer raised when querying partitions from new (empty) catalog

2.2.0

FIXED

Inspector failure on empty GeoJSON FeatureCollection

2.0.1

FIXED

MLflow plug in fixes related to new SDK version.

2.0

ADDED

The HERE Data SDK for Python v1.12 has been deprecated and a refactored SDK for Python (v2.0 ) is now available, requiring new installation including new packages. Refer to the new HERE Data SDK for Python Developer Guide for more information and installation instructions.

1.11

FIXED

Fixed an issue with get partitions for partitions that do not exist.

1.11

DEPRECATED

Data SDK for Python with Spark is DEPRECATED and no longer actively supported. Alternate support for Python based distributed processing will be added in a future release.

1.10

ADDED

The SDK now includes the capability to visualize heatmap as part of "utils/vis" module. Added sample notebook "Visualize Millions of SDII Points Using Heatmap" for reference.

1.10

ADDED

The SDK now includes the functionality to retrieve partitions metadata, including size, without having to download the data.

1.10

ADDED

The SDK now includes retry logic to avoid "Too many requests" error.

1.9

ADDED

The SDK now supports billing tag for all the backend data services.

1.9

ADDED

The SDK now supports writing bytes object directly for all layers.

1.9

ADDED

The SDK now supports writing data to layers with content encoding as gzip.

1.9

FIXED

Core (here-nagini) module installation issue with docker build image.

1.9

FIXED

The SDK installation now supports multiple server repository credentials in settings.xml.

1.8

ADDED

The SDK now includes an MLflow Plugin which enables the ability to manage Machine Learning (ML) experiments on the platform and share with others, or make it available on the HERE Marketplace.

1.8

ADDED

The SDK now supports Python v3.8.

1.8

ADDED

The SDK now includes the functionality to publish dataframe to index layer with parquet content type.

1.8

FIXED

Fixed an issue with the volatile layer read support to read from a catalog with no versions.

1.7

ADDED

The SDK now includes the functionality to read layers with content encoding as gzip.

1.7

ADDED

The SDK now includes the functionality to read schema by HRN.

1.7

CHANGED

SDK Core package(nagini) is now renamed as (here-nagini). Changes made for "nagini" to "here-nagini" will be backward compatible. Just the package name changes, the module name "nagini" will remain as it is so that it can still be used in the code as "import nagini".

1.7

FIXED

Fixed an issue with the versioned layer write support to publish large files.

1.6

ADDED

The SDK now includes the functionality to check for the existence of a catalog.

1.6

ADDED

The SDK now includes the functionality to share and grant/revoke permissions in a catalog.

1.6

CHANGED

OLP SDK for Python is now renamed as HERE Data SDK for Python.

1.6

FIXED

Fixed an issue with the stream layer read functionality to commit offset.

1.5

ADDED

The SDK now includes a sample notebook to demonstrate visualization of millions of sdii points.

1.5

ADDED

The SDK now includes the ability to create, update, delete, manage and associate resources with a project.

1.5

ADDED

The SDK now includes a sample notebook to demonstrate integration of scikit-learn model with pipeline.

1.5

CHANGED

The SDK now uses HMAC-SHA256 signature method for tokens instead of HMAC-SHA1.

1.4

ADDED

The SDK now includes the ability to create, update and delete a catalog and a layer.

1.4

ADDED

The Python SDK core module can now be installed as an independent package via pip or conda.

1.4

ADDED

The SDK now includes write support for all layer types including versioned, volatile, streaming and index layers.

1.4

KNOWN ISSUE

Multi part upload for very large files to a versioned layer may fail with 400 Bad Request error.

1.4

KNOWN ISSUE

Uploading data to project based catalogs is not supported.

1.3

ADDED

Support to install SDK packages using 'conda' installer.

1.3

ADDED

Added logger implementation in nagini module.

1.3

ADDED

Support to write data to OLP versioned layers.

1.3

CHANGED

Simplified installation: The SDK can now be installed/updated with a single command.

1.3

KNOWN ISSUE

Multi part upload for files larger than 200 MB to a versioned layer may fail with 400 Bad Request error.

1.3

KNOWN ISSUE

Uploading data to project based catalogs is not supported.