lsst.afw  19.0.0-22-gd98cb7f78
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 base classes.
  • Call this function to wrap the methods that make your object persistable.

Definition at line 90 of file python.h.

◆ 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 65 of file python.h.