You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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();
The text was updated successfully, but these errors were encountered:
Going off of #290 (comment), I doubt we can make Attributable::copy() happen.
The user should not be able to create dangling objects at all, especially not this easily.
This problem could be avoided by copying values into an existing (non-dangling) object inside a openPMD::Series structure, e.g. with Iteration::copyTo(Iteration&).
As a continuation of #156, a mechanism to allow detatched copies of frontend objects (i.e.
Attributable
s) 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.)The text was updated successfully, but these errors were encountered: