LSSTApplications
19.0.0,19.0.0+1,19.0.0+10,19.0.0+13,19.0.0+3,19.0.0+5,19.0.0+9,tickets.DM-22703-ga158cbef15,w.2019.51
LSSTDataManagementBasePackage
stack
Linux64
utils
19.0.0
python
lsst
utils
deprecated.py
Go to the documentation of this file.
1
# This file is part of lsst.utils.
2
#
3
# Developed for the LSST Data Management System.
4
# This product includes software developed by the LSST Project
5
# (https://www.lsst.org).
6
# See the COPYRIGHT file at the top-level directory of this distribution
7
# for details of code ownership.
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 GNU General Public License
20
# along with this program. If not, see <https://www.gnu.org/licenses/>.
21
22
import
deprecated.sphinx
23
import
functools
24
25
26
def
deprecate_pybind11
(func, reason, category=FutureWarning):
27
"""Deprecate a pybind11-wrapped C++ interface function or method.
28
29
This needs to use a pass-through Python wrapper so that
30
`~deprecated.sphinx.deprecated` can update its docstring; pybind11
31
docstrings are native and cannot be modified.
32
33
Note that this is not a decorator; its output must be assigned to
34
replace the method being deprecated.
35
36
Parameters
37
----------
38
reason : `str`
39
Reason for deprecation, passed to `~deprecated.sphinx.deprecated`
40
category : `Warning`
41
Warning category, passed to `~deprecated.sphinx.deprecated`
42
43
Returns
44
-------
45
func : function
46
Wrapped function
47
48
Example
49
-------
50
ExposureF.getCalib = deprecate_pybind11(ExposureF.getCalib,
51
reason="Replaced by getPhotoCalib. (Will be removed in 18.0)",
52
category=FutureWarning))
53
"""
54
@functools.wraps(func)
55
def
internal(*args, **kwargs):
56
return
func(*args, **kwargs)
57
return
deprecated.sphinx.deprecated(reason=reason, category=category)(internal)
lsst::utils.deprecated.deprecate_pybind11
def deprecate_pybind11(func, reason, category=FutureWarning)
Definition:
deprecated.py:26
Generated on Mon Dec 23 2019 19:03:33 for LSSTApplications by
1.8.13