PDI 1.13.0

the PDI data interface

python_ref_wrapper.h
1/*******************************************************************************
2* Copyright (C) 2020 Institute of Bioorganic Chemistry Polish Academy of Science (PSNC)
3* Copyright (C) 2026 Julien Bigot <julien@julien-bigot.fr>
4* All rights reserved.
5*
6* Redistribution and use in source and binary forms, with or without
7* modification, are permitted provided that the following conditions are met:
8* * Redistributions of source code must retain the above copyright
9* notice, this list of conditions and the following disclaimer.
10* * Redistributions in binary form must reproduce the above copyright
11* notice, this list of conditions and the following disclaimer in the
12* documentation and/or other materials provided with the distribution.
13* * Neither the name of CEA nor the names of its contributors may be used to
14* endorse or promote products derived from this software without specific
15* prior written permission.
16*
17* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23* THE SOFTWARE.
24******************************************************************************/
25
26#ifndef PDI_PYTHON_REF_WRAPPER_H_
27#define PDI_PYTHON_REF_WRAPPER_H_
28
29#include <cstddef>
30#include <string>
31
32#include <pybind11/pybind11.h>
33
34#include <pdi/ref_any.h>
35
36namespace PDI {
37
38class PDI_EXPORT Python_ref_wrapper
39{
41 Ref m_ref;
42
43public:
48
53 pybind11::object getattribute(std::string member_name);
54
59 void setattribute(std::string member_name, const pybind11::object value);
60
65 pybind11::object getitem(size_t index);
66};
67
68} // namespace PDI
69
70#endif // PDI_PYTHON_REF_WRAPPER_H_
pybind11::object getattribute(std::string member_name)
Gets a member if ref has a record datatype.
pybind11::object getitem(size_t index)
Gets element of the array if ref has a array datatype.
Python_ref_wrapper(Ref ref)
Creates python reference wrapper.
void setattribute(std::string member_name, const pybind11::object value)
Sets a member value if ref has a record datatype.
Definition array_datatype.h:38
Ref_any< false, false > Ref
Definition pdi_fwd.h:99