| Line | Branch | Exec | Source | 
    
      | 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 |  | 406 | deprecated_warning_policy(const std::string & warning_message = "") | 
    
      | 20 |  |  | : Policy() | 
    
      | 21 |  | 406 | , m_warning_message(warning_message) | 
    
      | 22 |  |  | { | 
    
      | 23 |  | 406 | } | 
    
      | 24 |  |  |  | 
    
      | 25 |  |  | template<class ArgumentPackage> | 
    
      | 26 |  | 2 | bool precall(ArgumentPackage const & args) const | 
    
      | 27 |  |  | { | 
    
      | 28 |  | 2 | PyErr_WarnEx(PyExc_UserWarning, m_warning_message.c_str(), 1); | 
    
      | 29 |  | 2 | return static_cast<const Policy *>(this)->precall(args); | 
    
      | 30 |  |  | } | 
    
      | 31 |  |  |  | 
    
      | 32 |  |  | typedef typename Policy::result_converter result_converter; | 
    
      | 33 |  |  | typedef typename Policy::argument_package argument_package; | 
    
      | 34 |  |  |  | 
    
      | 35 |  |  | protected: | 
    
      | 36 |  |  | const std::string m_warning_message; | 
    
      | 37 |  |  | }; | 
    
      | 38 |  |  |  | 
    
      | 39 |  |  | template<class Policy = boost::python::default_call_policies> | 
    
      | 40 |  |  | struct deprecated_member : deprecated_warning_policy<Policy> | 
    
      | 41 |  |  | { | 
    
      | 42 |  | 276 | deprecated_member( | 
    
      | 43 |  |  | const std::string & warning_message = "This class member has been marked as deprecated and " | 
    
      | 44 |  |  | "will be removed in a future release.") | 
    
      | 45 |  | 276 | : deprecated_warning_policy<Policy>(warning_message) | 
    
      | 46 |  |  | { | 
    
      | 47 |  | 276 | } | 
    
      | 48 |  |  | }; | 
    
      | 49 |  |  |  | 
    
      | 50 |  |  | template<class Policy = boost::python::default_call_policies> | 
    
      | 51 |  |  | struct deprecated_function : deprecated_warning_policy<Policy> | 
    
      | 52 |  |  | { | 
    
      | 53 |  | 130 | deprecated_function( | 
    
      | 54 |  |  | const std::string & warning_message = | 
    
      | 55 |  |  | "This function has been marked as deprecated and will be removed in a future release.") | 
    
      | 56 |  | 130 | : deprecated_warning_policy<Policy>(warning_message) | 
    
      | 57 |  |  | { | 
    
      | 58 |  | 130 | } | 
    
      | 59 |  |  | }; | 
    
      | 60 |  |  | } // namespace python | 
    
      | 61 |  |  | } // namespace pinocchio | 
    
      | 62 |  |  |  | 
    
      | 63 |  |  | #endif // ifndef __pinocchio_python_utils_deprecation_hpp__ | 
    
      | 64 |  |  |  |