Acellera / moleculekit

MoleculeKit: Your favorite molecule manipulation kit
Other
198 stars 37 forks source link

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

Open raimis opened 1 year ago

raimis commented 1 year ago

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
stefdoerr commented 1 year ago

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.

raimis commented 1 year ago

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

stefdoerr commented 1 year ago

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 commented 1 year ago
(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 commented 1 year ago

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 commented 1 year ago

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

raimis commented 1 year ago

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