pairinteraction
A Rydberg Interaction Calculator
bindings.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Pairinteraction Developers
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#include "./Info.py.hpp"
5#include "./LoggerBridge.hpp"
11#include "./enums/Parity.py.hpp"
15#include "./ket/Ket.py.hpp"
17#include "./paths.py.hpp"
20#include "./version.py.hpp"
21
22#include <nanobind/nanobind.h>
23#include <nanobind/stl/string.h>
24#include <nanobind/stl/vector.h>
25
26namespace nb = nanobind;
27
28NB_MODULE(_backend, m) // NOLINT
29{
30 // https://nanobind.readthedocs.io/en/latest/faq.html#why-am-i-getting-errors-about-leaked-functions-and-types
31 nanobind::set_leak_warnings(false);
32
33 // wrap the get_pending_logs method of the logger bridge instance
34 static LoggerBridge bridge;
35 nb::class_<LoggerBridge::LogEntry>(m, "LogEntry")
36 .def_ro("level", &LoggerBridge::LogEntry::level)
37 .def_ro("message", &LoggerBridge::LogEntry::message);
38 m.def("get_pending_logs", []() { return bridge.get_pending_logs(); });
39
40 // enums
42 bind_parity(m);
45
46 // interfaces
49
50 // operator
52
53 // database
55
56 // diagonalizer
58
59 // ket
60 bind_ket(m);
61
62 // basis
63 bind_basis(m);
64
65 // system
66 bind_system(m);
67
68 // tools
70
71 // paths
72 bind_paths(m);
73
74 // version
75 bind_version(m);
76
77 // info
78 bind_info(m);
79}
void bind_basis(nb::module_ &m)
Definition: Basis.py.cpp:164
void bind_database(nb::module_ &m)
Definition: Database.py.cpp:34
void bind_diagonalizer_interface(nb::module_ &m)
void bind_diagonalizer(nb::module_ &m)
void bind_float_type(nb::module_ &m)
void bind_info(nb::module_ &m)
Definition: Info.py.cpp:13
void bind_ket(nb::module_ &m)
Definition: Ket.py.cpp:91
void bind_operator_type(nb::module_ &m)
void bind_operator(nb::module_ &m)
Definition: Operator.py.cpp:66
void bind_parity(nb::module_ &m)
Definition: Parity.py.cpp:13
void bind_system(nb::module_ &m)
Definition: System.py.cpp:72
void bind_transformation_builder_interface(nb::module_ &m)
void bind_transformation_type(nb::module_ &m)
NB_MODULE(_backend, m)
Definition: bindings.cpp:28
std::vector< LogEntry > get_pending_logs()
void bind_paths(nb::module_ &m)
Definition: paths.py.cpp:14
void bind_run_unit_tests(nb::module_ &m)
void bind_version(nb::module_ &m)
Definition: version.py.cpp:13