lsst.afw
20.0.0-7-geef20c811+1caa149b74
include
lsst
afw
table
io
python.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* See COPYRIGHT file at the top of the source tree.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
24
#ifndef LSST_AFW_TABLE_IO_PYTHON_H
25
#define LSST_AFW_TABLE_IO_PYTHON_H
26
27
#include "pybind11/pybind11.h"
28
29
#include <memory>
30
#include <string>
31
32
#include "
lsst/afw/fits.h
"
33
#include "
lsst/afw/table/io/Persistable.h
"
34
35
namespace
py
=
pybind11
;
36
using namespace
py::literals;
37
38
namespace
lsst
{
39
namespace
afw {
40
namespace
table {
41
namespace
io {
42
namespace
python {
43
62
template
<
typename
T>
63
[[deprecated(
"Use `addPersistableMethods` instead. To be removed after 20.0.0."
)]]
// DM-22814
64
void
65
declarePersistableFacade
(pybind11::module &module,
std::string
const
&suffix) {
66
using namespace
pybind11::literals;
67
68
pybind11::class_<PersistableFacade<T>,
std::shared_ptr<PersistableFacade<T>
>>
cls
(
69
module, (
"PersistableFacade"
+ suffix).c_str());
70
cls
.def_static(
"readFits"
,
71
(
std::shared_ptr<T>
(*)(
std::string
const
&,
int
)) &
PersistableFacade<T>::readFits
,
72
"fileName"
_a,
"hdu"
_a =
fits::DEFAULT_HDU
);
73
cls
.def_static(
"readFits"
,
74
(
std::shared_ptr<T>
(*)(
fits::MemFileManager
&,
int
)) &
PersistableFacade<T>::readFits
,
75
"manager"
_a,
"hdu"
_a =
fits::DEFAULT_HDU
);
76
}
77
89
template
<
typename
Class,
typename
... Args>
90
void
addPersistableMethods
(pybind11::class_<Class, Args...> &
cls
) {
91
cls
.def_static(
"readFits"
,
92
(
std::shared_ptr<Class>
(*)(
std::string
const
&,
int
)) &
PersistableFacade<Class>::readFits
,
93
"fileName"
_a,
"hdu"
_a =
fits::DEFAULT_HDU
);
94
cls
.def_static(
95
"readFits"
,
96
(
std::shared_ptr<Class>
(*)(
fits::MemFileManager
&,
int
)) &
PersistableFacade<Class>::readFits
,
97
"manager"
_a,
"hdu"
_a =
fits::DEFAULT_HDU
);
98
cls
.def(
"writeFits"
, (
void
(Class::*)(
std::string
const
&,
std::string
const
&)
const
) & Class::writeFits,
99
"fileName"
_a,
"mode"
_a =
"w"
);
100
cls
.def(
"writeFits"
,
101
(
void
(Class::*)(
fits::MemFileManager
&,
std::string
const
&)
const
) & Class::writeFits,
102
"manager"
_a,
"mode"
_a =
"w"
);
103
cls
.def(
"isPersistable"
, &Class::isPersistable);
104
}
105
}
// namespace python
106
}
// namespace io
107
}
// namespace table
108
}
// namespace afw
109
}
// namespace lsst
110
111
#endif
std::string
STL class.
std::shared_ptr
STL class.
lsst::afw::fits::DEFAULT_HDU
const int DEFAULT_HDU
Specify that the default HDU should be read.
Definition:
fitsDefaults.h:18
lsst::afw::table::io::python::addPersistableMethods
void addPersistableMethods(pybind11::class_< Class, Args... > &cls)
Add table::io::Persistable and PersistableFacade methods to the pybind11 wrapper for a class.
Definition:
python.h:90
fits.h
lsst::afw::fits::MemFileManager
Lifetime-management for memory that goes into FITS memory files.
Definition:
fits.h:121
Persistable.h
lsst::afw::geom.transform.transformContinued.cls
cls
Definition:
transformContinued.py:33
lsst
A base class for image defects.
lsst::afw::table::io::PersistableFacade
A CRTP facade class for subclasses of Persistable.
Definition:
Persistable.h:176
pybind11
lsst::afw::table::io::python::declarePersistableFacade
void declarePersistableFacade(pybind11::module &module, std::string const &suffix)
Wraps an instantiation of PersistableFacade.
Definition:
python.h:65
Generated on Tue Aug 25 2020 01:53:07 for lsst.afw by
1.8.18