moleculekit icon indicating copy to clipboard operation
moleculekit copied to clipboard

Conda package contains `.h` and `.cpp`

Open raimis opened this issue 2 years ago • 7 comments

Conda package contains .h and .cpp files. As the package doesn't have a C++ API, there is no reason for them to exist.

$ find $CONDA_PREFIX/lib/python3.10/site-packages/moleculekit -name "*.h"
./lib/python3.10/site-packages/moleculekit/xtc_utils/include/xdrfile.h
./lib/python3.10/site-packages/moleculekit/xtc_utils/include/xdrfile_xtc.h
./lib/python3.10/site-packages/moleculekit/xtc_utils/include/xtc.h
./lib/python3.10/site-packages/moleculekit/tmalign/include/TMAlign.h
$ find $CONDA_PREFIX/lib/python3.10/site-packages/moleculekit -name "*.cpp"
./lib/python3.10/site-packages/moleculekit/atomselect_utils/atomselect_utils.cpp
./lib/python3.10/site-packages/moleculekit/occupancy_utils/occupancy_utils.cpp
./lib/python3.10/site-packages/moleculekit/xtc_utils/xtc.cpp
./lib/python3.10/site-packages/moleculekit/xtc_utils/src/xdrfile_xtc.cpp
./lib/python3.10/site-packages/moleculekit/xtc_utils/src/xdrfile.cpp
./lib/python3.10/site-packages/moleculekit/xtc_utils/src/xtc.cpp
./lib/python3.10/site-packages/moleculekit/interactions/sigmahole/sigmahole.cpp
./lib/python3.10/site-packages/moleculekit/interactions/cationpi/cationpi.cpp
./lib/python3.10/site-packages/moleculekit/interactions/pipi/pipi.cpp
./lib/python3.10/site-packages/moleculekit/interactions/hbonds/hbonds.cpp
./lib/python3.10/site-packages/moleculekit/bondguesser_utils/bondguesser_utils.cpp
./lib/python3.10/site-packages/moleculekit/wrapping/wrapping.cpp
./lib/python3.10/site-packages/moleculekit/distance_utils/distance_utils.cpp
./lib/python3.10/site-packages/moleculekit/tmalign/tmalign_util.cpp
./lib/python3.10/site-packages/moleculekit/tmalign/src/TMAlign.cpp

raimis avatar Dec 23 '22 14:12 raimis

If you install moleculekit through pip it compiles them during installation on your machine. I guess I could remove them from the conda releases but I don't believe they bother much being around.

stefdoerr avatar Dec 23 '22 14:12 stefdoerr

Just to keep things clean. Garbage tends to accumulate over time.

raimis avatar Dec 23 '22 15:12 raimis

The issue is that conda-build uses pip install. They go through the same procedure to release conda package and pip package. So I'm not sure it's possible without some ugly hacks

stefdoerr avatar Dec 23 '22 15:12 stefdoerr

(htmd3.10)  sdoerr@inspiron  ~/miniconda3/envs/htmd3.10/lib/python3.10/site-packages/deeptime  find . -name "*.cpp"
./covariance/util/covar_c/covartools.cpp
./plots/src/plots_module.cpp
./numeric/src/numeric_module.cpp
./basis/src/basis_bindings.cpp
./markov/src/markov_module.cpp
./markov/msm/tram/_bindings/src/tram_module.cpp
./markov/hmm/src/hmm_module.cpp
./markov/tools/estimation/dense/src/mle_module.cpp
./markov/tools/estimation/sparse/src/mle_sparse_module.cpp
./data/src/data_module.cpp
./clustering/src/clustering_module.cpp

Deeptime also keeps cpp files in the installation, probably for the same reasons

stefdoerr avatar Dec 23 '22 15:12 stefdoerr

Numpy as well

(htmd3.10)  sdoerr@inspiron  ~/miniconda3/envs/htmd3.10/lib/python3.10/site-packages/numpy  find . -name "*.c"  
./f2py/src/fortranobject.c
./f2py/tests/src/array_from_pyobj/wrapmodule.c
./core/tests/examples/limited_api/limited_api.c
./distutils/checks/cpu_fma4.c
./distutils/checks/cpu_sse3.c

I don't believe it's something that needs to happen and would probably just convolute release procedure unnecessarily.

stefdoerr avatar Dec 23 '22 15:12 stefdoerr

Actually I see now numpy does some cleaning of C files in the anaconda package (although it keeps a few around). I'll take a look how they do it

stefdoerr avatar Dec 23 '22 15:12 stefdoerr

NumPy has C API. So some header files are part of it.

raimis avatar Dec 23 '22 15:12 raimis