LSSTApplications  17.0+11,17.0+34,17.0+56,17.0+57,17.0+59,17.0+7,17.0-1-g377950a+33,17.0.1-1-g114240f+2,17.0.1-1-g4d4fbc4+28,17.0.1-1-g55520dc+49,17.0.1-1-g5f4ed7e+52,17.0.1-1-g6dd7d69+17,17.0.1-1-g8de6c91+11,17.0.1-1-gb9095d2+7,17.0.1-1-ge9fec5e+5,17.0.1-1-gf4e0155+55,17.0.1-1-gfc65f5f+50,17.0.1-1-gfc6fb1f+20,17.0.1-10-g87f9f3f+1,17.0.1-11-ge9de802+16,17.0.1-16-ga14f7d5c+4,17.0.1-17-gc79d625+1,17.0.1-17-gdae4c4a+8,17.0.1-2-g26618f5+29,17.0.1-2-g54f2ebc+9,17.0.1-2-gf403422+1,17.0.1-20-g2ca2f74+6,17.0.1-23-gf3eadeb7+1,17.0.1-3-g7e86b59+39,17.0.1-3-gb5ca14a,17.0.1-3-gd08d533+40,17.0.1-30-g596af8797,17.0.1-4-g59d126d+4,17.0.1-4-gc69c472+5,17.0.1-6-g5afd9b9+4,17.0.1-7-g35889ee+1,17.0.1-7-gc7c8782+18,17.0.1-9-gc4bbfb2+3,w.2019.22
LSSTDataManagementBasePackage
Functions
lsst::afw::table::io::python Namespace Reference

Functions

template<typename T >
void declarePersistableFacade (pybind11::module &module, std::string const &suffix)
 Wraps an instantiation of PersistableFacade. More...
 
template<typename Class , typename... Args>
void addPersistableMethods (pybind11::class_< Class, Args... > &cls)
 Add table::io::Persistable and PersistableFacade methods to the pybind11 wrapper for a class. More...
 

Function Documentation

◆ addPersistableMethods()

template<typename Class , typename... Args>
void lsst::afw::table::io::python::addPersistableMethods ( pybind11::class_< Class, Args... > &  cls)

Add table::io::Persistable and PersistableFacade methods to the pybind11 wrapper for a class.

Use this instead of declarePersistableFacade to avoid circular import issues in Python; it allows your class to be used without importing lsst.afw.table.

Use as follows:

  • When declaring the pybind11 class that wraps your Class do not list table::io::PersistableFacade<Class> and table::io::Persistable as subclasses.
  • Call this function to wrap the methods that make your object persistable.

Definition at line 88 of file python.h.

88  {
89  cls.def_static("readFits",
90  (std::shared_ptr<Class>(*)(std::string const &, int)) & PersistableFacade<Class>::readFits,
91  "fileName"_a, "hdu"_a = fits::DEFAULT_HDU);
92  cls.def_static(
93  "readFits",
94  (std::shared_ptr<Class>(*)(fits::MemFileManager &, int)) & PersistableFacade<Class>::readFits,
95  "manager"_a, "hdu"_a = fits::DEFAULT_HDU);
96  cls.def("writeFits", (void (Class::*)(std::string const &, std::string const &) const) & Class::writeFits,
97  "fileName"_a, "mode"_a = "w");
98  cls.def("writeFits",
99  (void (Class::*)(fits::MemFileManager &, std::string const &) const) & Class::writeFits,
100  "manager"_a, "mode"_a = "w");
101  cls.def("isPersistable", &Class::isPersistable);
102 }
STL class.
const int DEFAULT_HDU
Specify that the default HDU should be read.
Definition: fitsDefaults.h:18

◆ declarePersistableFacade()

template<typename T >
void lsst::afw::table::io::python::declarePersistableFacade ( pybind11::module &  module,
std::string const &  suffix 
)

Wraps an instantiation of PersistableFacade.

Deprecated:
Use addPersistableMethods for all new code.

Pybind11 shall assume that PersistableFacade is managed using std::shared_ptr, as this is required for compatibility with existing subclasses of PersistableFacade. This means that wrapping will only work if new classes also use std::shared_ptr as their holder type.

Template Parameters
TThe type of object this PersistableFacade is for.
Parameters
moduleThe pybind11 module that shall contain PersistableFacade<T>
suffixA string to disambiguate this class from other PersistableFacades. The Python name of this class shall be PersistableFacade<suffix>.

Definition at line 63 of file python.h.

63  {
64  using namespace pybind11::literals;
65 
66  pybind11::class_<PersistableFacade<T>, std::shared_ptr<PersistableFacade<T>>> cls(
67  module, ("PersistableFacade" + suffix).c_str());
68  cls.def_static("readFits",
69  (std::shared_ptr<T>(*)(std::string const &, int)) & PersistableFacade<T>::readFits,
70  "fileName"_a, "hdu"_a = fits::DEFAULT_HDU);
71  cls.def_static("readFits",
72  (std::shared_ptr<T>(*)(fits::MemFileManager &, int)) & PersistableFacade<T>::readFits,
73  "manager"_a, "hdu"_a = fits::DEFAULT_HDU);
74 }
STL class.
const int DEFAULT_HDU
Specify that the default HDU should be read.
Definition: fitsDefaults.h:18