openPMD/openPMD-api

Provide copying mechanism for frontend handles

Ouverte

#171 ouverte le 14 mai 2018

 (1 commentaire) (1 réaction) (0 personne assignée)C++ (57 forks)auto 404
frontend: C++17frontend: Python3good first issuehelp wantedinternal

Métriques du dépôt

Stars
 (160 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

As a continuation of #156, a mechanism to allow detatched copies of frontend objects (i.e. Attributables) should be provided. While it is possible to create two objects with the same parameters explicitly, it is cumbersome e.g. when assigning multiple iterations in a series with the same openPMD data and differing record data.

(Shamelessly stealing numpy's lingo with .copy() to have familiar syntax and semantics.)

Series s = Series("./out.h5", AccessType::CREATE);

Iteration i1 = s.iterations[1];

/* merely creates a view into i1
 * every modification to i1 is reflected in i2 (and vice versa) */
s.iterations[2] = i1;

/* have an independent copy of the iteration that is not merely a view
 * any modification to i1 will not be reflected in i2 (and vice versa) */
s.iterations[3] = i1.copy();

Guide contributeur