config-i1 / smooth

The set of functions used for time series analysis and in forecasting.
89 stars 19 forks source link

[python] add python library with pybind11 and carma #206

Closed ltsaprounis closed 11 months ago

ltsaprounis commented 11 months ago

Adding the main "plumbing" infrastructure for python C++ bindings using pybind11 and carma (equivalent to RcppArmadillo).

The following files/folders are examples only and will removed later:

The "plumbing" is based on this repo: https://github.com/ltsaprounis/python-cpp-experiments

The python package is built using scikit-build and for now it requires Armadillo to be installed beforehand. Carma is installed as a git submodule and is specified to the latest release tag v.0.6.7. For more info on git submodules check this article -> https://git-scm.com/book/en/v2/Git-Tools-Submodules

The main blocker I see for now is that we need to be able to compile all the libraries using normal armadillo as opposed to RcppArmadillo for the python package. To begin with we can also make copies of the relevant files and replace RcppArmadillo with Armadillo, but this will not be a sustainable solution since we'll end up having the same C++ code everywhere twice. It shouldn't be that hard to refactor the code a bit and prevent that (I think).

ltsaprounis commented 11 months ago

FYI @FilTheo