From ee9439d5e788d204d56810f84531310113a173d9 Mon Sep 17 00:00:00 2001 From: Tyler Veness <calcmogul@gmail.com> Date: Fri, 17 May 2024 19:20:12 -0700 Subject: [PATCH] Fix stubgen warnings (#541) --- cmake/fix_stubgen.py | 5 ----- cmake/modules/Pybind11Stubgen.cmake | 5 +++-- jormungandr/cpp/autodiff/BindGradient.cpp | 2 +- jormungandr/cpp/autodiff/BindHessian.cpp | 2 +- jormungandr/cpp/autodiff/BindJacobian.cpp | 2 +- jormungandr/cpp/autodiff/BindVariable.cpp | 2 +- jormungandr/cpp/autodiff/BindVariableBlock.cpp | 2 +- jormungandr/cpp/autodiff/BindVariableMatrix.cpp | 2 +- .../cpp/optimization/BindOptimizationProblem.cpp | 2 +- jormungandr/cpp/optimization/BindSolverStatus.cpp | 15 ++++++++++----- 10 files changed, 20 insertions(+), 19 deletions(-) diff --git a/cmake/fix_stubgen.py b/cmake/fix_stubgen.py index 1554b722..326af02d 100755 --- a/cmake/fix_stubgen.py +++ b/cmake/fix_stubgen.py @@ -21,11 +21,6 @@ def main(): with open(filename) as f: content = f.read() - # Fix errors - content = content.replace( - "<ExpressionType.NONE: 0>", "ExpressionType.NONE" - ).replace("<SolverExitCondition.SUCCESS: 0>", "SolverExitCondition.SUCCESS") - # Convert parameter names from camel case to snake case new_content = "" extract_location = 0 diff --git a/cmake/modules/Pybind11Stubgen.cmake b/cmake/modules/Pybind11Stubgen.cmake index ca4cae5a..82a70ebf 100644 --- a/cmake/modules/Pybind11Stubgen.cmake +++ b/cmake/modules/Pybind11Stubgen.cmake @@ -4,8 +4,9 @@ function(pybind11_stubgen target) TARGET ${target} POST_BUILD COMMAND - ${Python3_EXECUTABLE} -m pybind11_stubgen --ignore-all-errors - --print-invalid-expressions-as-is --exit-code + ${Python3_EXECUTABLE} -m pybind11_stubgen --numpy-array-use-type-var + --ignore-unresolved-names + 'numpy.float64|numpy.ndarray|scipy.sparse.csc_matrix' --exit-code $<TARGET_FILE_BASE_NAME:${target}> -o $<TARGET_FILE_DIR:${target}>-stubs COMMAND diff --git a/jormungandr/cpp/autodiff/BindGradient.cpp b/jormungandr/cpp/autodiff/BindGradient.cpp index 6a5af676..36eb1297 100644 --- a/jormungandr/cpp/autodiff/BindGradient.cpp +++ b/jormungandr/cpp/autodiff/BindGradient.cpp @@ -11,7 +11,7 @@ namespace py = pybind11; namespace sleipnir { void BindGradient(py::class_<Gradient>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<Variable, Variable>(), "variable"_a, "wrt"_a, DOC(sleipnir, Gradient, Gradient)); diff --git a/jormungandr/cpp/autodiff/BindHessian.cpp b/jormungandr/cpp/autodiff/BindHessian.cpp index 7514cedb..b740711d 100644 --- a/jormungandr/cpp/autodiff/BindHessian.cpp +++ b/jormungandr/cpp/autodiff/BindHessian.cpp @@ -11,7 +11,7 @@ namespace py = pybind11; namespace sleipnir { void BindHessian(py::class_<Hessian>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<Variable, VariableMatrix>(), "variable"_a, "wrt"_a, DOC(sleipnir, Hessian, Hessian)); diff --git a/jormungandr/cpp/autodiff/BindJacobian.cpp b/jormungandr/cpp/autodiff/BindJacobian.cpp index 6ce7f782..02c15f3f 100644 --- a/jormungandr/cpp/autodiff/BindJacobian.cpp +++ b/jormungandr/cpp/autodiff/BindJacobian.cpp @@ -11,7 +11,7 @@ namespace py = pybind11; namespace sleipnir { void BindJacobian(py::class_<Jacobian>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<VariableMatrix, VariableMatrix>(), "variables"_a, "wrt"_a, DOC(sleipnir, Jacobian, Jacobian)); diff --git a/jormungandr/cpp/autodiff/BindVariable.cpp b/jormungandr/cpp/autodiff/BindVariable.cpp index 86707a8b..3fd677df 100644 --- a/jormungandr/cpp/autodiff/BindVariable.cpp +++ b/jormungandr/cpp/autodiff/BindVariable.cpp @@ -23,7 +23,7 @@ PYBIND11_WARNING_DISABLE_CLANG("-Wself-assign-overloaded") namespace sleipnir { void BindVariable(py::module_& autodiff, py::class_<Variable>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<>(), DOC(sleipnir, Variable, Variable)); cls.def(py::init<double>(), "value"_a, DOC(sleipnir, Variable, Variable, 2)); diff --git a/jormungandr/cpp/autodiff/BindVariableBlock.cpp b/jormungandr/cpp/autodiff/BindVariableBlock.cpp index bc4c33ab..eac8823a 100644 --- a/jormungandr/cpp/autodiff/BindVariableBlock.cpp +++ b/jormungandr/cpp/autodiff/BindVariableBlock.cpp @@ -19,7 +19,7 @@ namespace sleipnir { void BindVariableBlock(py::module_& autodiff, py::class_<VariableBlock<VariableMatrix>>& cls) { - using namespace pybind11::literals; + using namespace py::literals; // VariableBlock-VariableMatrix overloads cls.def(py::self * VariableMatrix(), "rhs"_a); diff --git a/jormungandr/cpp/autodiff/BindVariableMatrix.cpp b/jormungandr/cpp/autodiff/BindVariableMatrix.cpp index 4791e7f6..810bc00c 100644 --- a/jormungandr/cpp/autodiff/BindVariableMatrix.cpp +++ b/jormungandr/cpp/autodiff/BindVariableMatrix.cpp @@ -19,7 +19,7 @@ namespace sleipnir { void BindVariableMatrix(py::module_& autodiff, py::class_<VariableMatrix>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<>(), DOC(sleipnir, VariableMatrix, VariableMatrix)); cls.def(py::init<int>(), "rows"_a, diff --git a/jormungandr/cpp/optimization/BindOptimizationProblem.cpp b/jormungandr/cpp/optimization/BindOptimizationProblem.cpp index a22207dd..29e4284a 100644 --- a/jormungandr/cpp/optimization/BindOptimizationProblem.cpp +++ b/jormungandr/cpp/optimization/BindOptimizationProblem.cpp @@ -15,7 +15,7 @@ namespace py = pybind11; namespace sleipnir { void BindOptimizationProblem(py::class_<OptimizationProblem>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<>(), DOC(sleipnir, OptimizationProblem, OptimizationProblem)); diff --git a/jormungandr/cpp/optimization/BindSolverStatus.cpp b/jormungandr/cpp/optimization/BindSolverStatus.cpp index 1b09dfdb..292d6332 100644 --- a/jormungandr/cpp/optimization/BindSolverStatus.cpp +++ b/jormungandr/cpp/optimization/BindSolverStatus.cpp @@ -10,15 +10,20 @@ namespace py = pybind11; namespace sleipnir { void BindSolverStatus(py::class_<SolverStatus>& cls) { - using namespace pybind11::literals; + using namespace py::literals; cls.def(py::init<>()); cls.def(py::init<ExpressionType, ExpressionType, ExpressionType, SolverExitCondition, double>(), - "cost_function_type"_a = ExpressionType::kNone, - "equality_constraint_type"_a = ExpressionType::kNone, - "inequality_constraint_type"_a = ExpressionType::kNone, - "exit_condition"_a = SolverExitCondition::kSuccess, "cost"_a = 0.0); + py::arg_v("cost_function_type", ExpressionType::kNone, + "ExpressionType.NONE"), + py::arg_v("equality_constraint_type", ExpressionType::kNone, + "ExpressionType.NONE"), + py::arg_v("inequality_constraint_type", ExpressionType::kNone, + "ExpressionType.NONE"), + py::arg_v("exit_condition", SolverExitCondition::kSuccess, + "SolverExitCondition.SUCCESS"), + "cost"_a = 0.0); cls.def_readwrite("cost_function_type", &SolverStatus::costFunctionType, DOC(sleipnir, SolverStatus, costFunctionType)); cls.def_readwrite("equality_constraint_type",