
The Docker base image to use for a Python run
Source:R/reproducibility_check_python_docker.R
dot-repro_docker_default_image_py.RdUnlike R's .repro_docker_image_for() (which can match the paper's own
DECLARED R version via rocker/r-ver:<version>), there is no equivalent
Python version-pin detection built yet (code_check's
.code_version_pin_check() is R-specific — an renv.lock/sessionInfo()
concept, with no Python counterpart reading a runtime.txt/python_requires
pin), so this always returns the one pre-built image.
Value
the pre-built Python sandbox image reference,
"ghcr.io/scienceverse/metacheck_py_small:latest" (see
https://github.com/scienceverse/metacheck_docker_reproducibility for the
Dockerfile/package list/build instructions — the same repo that builds
the R images)
Details
Defaults to the SMALL image (45 packages seen in >=2 files of a 486-file
corpus scan: numpy/pandas/scipy/matplotlib/seaborn/scikit-learn/
statsmodels and the rest of the common data-science/psychology-research
stack) rather than the large one — same "smaller, more conservative
default" choice the R side's README documents for
metacheck_r_small/metacheck_r_large. The large image
(metacheck_py_large, ~8.3GB) additionally bundles CPU-only torch and
tensorflow (deliberately excluded from the small image despite being
common in the scan — measured at ~700MB and ~450MB respectively, on top
of several hundred MB more of their own transitive dependencies) plus ~70
more less-common packages. reproducibility_check() always uses the small
image, and a paper needing an uncommon package installs it at run time
(slower, needs network, same tradeoff the R side's install phase already
makes for an uncommon CRAN package). The large image can only be used by
calling repro_install_deps_py_docker() and repro_run_scripts_py_docker()
directly, with image = "ghcr.io/scienceverse/metacheck_py_large:latest".
psychopy was deliberately EXCLUDED from both images despite appearing in
18 of 486 scanned files (tied with statsmodels for the most common
package after the core data-science set): it is a live-experiment
stimulus-presentation library (GUI display, audio/video playback, serial/
parallel port hardware I/O), and reproducibility_check only ever runs
ANALYSIS code against already-collected data — a paper's psychopy-based
experiment SCRIPT is not something this module runs, let alone
"reproduces" (it requires a live display/participant). Its own install
pulls in PyQt6 (261MB), ffmpeg/moviepy/pyglet (another ~250MB+), and
more — confirmed as a real, measured ~700MB+ cost for a package this
module's own execution path has no legitimate use for.
The option metacheck.docker_image_py names another image, such as
"ghcr.io/scienceverse/metacheck_py_large:latest", which adds about 70
packages and torch and tensorflow for ordinary processors; the metacheck
server uses that one.