Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

- bindings/python : Add missing arg names in `visualizer-visitor.hpp`
- use deprecation, warning macros already provided by jrl-cmakemodules
- renamed `PINOCCHIO_PRAGMA_DEPRECATED_HEADER` to `PINOCCHIO_DEPRECATED_MOVED_HEADER`

### Removed

- Remove unused headers `deprecated-macros.hpp` and `deprecated-namespaces.hpp`
- Remove header `pinocchio/deprecation.hpp`, directly use generated `pinocchio/deprecated.hpp`
- macros.hpp : remove macros already provided by jrl-cmakemodules
- bindings/python : deprecate and remove contents of `utils/copyable.hpp`, `utils/registration.hpp` and `utils/deprecation.hpp`, include corresponding eigenpy headers instead

## [3.7.0] - 2025-05-21

Expand Down
1 change: 0 additions & 1 deletion bindings/python/algorithm/expose-constrained-dynamics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
#include "pinocchio/bindings/python/algorithm/contact-cholesky.hpp"

#include "pinocchio/bindings/python/utils/std-vector.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"
#include "pinocchio/bindings/python/utils/model-checker.hpp"

#include "pinocchio/algorithm/constrained-dynamics.hpp"
Expand Down
3 changes: 1 addition & 2 deletions bindings/python/math/expose-eigen-types.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
//
// Copyright (c) 2020-2021 INRIA
// Copyright (c) 2020-2025 INRIA
//

#include "pinocchio/bindings/python/fwd.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"
#include "pinocchio/bindings/python/utils/std-vector.hpp"

#include <eigenpy/eigenpy.hpp>
Expand Down
3 changes: 1 addition & 2 deletions bindings/python/module.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
//
// Copyright (c) 2015-2022 CNRS INRIA
// Copyright (c) 2015-2022 CNRS INRIA, 2025 INRIA
//

#include "pinocchio/bindings/python/fwd.hpp"
#include "pinocchio/multibody/fwd.hpp"
#include "pinocchio/utils/version.hpp"
#include "pinocchio/bindings/python/utils/version.hpp"
#include "pinocchio/bindings/python/utils/dependencies.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"

#include "pinocchio/bindings/python/utils/std-vector.hpp"
#include "pinocchio/spatial/cartesian-axis.hpp"
Expand Down
6 changes: 3 additions & 3 deletions bindings/python/parsers/urdf/console-bridge.cpp
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
//
// Copyright (c) 2020 INRIA
// Copyright (c) 2020-2025 INRIA
//

#include <boost/python.hpp>
#include <eigenpy/registration.hpp>
#include "pinocchio/bindings/python/parsers/urdf.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"

#ifdef PINOCCHIO_WITH_URDFDOM
#include <console_bridge/console.h>
Expand All @@ -24,7 +24,7 @@ namespace pinocchio
::console_bridge::setLogLevel(::console_bridge::CONSOLE_BRIDGE_LOG_ERROR);

typedef ::console_bridge::LogLevel LogLevel;
if (!register_symbolic_link_to_registered_type<LogLevel>())
if (!eigenpy::register_symbolic_link_to_registered_type<LogLevel>())
{
bp::enum_<LogLevel>("LogLevel")
.value("CONSOLE_BRIDGE_LOG_DEBUG", ::console_bridge::CONSOLE_BRIDGE_LOG_DEBUG)
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/algorithm/parallel/omp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#define __pinocchio_algorithm_parallel_omp_hpp__

#include "pinocchio/macros.hpp"
PINOCCHIO_DEPRECATED_HEADER(
PINOCCHIO_DEPRECATED_MOVED_HEADER(
pinocchio / algorithm / parallel / omp.hpp, pinocchio / utils / openmp.hpp)
#include "pinocchio/utils/openmp.hpp"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
#ifndef __pinocchio_python_collision_geometry_functors_hpp__
#define __pinocchio_python_collision_geometry_functors_hpp__

#include "pinocchio/bindings/python/utils/registration.hpp"

#include "pinocchio/multibody/geometry.hpp"

namespace pinocchio
Expand Down
2 changes: 2 additions & 0 deletions include/pinocchio/bindings/python/fwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ namespace pinocchio
{
namespace python
{
using eigenpy::register_symbolic_link_to_registered_type;

// Expose spatial classes
void exposeSE3();
void exposeForce();
Expand Down
1 change: 0 additions & 1 deletion include/pinocchio/bindings/python/multibody/frame.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include "pinocchio/bindings/python/utils/cast.hpp"
#include "pinocchio/bindings/python/utils/copyable.hpp"
#include "pinocchio/bindings/python/utils/printable.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"

namespace pinocchio
{
Expand Down
6 changes: 3 additions & 3 deletions include/pinocchio/bindings/python/multibody/geometry-data.hpp
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
//
// Copyright (c) 2015-2022 CNRS INRIA
// Copyright (c) 2015-2022 CNRS INRIA, 2025 INRIA
//

#ifndef __pinocchio_python_geometry_data_hpp__
#define __pinocchio_python_geometry_data_hpp__

#include <eigenpy/memory.hpp>
#include <eigenpy/copyable.hpp>

#include "pinocchio/serialization/geometry.hpp"

#include "pinocchio/bindings/python/utils/address.hpp"
#include "pinocchio/bindings/python/utils/printable.hpp"
#include "pinocchio/bindings/python/utils/copyable.hpp"
#include "pinocchio/bindings/python/utils/std-vector.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"
#include "pinocchio/bindings/python/serialization/serializable.hpp"

#if EIGENPY_VERSION_AT_MOST(2, 8, 1)
Expand All @@ -25,6 +24,7 @@ namespace pinocchio
namespace python
{
namespace bp = boost::python;
using eigenpy::CopyableVisitor;

/* --- COLLISION PAIR --------------------------------------------------- */
/* --- COLLISION PAIR --------------------------------------------------- */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include "pinocchio/bindings/python/utils/address.hpp"
#include "pinocchio/bindings/python/utils/printable.hpp"
#include "pinocchio/bindings/python/utils/copyable.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"

#include "pinocchio/bindings/python/utils/pickle.hpp"
#include "pinocchio/bindings/python/serialization/serializable.hpp"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2017-2023 CNRS INRIA
// Copyright (c) 2017-2023 CNRS INRIA, 2025 INRIA
//

#ifndef __pinocchio_python_geometry_object_hpp__
Expand All @@ -9,11 +9,10 @@
#include <eigenpy/eigen-from-python.hpp>
#include <eigenpy/eigen-to-python.hpp>
#include <eigenpy/variant.hpp>
#include <eigenpy/copyable.hpp>
#include <eigenpy/deprecation-policy.hpp>

#include "pinocchio/bindings/python/utils/address.hpp"
#include "pinocchio/bindings/python/utils/copyable.hpp"
#include "pinocchio/bindings/python/utils/registration.hpp"
#include "pinocchio/bindings/python/utils/deprecation.hpp"
#include "pinocchio/bindings/python/utils/pickle.hpp"
#include "pinocchio/bindings/python/serialization/serializable.hpp"

Expand All @@ -28,6 +27,8 @@ namespace pinocchio
namespace python
{
namespace bp = boost::python;
using eigenpy::CopyableVisitor;
using eigenpy::deprecated_function;

struct GeometryObjectPythonVisitor
: public boost::python::def_visitor<GeometryObjectPythonVisitor>
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/bindings/python/parsers/python.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "pinocchio/macros.hpp"

// clang-format off
PINOCCHIO_DEPRECATED_HEADER(pinocchio/bindings/python/parsers/python.hpp, pinocchio/parsers/python.hpp)
PINOCCHIO_DEPRECATED_MOVED_HEADER(pinocchio/bindings/python/parsers/python.hpp, pinocchio/parsers/python.hpp)
// clang-format on

#include "pinocchio/parsers/python.hpp"
Expand Down
37 changes: 7 additions & 30 deletions include/pinocchio/bindings/python/utils/copyable.hpp
Original file line number Diff line number Diff line change
@@ -1,44 +1,21 @@
//
// Copyright (c) 2016-2023 CNRS INRIA
// Copyright (c) 2016-2023 CNRS INRIA, 2025 INRIA
//

#ifndef __pinocchio_python_utils_copyable_hpp__
#define __pinocchio_python_utils_copyable_hpp__

#include <eigenpy/eigenpy.hpp>
#include <eigenpy/copyable.hpp>

#include "pinocchio/deprecated.hpp"

PINOCCHIO_DEPRECATED_HEADER("Directly include <eigenpy/copyable.hpp> instead.")

namespace pinocchio
{
namespace python
{

namespace bp = boost::python;

///
/// \brief Add the Python method copy to allow a copy of this by calling the copy constructor.
///
template<class C>
struct CopyableVisitor : public bp::def_visitor<CopyableVisitor<C>>
{
template<class PyClass>
void visit(PyClass & cl) const
{
cl.def("copy", &copy, bp::arg("self"), "Returns a copy of *this.");
cl.def("__copy__", &copy, bp::arg("self"), "Returns a copy of *this.");
cl.def(
"__deepcopy__", &deepcopy, bp::args("self", "memo"), "Returns a deep copy of *this.");
}

private:
static C copy(const C & self)
{
return C(self);
}
static C deepcopy(const C & self, bp::dict)
{
return C(self);
}
};
using eigenpy::CopyableVisitor;
} // namespace python
} // namespace pinocchio

Expand Down
59 changes: 11 additions & 48 deletions include/pinocchio/bindings/python/utils/deprecation.hpp
Original file line number Diff line number Diff line change
@@ -1,62 +1,25 @@
//
// Copyright (c) 2020 INRIA
// Copyright (c) 2020-2025 INRIA
//

#ifndef __pinocchio_python_utils_deprecation_hpp__
#define __pinocchio_python_utils_deprecation_hpp__

#include <Python.h>
#include <boost/python.hpp>
#include <string>
#include <eigenpy/eigenpy.hpp>
#include <eigenpy/deprecation-policy.hpp>
#include "pinocchio/deprecated.hpp"

PINOCCHIO_DEPRECATED_HEADER("Directly include <eigenpy/deprecation-policy.hpp> instead.")

namespace pinocchio
{
namespace python
{
template<class Policy = boost::python::default_call_policies>
struct deprecated_warning_policy : Policy
{
deprecated_warning_policy(const std::string & warning_message = "")
: Policy()
, m_warning_message(warning_message)
{
}

template<class ArgumentPackage>
bool precall(ArgumentPackage const & args) const
{
PyErr_WarnEx(PyExc_UserWarning, m_warning_message.c_str(), 1);
return static_cast<const Policy *>(this)->precall(args);
}

typedef typename Policy::result_converter result_converter;
typedef typename Policy::argument_package argument_package;

protected:
const std::string m_warning_message;
};

template<class Policy = boost::python::default_call_policies>
struct deprecated_member : deprecated_warning_policy<Policy>
{
deprecated_member(
const std::string & warning_message = "This class member has been marked as deprecated and "
"will be removed in a future release.")
: deprecated_warning_policy<Policy>(warning_message)
{
}
};

template<class Policy = boost::python::default_call_policies>
struct deprecated_function : deprecated_warning_policy<Policy>
{
deprecated_function(
const std::string & warning_message =
"This function has been marked as deprecated and will be removed in a future release.")
: deprecated_warning_policy<Policy>(warning_message)
{
}
};
template<class P = boost::python::default_call_policies>
using deprecated_warning_policy =
eigenpy::deprecation_warning_policy<eigenpy::DeprecationType::DEPRECATION, P>;
using eigenpy::deprecated_function;
using eigenpy::deprecated_member;
} // namespace python
} // namespace pinocchio

Expand Down
23 changes: 5 additions & 18 deletions include/pinocchio/bindings/python/utils/registration.hpp
Original file line number Diff line number Diff line change
@@ -1,33 +1,20 @@
//
// Copyright (c) 2019-2020 INRIA
// Copyright (c) 2019-2025 INRIA
//

#ifndef __pinocchio_python_utils_registration_hpp__
#define __pinocchio_python_utils_registration_hpp__

#include "pinocchio/deprecated.hpp"
#include <eigenpy/registration.hpp>

PINOCCHIO_DEPRECATED_HEADER("Directly include <eigenpy/registration.hpp> instead.")

namespace pinocchio
{
namespace python
{

template<typename T>
inline bool register_symbolic_link_to_registered_type()
{
namespace bp = boost::python;
if (eigenpy::check_registration<T>())
{
const bp::type_info info = bp::type_id<T>();
const bp::converter::registration * reg = bp::converter::registry::query(info);
bp::handle<> class_obj(bp::borrowed(reg->get_class_object()));
bp::scope().attr(reg->get_class_object()->tp_name) = bp::object(class_obj);
return true;
}

return false;
}

using eigenpy::register_symbolic_link_to_registered_type;
} // namespace python
} // namespace pinocchio

Expand Down
3 changes: 3 additions & 0 deletions include/pinocchio/macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ namespace pinocchio
#define PINOCCHIO_MAYBE_UNUSED
#endif

#define PINOCCHIO_DEPRECATED_MOVED_HEADER(old_header, new_header) \
PINOCCHIO_DEPRECATED_HEADER("#old_header has been replaced by #new_header.")

/// Ensure that a matrix (or vector) is of correct size (compile-time and run-time assertion)
#define PINOCCHIO_ASSERT_MATRIX_SPECIFIC_SIZE(type, M, nrows, ncols) \
EIGEN_STATIC_ASSERT( \
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/math/cppad.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "pinocchio/macros.hpp"

// clang-format off
PINOCCHIO_DEPRECATED_HEADER(pinocchio/math/cppad.hpp, pinocchio/autodiff/cppad.hpp)
PINOCCHIO_DEPRECATED_MOVED_HEADER(pinocchio/math/cppad.hpp, pinocchio/autodiff/cppad.hpp)
// clang-format on

#include "pinocchio/autodiff/cppad.hpp"
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/math/cppadcg.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "pinocchio/macros.hpp"

// clang-format off
PINOCCHIO_DEPRECATED_HEADER(pinocchio/math/cppadcg.hpp, pinocchio/codegen/cppadcg.hpp)
PINOCCHIO_DEPRECATED_MOVED_HEADER(pinocchio/math/cppadcg.hpp, pinocchio/codegen/cppadcg.hpp)
// clang-format on

#include "pinocchio/codegen/cppadcg.hpp"
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/parsers/sample-models.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "pinocchio/macros.hpp"

// clang-format off
PINOCCHIO_DEPRECATED_HEADER(pinocchio/parsers/sample-models.hpp, pinocchio/multibody/sample-models.hpp)
PINOCCHIO_DEPRECATED_MOVED_HEADER(pinocchio/parsers/sample-models.hpp, pinocchio/multibody/sample-models.hpp)
// clang-format on

#include "pinocchio/multibody/sample-models.hpp"
Expand Down
2 changes: 1 addition & 1 deletion include/pinocchio/spatial/fcl-pinocchio-conversions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "pinocchio/macros.hpp"

// clang-format off
PINOCCHIO_DEPRECATED_HEADER(
PINOCCHIO_DEPRECATED_MOVED_HEADER(
pinocchio/spatial/fcl-pinocchio-conversions.hpp,
pinocchio/collision/fcl-pinocchio-conversions.hpp)
// clang-format on
Expand Down
Loading