Installing from source¶
You only need this to work on the checker — to test a change that has not been released yet, or to develop one. For checking a submission, install from conda-forge instead (see Installation).
Create the conda environment and install the package into it:
conda env create -f isschecker_env.yml
conda activate isschecker
python -m pip install --no-deps --no-build-isolation .
Note that isschecker_env.yml installs the dependencies but not the checker
itself, so the environment it creates is not the one conda-forge gives you: an
isschecker environment made this way holds no isschecker package until the
pip install runs. If you already have an environment of that name from
conda-forge, conda env create will refuse to create another over it; give
this one a different name with
conda env create -n isschecker-dev -f isschecker_env.yml and keep both.
Warning
Use those pip flags. All dependencies come from conda-forge, and a plain
pip install . can silently replace them with PyPI wheels — netCDF4 in
particular bundles its own copy of the netCDF C library — which is exactly how
two people end up with different results from the same files. --no-deps
keeps pip from resolving anything, and --no-build-isolation builds with the
environment’s setuptools instead of downloading one from PyPI. Add
--no-index if you want any accidental network fetch to fail loudly rather
than succeed quietly.
For development, add -e for an editable install:
python -m pip install --no-deps --no-build-isolation -e .
(pytest and the documentation packages come from the conda environment, so
neither the [test] nor the [docs] extra is needed; see
Building the documentation.) An editable install is worth having while developing,
because the tests import the installed package: after a non-editable install,
edits to the source tree do not affect a test run until you reinstall.
If a rebuild ever behaves as though it were still running older code, delete
the build/ directory: setuptools reuses its contents, so files that have
since been renamed or removed can otherwise end up back in the installed
package.
Dependencies¶
Installing from conda-forge pulls these in for you, and you can skip this section. It matters when you install from source, where the environment is yours to create.
Versions are constrained in isschecker_env.yml; the same constraints appear
in pyproject.toml. The suite is tested at both ends of every range, so
results should agree across machines and operating systems within these bounds.
Package |
Constraint |
Why bounded |
|---|---|---|
|
|
|
|
|
what recent |
|
|
reads the criteria CSVs; 3.0 changed the default string dtype |
|
|
|
|
|
date arithmetic in the start/end/duration checks |
|
|
|
|
|
progress bar only; never affects the log |
If you report a problem with the checker, please include the output of
conda list for your isschecker environment.