Skip to content

Commit 8d48e2d

Browse files
committed
Basic Python bindings for CustomHierarchy
1 parent fd14bd8 commit 8d48e2d

File tree

5 files changed

+30
-1
lines changed

5 files changed

+30
-1
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,7 @@ if(openPMD_HAVE_PYTHON)
602602
src/binding/python/BaseRecordComponent.cpp
603603
src/binding/python/ChunkInfo.cpp
604604
src/binding/python/Container.cpp
605+
src/binding/python/CustomHierarchy.cpp
605606
src/binding/python/Dataset.cpp
606607
src/binding/python/Datatype.cpp
607608
src/binding/python/Error.cpp

src/binding/python/Container.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
* BSD-style license, see pybind11 LICENSE file.
2525
*/
2626

27+
#include <pybind11/cast.h>
2728
#include <pybind11/pybind11.h>
2829

30+
#include "openPMD/CustomHierarchy.hpp"
2931
#include "openPMD/Iteration.hpp"
3032
#include "openPMD/Mesh.hpp"
3133
#include "openPMD/ParticlePatches.hpp"
@@ -52,6 +54,7 @@ using PyPatchRecordContainer = Container<PatchRecord>;
5254
using PyRecordComponentContainer = Container<RecordComponent>;
5355
using PyMeshRecordComponentContainer = Container<MeshRecordComponent>;
5456
using PyPatchRecordComponentContainer = Container<PatchRecordComponent>;
57+
using PyCustomHierarchyContainer = Container<CustomHierarchy>;
5558
PYBIND11_MAKE_OPAQUE(PyIterationContainer)
5659
PYBIND11_MAKE_OPAQUE(PyMeshContainer)
5760
PYBIND11_MAKE_OPAQUE(PyPartContainer)
@@ -61,6 +64,7 @@ PYBIND11_MAKE_OPAQUE(PyPatchRecordContainer)
6164
PYBIND11_MAKE_OPAQUE(PyRecordComponentContainer)
6265
PYBIND11_MAKE_OPAQUE(PyMeshRecordComponentContainer)
6366
PYBIND11_MAKE_OPAQUE(PyPatchRecordComponentContainer)
67+
PYBIND11_MAKE_OPAQUE(PyCustomHierarchyContainer)
6468

6569
void init_Container(py::module &m)
6670
{
@@ -85,4 +89,7 @@ void init_Container(py::module &m)
8589
::detail::create_and_bind_container<
8690
PyPatchRecordComponentContainer,
8791
Attributable>(m, "Patch_Record_Component_Container");
92+
::detail::
93+
create_and_bind_container<PyCustomHierarchyContainer, Attributable>(
94+
m, "Custom_Hierarchy_Container");
8895
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
3+
#include "openPMD/CustomHierarchy.hpp"
4+
#include "openPMD/backend/Attributable.hpp"
5+
#include <pybind11/pybind11.h>
6+
7+
namespace py = pybind11;
8+
using namespace openPMD;
9+
10+
void init_CustomHierarchy(py::module &m)
11+
{
12+
py::class_<CustomHierarchy, Container<CustomHierarchy>, Attributable>(
13+
m, "CustomHierarchy");
14+
}

src/binding/python/Iteration.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <pybind11/pybind11.h>
2222
#include <pybind11/stl.h>
2323

24+
#include "openPMD/CustomHierarchy.hpp"
2425
#include "openPMD/Iteration.hpp"
2526

2627
#include <ios>
@@ -32,7 +33,11 @@ using namespace openPMD;
3233

3334
void init_Iteration(py::module &m)
3435
{
35-
py::class_<Iteration, Attributable>(m, "Iteration")
36+
py::class_<
37+
Iteration,
38+
CustomHierarchy,
39+
Container<CustomHierarchy>,
40+
Attributable>(m, "Iteration")
3641
.def(py::init<Iteration const &>())
3742

3843
.def(

src/binding/python/openPMD.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ void init_Dataset(py::module &);
4141
void init_Datatype(py::module &);
4242
void init_Error(py::module &);
4343
void init_Helper(py::module &);
44+
void init_CustomHierarchy(py::module &);
4445
void init_Iteration(py::module &);
4546
void init_IterationEncoding(py::module &);
4647
void init_Mesh(py::module &);
@@ -94,6 +95,7 @@ PYBIND11_MODULE(openpmd_api_cxx, m)
9495
init_Dataset(m);
9596
init_Datatype(m);
9697
init_Helper(m);
98+
init_CustomHierarchy(m);
9799
init_Iteration(m);
98100
init_IterationEncoding(m);
99101
init_BaseRecordComponent(m);

0 commit comments

Comments
 (0)