The below sections will walk through how to set up a development environment, make changes to the code, and test that they work. See the How to contribute section for more information on getting started and contributor expectations. Additional information for developer’s can be found at the pages listed below.
Satpy is now Python 3 only and it is no longer needed to support Python 2.
setup.py for the current Python versions any new code needs
See the Installation Instructions section for basic installation instructions. When it comes time to install Satpy it should be installed from a clone of the git repository and in development mode so that local file changes are automatically reflected in the python environment. We highly recommend making a separate conda environment or virtualenv for development. For example, you can do this using conda:
conda create -n satpy-dev python=3.8 conda activate satpy-dev
This will create a new environment called “satpy-dev” with Python 3.8 installed. The second command will activate the environment so any future conda, python, or pip commands will use this new environment.
If you plan on contributing back to the project you should first fork the repository and clone your fork. The package can then be installed in development mode by doing:
conda install --only-deps satpy pip install -e .
The first command will install all dependencies needed by the Satpy conda-forge package, but won’t actually install Satpy. The second command should be run from the root of the cloned Satpy repository (where the setup.py is) and will install the actual package.
You can now edit the python files in your cloned repository and have them immediately reflected in your conda environment.
Satpy’s documentation is built using Sphinx. All documentation lives in the
doc/ directory of the project repository. After editing the source files
there the documentation can be generated locally:
cd doc make html
The output of the make command should be checked for warnings and errors. If code has been changed (new functions or classes) then the API documentation files should be regenerated before running the above command:
sphinx-apidoc -f -T -o source/api ../satpy ../satpy/tests