Installation#
Prerequisites#
csky can be installed using standard pip or uv (uv support is experimental). Below we discuss both options for setting up your environment.
On macOS: install Boost before getting started:
brew install boost
Using pip#
Make sure you have a reasonable installation of Python available. For example, if you are working on a Cobalt and using cvmfs,
which python3
should return something like::/cvmfs/icecube.opensciencegrid.org/py3-v4.3.0/RHEL_7_x86_64/bin/python3
Navigate someplace you would like to store your csky venv, and create it with
venv
::mkdir -p ~/venvs cd ~/venvs python3 -m venv csky
Activate the venv and upgrade your package management::
cd ~/venvs source csky/bin/activate python -m pip install --upgrade pip setuptools wheel
Using uv (experimental)#
Install uv by following the official instructions.
Navigate someplace you would like to store your csky venv, and create it with
uv
. If you are working on a Cobalt and using cvmfs, make sure to pass the--python-preference=system
::mkdir -p ~/venvs cd ~/venvs uv venv csky --python-preference=system
When following the rest of the instructions below, replace each usage of
pip
withuv pip
.
Installing csky#
csky can be installed as a specific release directly from GitHub, or in an editable form in a local clone suitable for development. Below we discuss both options for installing csky.
Release from GitHub#
Activate the venv::
source ~/venvs/csky/bin/activate
Install a specific release::
pip install "git+ssh://git@github.com/icecube/csky.git@v1.1.14e"
Editable codebase#
Activate the venv::
source ~/venvs/bin/activate
Navigate someplace you would like to store your csky venv, and clone the repository::
mkdir ~/src cd ~/src git clone git@github.com:icecube/csky.git
Install csky::
pip install --editable ./csky
Configuration#
Before getting started with using csky, you may want to set the following environment variables (in
~/.zprofile
or such, check your shell documentation…). Note that these settings are not
necessary on UW machines with access to /data/ana
, such as the cobalts.
# where you want your mirror of /data/ana/analyses or analogous repository
export CSKY_DATA_ANALYSES_DIR="/path/to/local/mirror"
# username for rsync'ing data (leave unset to use wget instead)
export CSKY_REMOTE_USER="[cobalt username]"
Interactive Usage#
For interactive usage and development, you will probably want to use Jupyter or IPython. You may also want to install optional dependencies such as Pandas and Seaborn. These can be setup as follows:
Activate the venv and install some packages::
source ~/venvs/csky/bin/activate pip install --upgrade ipykernel pandas seaborn
Install the ipykernel for use with Jupyter:
python -m ipykernel install –user –name=csky –display-name=’Python 3 / csky’
Updating csky#
If you installed a csky release directly from GitHub, you can simply repeat the Release from GitHub steps above, but selecting a newer release tag.
If you installed an editable codebase, use git to update your local clone::
cd ~/src/csky
git pull --ff
The --ff
option ensures that changes will only be applied if there are no conflicts with edits
you made to your local clone.
If there are conflicts, you might have some luck with git stash
. Otherwise you might ask for
help in #csky or #software on Slack.
If you see a .cpp
file in an incoming update (or if you modify the C++ code yourself), you’ll
need to repeat the uv-pip-install (or pip-install) step in order to recompile the C++ extension.
Compatibility#
csky may still be compatible with Python 2.7, but it is nevertheless recommended that you upgrade to Python 3 as soon as possible. In particular, note that csky has been tested with
eval `/cvmfs/icecube.opensciencegrid.org/py3-v4.3.0/setup.sh`