LSSTApplications  20.0.0
LSSTDataManagementBasePackage
projectionHandler.cc
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 /*
3  * This file is part of jointcal.
4  *
5  * Developed for the LSST Data Management System.
6  * This product includes software developed by the LSST Project
7  * (https://www.lsst.org).
8  * See the COPYRIGHT file at the top-level directory of this distribution
9  * for details of code ownership.
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <https://www.gnu.org/licenses/>.
23  */
24 
25 #include "pybind11/pybind11.h"
26 #include "pybind11/stl.h"
27 
28 #include "lsst/utils/python.h"
29 
31 #include "lsst/jointcal/CcdImage.h"
32 
33 namespace py = pybind11;
34 using namespace pybind11::literals;
35 
36 namespace lsst {
37 namespace jointcal {
38 namespace {
39 
40 void declareProjectionHandler(py::module &mod) {
41  py::class_<ProjectionHandler, std::shared_ptr<ProjectionHandler>> cls(mod, "ProjectionHandler");
42  utils::python::addOutputOp(cls, "__str__");
43  utils::python::addOutputOp(cls, "__repr__");
44 }
45 
46 void declareIdentityProjectionHandler(py::module &mod) {
47  py::class_<IdentityProjectionHandler, std::shared_ptr<IdentityProjectionHandler>, ProjectionHandler> cls(
48  mod, "IdentityProjectionHandler");
49  cls.def(py::init());
50 }
51 
52 void declareOneTPPerVisitHandler(py::module &mod) {
53  py::class_<OneTPPerVisitHandler, std::shared_ptr<OneTPPerVisitHandler>, ProjectionHandler> cls(
54  mod, "OneTPPerVisitHandler");
55  cls.def(py::init<CcdImageList const &>(), "ccdImageList"_a);
56 }
57 
58 PYBIND11_MODULE(projectionHandler, mod) {
59  py::module::import("lsst.jointcal.ccdImage");
60  declareProjectionHandler(mod);
61  declareIdentityProjectionHandler(mod);
62  declareOneTPPerVisitHandler(mod);
63 }
64 } // namespace
65 } // namespace jointcal
66 } // namespace lsst
lsst::utils::python::addOutputOp
void addOutputOp(PyClass &cls, std::string const &method)
Add __str__ or __repr__ method implemented by operator<<.
Definition: python.h:87
CcdImage.h
lsst::afw::geom.transform.transformContinued.cls
cls
Definition: transformContinued.py:33
ProjectionHandler.h
lsst::jointcal
Definition: Associations.h:49
lsst
A base class for image defects.
Definition: imageAlgorithm.dox:1
python.h
pybind11
Definition: _GenericMap.cc:40
lsst::utils.tests.init
def init()
Definition: tests.py:58
lsst::meas::modelfit.psf.psfContinued.module
module
Definition: psfContinued.py:42
lsst::afw::cameraGeom::PYBIND11_MODULE
PYBIND11_MODULE(camera, mod)
Definition: camera.cc:133