This is our current python-requirements.txt file:
# Core dependencies
./core[workflows]
linkml
oaklib
semsimian
# Secondary dependencies
PyGithub
curies
funowl
jsonschema2md
jupyter
kgx
matplotlib
matplotlib_venn
networkx
numpy
ontobio
ontodev-cogs
ontodev-gizmos
pandas
plotly
pyspellchecker
rdflib
requests
seaborn
tabulate
upsetplot
jinjanator
It has a few problems:
(1) The comments are misleading. The only “core” dependency is core[workflows] – all Python packages that should be part of the core (i.e. part of ODKLite) MUST be explicitly listed as dependencies within the core package, so that core is the only Python module that we should have to install when building ODKLite. If I recall correctly (@matentzn you can correct me if I’m wrong here), what was meant with those comments is that the “core dependencies” are those for which we always want the very latest version (and thus, for which we should pay close attention when updating the constraints file, to check that they are not downgraded), whereas the “secondary dependencies” are those for which we don’t really care whether we got the last version or not.
(2) Some of those dependencies explicitly listed here are already dependencies (direct or indirect) of the core package (e.g. linkml, oaklib, pandas) and therefore could be removed here (not strictly necessary of course, but could maybe avoid confusion).
(3) Some Python packages that we actually want are not explicitly listed, e.g. linkml-map (which is currently included as a result of some dependency chains, but we should not rely on that).
This is our current
python-requirements.txtfile:It has a few problems:
(1) The comments are misleading. The only “core” dependency is
core[workflows]– all Python packages that should be part of the core (i.e. part of ODKLite) MUST be explicitly listed as dependencies within thecorepackage, so thatcoreis the only Python module that we should have to install when building ODKLite. If I recall correctly (@matentzn you can correct me if I’m wrong here), what was meant with those comments is that the “core dependencies” are those for which we always want the very latest version (and thus, for which we should pay close attention when updating the constraints file, to check that they are not downgraded), whereas the “secondary dependencies” are those for which we don’t really care whether we got the last version or not.(2) Some of those dependencies explicitly listed here are already dependencies (direct or indirect) of the
corepackage (e.g.linkml,oaklib,pandas) and therefore could be removed here (not strictly necessary of course, but could maybe avoid confusion).(3) Some Python packages that we actually want are not explicitly listed, e.g.
linkml-map(which is currently included as a result of some dependency chains, but we should not rely on that).