Skip to main content

Wrappers for using LHCb CVMFS conda installations

Project description

LHCb Conda Wrappers

Wrapper scripts for providing access to conda environments which are installed on CVMFS.

Standard Usage

The main environment provided is named default and aims to provide most software tools that will be needed for analaysis that is performed outside of the standard LHCb software stack. This includes a recent version of Python 3, ROOT, Snakemake, jupyterlab, matplotlib, scikit-learn, tensorflow and many more.

Basic usage

Environments can be activated using the lb-conda command which works similarly to lb-run. To launch a bash shell inside the default environment run:

$ lb-conda default bash
[bash-5.0]$ python --version
Python 3.7.6
[bash-5.0]$ root --version
ROOT Version: 6.20/04
Built for linuxx8664gcc on Apr 20 2020, 15:03:00
From @

Alternative commands can be ran directly using:

$ lb-conda default python -c 'import math; print(math.sqrt(2))'
1.4142135623730951

Including texlive

A fully featured texlive installation is not included in any of the environments due to it's large size however one can be added by passing the --texlive argument.

$ lb-conda --texlive default latex --version
pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020)
kpathsea version 6.3.2
Copyright 2020 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.37; using libpng 1.6.37
Compiled with zlib 1.2.11; using zlib 1.2.11
Compiled with xpdf version 4.02

Versioning

Occasionally new versions of the default environment will be made to add new packages and generally keep it up-to-date. If you wish to use an older version you can list the available versions using:

$ lb-conda --list default
2019-12-26
2020-05-14

The 2020-05-14 version can explicitly chosen using:

$ lb-conda default/2020-05-14 bash

Customising

As the conda environment used is installed on the read-only CVMFS filesystem the usual pip install and conda install commands will not work. Two options are provided to allow environments to be customised.

Installing additional python packages

This is the preferred option as most data will be kept on CVMFS and works by creating a virtual environment on top of the CVMFS installed environment. It is however limited to only allowing pip installed Python packages and locally built software.

To create the virtual environment in a local directory ("my-local-directory") run

$ lb-conda-dev virtual-env default my-local-directory

The environment can now be used similarly to lb-conda default using the run script:

$ my-local-directory/run bash

To upgrade the uproot Python package run:

$ my-local-directory/run bahs
[bash-5.0]$ python -c 'import uproot; print(uproot.__version__)'
3.11.6  # <- Original version
[bash-5.0]$ pip install --upgrade uproot
Collecting uproot
# Truncated output
Successfully installed uproot-3.11.7
[bash-5.0]$ python -c 'import uproot; print(uproot.__version__)'
3.11.7  # <- New version

To install a locally compiled application in the virtual environment you should set the install prefix to be the absolute path to your local directory. How this is done will depend on the build system used by the specific application.

Fully customising an environment

This option is discouraged, especially when running on AFS/EOS as it will result in a large amount of data and many small files being copied to your local directory. It does however allow you to completely clone the environment and then make any modifications.

TODO: This is not currently documented...

Advanced usage

Using non-default environments

To see the full list of available environments run:

$ lb-conda --list
B2OC/b2dstdspi-gpu
B2OC/b2dstdspi
Charm/D02KsHH
Semilep/rdst
default
DPA/analysis-productions-certification
DPA/analysis-productions

A custom environment can then be chosen using it's name:

$ lb-conda Charm/D02KsHH python --version
Python 3.6.5 :: Anaconda, Inc.

Suggesting new or upgraded packages in the default environment

Please open an issue here explaining what should be added/upgraded and why.

Adding new environments to CVMFS

This is not yet widely available available. If you have a strong reason to add an environment please open an issue here to explaing what your requirements are.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LbCondaWrappers-0.1.1.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

LbCondaWrappers-0.1.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file LbCondaWrappers-0.1.1.tar.gz.

File metadata

  • Download URL: LbCondaWrappers-0.1.1.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for LbCondaWrappers-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2628c5fa6bf0259b14f4a1720b1f010a5760a7b19a501a6251d2be88244d393b
MD5 b79032a0e49ba2b305871104d864ed5b
BLAKE2b-256 f3923adc0f78b926c0b942f838166ee2cfffe1f1731b1fd475ac20ffa47420a5

See more details on using hashes here.

File details

Details for the file LbCondaWrappers-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: LbCondaWrappers-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for LbCondaWrappers-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 32d523e67be234902ee9a32ed9c9fa72835f0163e0a99974ad4daecfcb218b7c
MD5 29b4620ca8e9e33a25c0cb38924b849a
BLAKE2b-256 47ad1d27d2ff6f0aee633d479c1ecd5f16bc69d66f04dcb5e2439c8ece6a9ea1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page