HERE SDK for Python V2
Version
Change
Description
2.33.0
Fixed an issue where multi-part uploads using aiohttp ignored environment proxy settings.
2.33.0
Added retry handling for ChunkedEncodingError in standard (non-streaming) requests, preventing immediate failures and improving resilience to transient network issues.
2.33.0
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 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 support for python 3.13 and 3.14 in the SDK packages.
2.32.0
Added support for HMC v2.3 which adds support for topology-attributes layer
and removes support for all other *-attributes layers.
2.32.0
Deprecation notice for support of keplergl in here-inspector. It will be removed in June 2026 release.
2.30.0
Remove HEREMapInspector in favor of IpyleafletInspector.
2.30.0
Added TopologyAttributes class to handle HMC topology-attributes layer.
2.30.0
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
Deprecate HEREMapInspector in favor of IpyleafletInspector.
2.29.1
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 andend_offset is 0.85 then the result will beRange(start=None, end=0.85).
2.29.1
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
We removed the support for conda packages.
Please use pip packages instead.
2.28.0
Deprecate HEREMapInspector in favor of IpyleafletInspector.
2.28.0
Deprecation notice: In 2.29.0 release, conda support will be removed.
2.28.0
Conda package for version 2.28.0 will not be released due to a dependency conflict with an imported package.
2.27.2
Config files for here_platform are fixed
2.27.1
Config files for here_platform are fixed
2.27.0
Added support for Python 3.11 & 3.12
2.27.0
Removed support for Python 3.8 and 3.9
2.27.0
Version_dependencies issue resolved when writing data to the layer
2.27.0
Migrated functions using obsolete HMC layers to use 'places' layer.
2.26.0
Migrated Apache Kafka connector from kafka-python to kafka-python-ng package.
2.26.0
Added supported Python version and added a suggestion to use Python 3.10.
2.26.0
Dev guide has been updated to include new HMC2 examples, and deprecated HMC examples have been removed.
2.26.0
ObjectStoreLayer is_directory() check is fixed.
2.25.0
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
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 support for deprecated HMC version 1.
Please use here.content.hmc2 package instead.
2.24.0
Removed MLflow plugin which was used for storing MLflow data in
HERE platform catalogs.
2.23.1
Moves dependencies from global to the individual package scope.
2.23.1
Support for Object Store API to the local DataService.
2.22.0
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
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
Datastream api subscribe http request payload changes, fix the Request Body dict structure with proper key 'kafkaConsumerProperties' and related values.
2.21.0
The MLflow plugin is deprecated. It will be removed from HERE offering after November 2023.
2.20.0
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
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
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 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
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
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
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
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
Support for the JSON schemas which can be associated with any layer with the
content-type application/json, application-geo+json orapplication-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
Support for writing dataframes to protobuf layers.
2.18.0
The deprecate methodhere.platform.schema.Schema.decode_and_parse_blob(self, data: bytes) has been
removed from the here-platform package.
Going forward, users should usehere.platform.schema.Schema.decode_blob(self, data: bytes) and parse the
result using google.protobuf.json_format.MessageToDict.
2.17.0
Protobuf write functionality; user can write now to layers with protobuf content type
2.17.0
Extended support to Kepler widget for map visualisation
2.17.0
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 Partition data_handle handling
2.16.0
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 service_api behaviour by removing trailing slash in base urls and only parse json
2.15.0
Replaced pandas.append with pandas.concat
2.15.0
PythonSDK works with multiple groups in credentials file
2.15.0
Support for PySDK for Python 3.7
2.14.0
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
Raise exception if partition does not exist or it has no content
2.14.0
schema property to LayerConfiguration
2.14.0
StreamLayer inline limit default changed from None to default inline stream data limit
2.14.0
New detailed schema exception message added
2.14.0
Project scope fixed in credentials.properties
2.14.0
Incomplete data returned from Partition.get_blob()
2.13.0
schema property to LayerConfiguration
2.13.0
Incomplete data returned from Partition.get_blob()
2.13.0
Project scope in credentials.properties fixed
2.13.0
functions for manual handling of protobuf
2.12.1
Enable configurable objectstore upload part size and multi-part upload test
2.12.1
Fixed content encoding for objectstore read and write
2.12.0
New and improved single layer and multi-layer HMC bindings support
2.12.0
Function to get details of a specified version of a catalog
2.12.0
Unique schema registry per Platform object
2.12.0
part param is added to query Index layer by partId
2.12.0
Exception is not raised when additional_fields parameters is None in DataMetadataApi
2.12.0
No null pointer exception is thrown while using services
2.12.0
Deprecated offset and offset_partition functions
2.11.1
get_services returns Service object for the given HRN
2.11.0
Application configuration parameters in the dev guide
2.11.0
Added compressedDataSize field to default response of get_partition_changes
2.11.0
get_partitions_metadata of versioned layer return version
2.11.0
Removal of list_features function from layer
2.11.0
Removal of update_partitions_index function from layer
2.11.0
Removal of read_stream_data function from layer
2.10.0
Functionality to find which version(s) of a catalog is compatible with other catalogs
2.10.0
Improving credentials handling by adding support for 'scope'
2.10.0
Support for Python 3.10
2.10.0
Added mapping properties from the Config API response to the CatalogConfiguration and LayerConfiguration model
2.9.0
Support for compressed_data_size in partition metadata for Versioned and Volatile layer
2.9.0
since_version to VersionedLayer get_partitions_metadata
2.9.0
Credentials.from_default() fails under Windows
2.9.0
Partial additional fields evaluated
2.9.0
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
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
Context manager support to Publication
2.8.0
Context manager support for StreamSubscription
2.8.0
Passing an existing subscription ID to a StreamLayer allowing it to be used across multiple runs
2.7.0
Convenience method is_directory for ObjectStore layers to check if key is a directory
2.7.0
Optional overwrite protection check when publishing ObjectStore layers
2.7.0
New method get_statistics for versioned layers which returns summary statistics for the layer
2.7.0
Ability to use an upublished (local) schema artifact to decode/encode data
2.7.0
Removed 192 MB restriction on object size when publishing to ObjectStore layers
2.7.0
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
Tutorial notebooks and examples are now available singly via GitHub in addition to downloadable .zip bundle in Developer Guide
2.7.0
Takes into account layer compression when preferring single part upload over multipart
2.6.0
Support for listing, reading, writing, and deleting content from Object Store layers
2.6.0
DefaultAdapter and GeoPandasAdapter support for writing to Stream layers
2.6.0
Added timestamp and offset columns when reading Stream Layer using GeoPandasAdapter
2.6.0
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
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
Jupyter crash when attempting to visualize an empty (Geo)DataFrame using Inspector. Now an empty layer will be added.
2.6.0
Support for layers with SHA-1 and SHA-256 checksum algorithms
2.6.0
Instructions for upgrading HERE Data SDK for Python packages to new version within an existing environment.
2.6.0
When publishing data smaller than 50MB, a single part upload will be used instead of multipart.
2.5.0
Improved decoding to data frames of content in protocol buffers format, composite columns are automatically unpacked into multiple, single-value columns
2.5.0
Support for direct Kafka for stream layer
2.5.0
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 inspector backend based on HERE Map Widget for Jupyter. Refer to new sample notebook ExploreInspector_HereMapWidgetForJupyter.ipynb
2.5.0
Improved stream layer support by adding offset management
2.5.0
get_attribute functions will return None when attribute_names do not exist in some partitions
2.4.0
CSV support in DefaultAdapter
2.4.0
Support for Local Catalogs / Local Data Service
2.4.0
Add xyzservices dependency to access basemaps from many providers
2.4.0
New functions to seek and commit kafka offsets in a StreamSubscription
2.4.0
Data field of stream messages not populated
2.4.0
JoinData_geopandas and JoinData_platform example notebooks
2.3.0
New example showing how to convert your Python code to an interactive dashboard using Plotly Dashboard
2.3.0
New add_layer and update_layer methods as simplified alternatives to full catalog reconfiguration
2.3.0
New clone_catalog method to create a catalog by cloning an existing one
2.3.0
JSON and GeoJSON support in DefaultAdapter
2.3.0
JSON and GeoJSON support in GeoPandasAdapter
2.3.0
New MLflow sample notebooks showing how to use Ray for distributed XGBoost and PyTorch training models
2.3.0
Geopandas adapter error when publishing dataframe to versioned and volatile layers
2.3.0
Error calling list_version when number of catalog versions is > 1000
2.2.0
Geopandas Adapter now allows for direct writing of dataframe contents to versioned and volatile layers in addition to index layer
2.2.0
New tutorial notebook demonstrating how to work with Here Content package
2.2.0
New tutorial notebook demonstrating how to work with Interactive Map layers
2.2.0
Support for reading from and writing to Interactive Map layers
2.2.0
New tutorial notebook illustrating how to run interactive notebook as a dashboard using Voila
2.2.0
New Here Content package providing simplified access to HERE Map Content layers
2.2.0
Methods supporting direct interaction with Platform Services
2.2.0
PlatformException no longer raised when querying partitions from new (empty) catalog
2.2.0
Inspector failure on empty GeoJSON FeatureCollection
2.0.1
MLflow plug in fixes related to new SDK version.
2.0
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 an issue with get partitions for partitions that do not exist.
1.11
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
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
The SDK now includes the functionality to retrieve partitions metadata, including size, without having to download the data.
1.10
The SDK now includes retry logic to avoid "Too many requests" error.
1.9
The SDK now supports billing tag for all the backend data services.
1.9
The SDK now supports writing bytes object directly for all layers.
1.9
The SDK now supports writing data to layers with content encoding as gzip.
1.9
Core (here-nagini) module installation issue with docker build image.
1.9
The SDK installation now supports multiple server repository credentials in settings.xml.
1.8
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
The SDK now supports Python v3.8.
1.8
The SDK now includes the functionality to publish dataframe to index layer with parquet content type.
1.8
Fixed an issue with the volatile layer read support to read from a catalog with no versions.
1.7
The SDK now includes the functionality to read layers with content encoding as gzip.
1.7
The SDK now includes the functionality to read schema by HRN.
1.7
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 an issue with the versioned layer write support to publish large files.
1.6
The SDK now includes the functionality to check for the existence of a catalog.
1.6
The SDK now includes the functionality to share and grant/revoke permissions in a catalog.
1.6
OLP SDK for Python is now renamed as HERE Data SDK for Python.
1.6
Fixed an issue with the stream layer read functionality to commit offset.
1.5
The SDK now includes a sample notebook to demonstrate visualization of millions of sdii points.
1.5
The SDK now includes the ability to create, update, delete, manage and associate resources with a project.
1.5
The SDK now includes a sample notebook to demonstrate integration of scikit-learn model with pipeline.
1.5
The SDK now uses HMAC-SHA256 signature method for tokens instead of HMAC-SHA1.
1.4
The SDK now includes the ability to create, update and delete a catalog and a layer.
1.4
The Python SDK core module can now be installed as an independent package via pip or conda.
1.4
The SDK now includes write support for all layer types including versioned, volatile, streaming and index layers.
1.4
Multi part upload for very large files to a versioned layer may fail with 400 Bad Request error.
1.4
Uploading data to project based catalogs is not supported.
1.3
Support to install SDK packages using 'conda' installer.
1.3
Added logger implementation in nagini module.
1.3
Support to write data to OLP versioned layers.
1.3
Simplified installation: The SDK can now be installed/updated with a single command.
1.3
Multi part upload for files larger than 200 MB to a versioned layer may fail with 400 Bad Request error.
1.3
Uploading data to project based catalogs is not supported.