bindings/python/utils/deprecation.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 INRIA
3 //
4 
5 #ifndef __pinocchio_python_utils_deprecation_hpp__
6 #define __pinocchio_python_utils_deprecation_hpp__
7 
8 #include <Python.h>
9 #include <boost/python.hpp>
10 #include <string>
11 
12 namespace pinocchio
13 {
14  namespace python
15  {
16  template<class Policy = boost::python::default_call_policies>
17  struct deprecated_warning_policy : Policy
18  {
19  deprecated_warning_policy(const std::string & warning_message = "")
20  : Policy()
21  , m_warning_message(warning_message)
22  {}
23 
24  template <class ArgumentPackage>
25  bool precall(ArgumentPackage const & args) const
26  {
27  PyErr_WarnEx(PyExc_UserWarning,m_warning_message.c_str(),1);
28  return static_cast<const Policy*>(this)->precall(args);
29  }
30 
31  typedef typename Policy::result_converter result_converter;
32  typedef typename Policy::argument_package argument_package;
33 
34  protected:
35 
36  const std::string m_warning_message;
37  };
38 
39  template<class Policy = boost::python::default_call_policies>
41  {
42  deprecated_member(const std::string & warning_message
43  = "This class member has been marked as deprecated and will be removed in a future release.")
44  : deprecated_warning_policy<Policy>(warning_message)
45  {}
46  };
47 
48  template<class Policy = boost::python::default_call_policies>
50  {
51  deprecated_function(const std::string & warning_message
52  = "This function has been marked as deprecated and will be removed in a future release.")
53  : deprecated_warning_policy<Policy>(warning_message)
54  {}
55  };
56  }
57 }
58 
59 #endif // ifndef __pinocchio_python_utils_deprecation_hpp__
deprecated_warning_policy(const std::string &warning_message="")
Main pinocchio namespace.
Definition: timings.cpp:28
deprecated_member(const std::string &warning_message="This class member has been marked as deprecated and will be removed in a future release.")
deprecated_function(const std::string &warning_message="This function has been marked as deprecated and will be removed in a future release.")


pinocchio
Author(s):
autogenerated on Fri Jun 23 2023 02:38:29