Openpmd-api

Latest version: v0.15.2

Safety actively analyzes 619345 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.16.0

------

The ADIOS1 library is no longer developed in favor of ADIOS2.
Consequently, ADIOS1 support was removed in openPMD-api 0.16.0 and newer.
Please transition to ADIOS2.

For reading legacy ADIOS1 BP3 files, either use an older version of openPMD-api or the BP3 backend in ADIOS2.
Note that ADIOS2 does not support compression in BP3 files.

pybind11 2.11.1 is now the minimally supported version for Python support.

0.15.1

------
**Date:** 2023-04-02

Build Regressions

This release fixes build regressions and minor documentation updates for the 0.15.0 release.

0.15.0

------

Building openPMD-api now requires a compiler that supports C++17 or newer.
``MPark.Variant`` is not a dependency anymore (kudos and thanks for the great time!).

Python 3.10 & 3.11 are now supported, Python 3.6 is removed.
openPMD-api now depends on `toml11 <https://github.com/ToruNiina/toml11>`__ 3.7.1+.
pybind11 2.10.1 is now the minimally supported version for Python support.
Catch2 2.13.10 is now the minimally supported version for tests.

The following backend-specific members of the ``Dataset`` class have been removed: ``Dataset::setChunkSize()``, ``Dataset::setCompression()``, ``Dataset::setCustomTransform()``, ``Dataset::chunkSize``, ``Dataset::compression``, ``Dataset::transform``.
They are replaced by backend-specific options in the JSON-based backend configuration.
This can be passed in ``Dataset::options``.
The following configuration shows a compression configuration for ADIOS1 and ADIOS2:

.. code-block:: json

{
"adios1": {
"dataset": {
"transform": "blosc:compressor=zlib,shuffle=bit,lvl=1;nometa"
}
},
"adios2": {
"dataset": {
"operators": [
{
"type": "zlib",
"parameters": {
"clevel": 9
}
}
]
}
}
}

Or alternatively, in TOML:

.. code-block:: toml

[adios1.dataset]
transform = "blosc:compressor=zlib,shuffle=bit,lvl=1;nometa"

[[adios2.dataset.operators]]
type = "zlib"
parameters.clevel = 9


The helper function ``shareRaw`` of the C++ API has been deprecated.
In its stead, there are now new API calls ``RecordComponent::storeChunkRaw()`` and ``RecordComponent::loadChunkRaw``.

The **ADIOS1 backend** is now deprecated, to be replaced fully with ADIOS2.
Now is a good time to check if ADIOS2 is able to read old ADIOS1 datasets that you might have. Otherwise, ``openpmd-pipe`` can be used for conversion:

.. code-block:: bash

openpmd-pipe --infile adios1_dataset_%T.bp --inconfig 'backend = "adios1"' --outfile adios2_dataset_%T.bp --outconfig 'backend = "adios2"'

The class structure of ``Container`` and deriving classes has been reworked.
Usage of the API generally stays the same, but code that relies on the concrete class structure might break.

The ``Iteration::closedByWriter()`` attribute has been deprecated as a leftover from the early streaming implementation.

Old:

.. code-block:: cpp

double const * data;
recordComponent.storeChunk(shareRaw(data), offset, extent);

New:

.. code-block:: cpp

double const * data;
recordComponent.storeChunkRaw(data, offset, extent);

Additionally, ``determineDatatype`` now accepts pointer types (raw and smart pointers):

Old:

.. code-block:: cpp

std::vector<double> data;
Datatype dt = determineDatatype(shareRaw(data));

New:

.. code-block:: cpp

std::vector<double> data;
Datatype dt = determineDatatype(data.data());

.. note::

``determineDatatype`` does not directly accept ``determineDatatype(data)``, since it's unclear if the result from that call would be ``Datatype::DOUBLE`` or ``Datatype::VEC_DOUBLE``.

In order to get the direct mapping between C++ type and openPMD datatype, use the template parameter of ``determineDatatype``: ``determineDatatype<decltype(data)>()`` or ``determineDatatype<std::vector<double>>()``.

0.14.5

------
**Date:** 2022-06-07

Improve Series Parsing, Python & Fix Backend Bugs

This release improves reading back iterations that overflow the specified zero-pattern.
ADIOS1, ADIOS2 and HDF5 backend stability and performance were improved.
Python bindings got additional wheel platform support and various smaller issues were fixed.

0.14.4

------
**Date:** 2022-01-21

Increased Compatibility & Python Install Bug

This release fixes various read/parsing bugs and increases compatibility with upcoming versions of ADIOS and old releases of Intel ``icpc``.
An installation issue for pip-based installs from source in the last release was fixed and Python 3.10 support added.
Various documentation and installation warnings have been fixed.

0.14.3

------
**Date:** 2021-11-03

Read Bugs, C++17 Mixing and HDF5 Performance

This release makes reads more robust by fixing small API, file-based parsing and test bugs.
Building the library in C++14 and using it in C++17 will not result in incompatible ABIs anymore.
HDF5 1.10.1+ performance was improved significantly.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.