Installation

Quick guide for installing pyseobnr.

Install pyseobnr from source

To install pyseobnr you will need a few non-python dependencies, at a minimum:

  • python >=3.9, <3.12

  • gcc

  • gsl

  • swig

All of these are easily installable with conda (or available in standard conda envs provided by IGWN), or your favorite package manager.

Next clone the pyseobnr repository and install via pip . We recommend using a clean environment (either a venv or a conda environment).

(.venv) $ git clone https://git.ligo.org/waveforms/software/pyseobnr.git
(.venv) $ cd pyseobnr
(.venv) $ pip install -U pip wheel setuptools numpy
(.venv) $ pip install .

Tip

If you are actively developing the code, consider using pip install -e . to avoid having to reinstall after every change to the code.

Installing optional dependencies to run checks

If one wants to run sanity checks in pyseobnr/auxiliary/sanity_checks, additional dependencies must be installed. This can be done simply by running

(.venv) $ pip install ".[checks]"

The waveform_tools package located here has to be installed separately with the command

(.venv) $ pip install git+https://bitbucket.org/sergei_ossokine/waveform_tools

Installing optional dependencies to build documentation

To build documentation, install the relevant dependencies with

(.venv) $ pip install ".[docs]"

Then the documentation can be built via

(.venv) $ cd docs
(.venv) $ make html

Developments and tests

A tox environment is provided for easier development on variations of python versions.

(.venv) $ pip install tox
(.venv) $ tox -l            # lists the environments
(.venv) $ CI_TEST_DYNAMIC_REGRESSIONS=1 \
          tox -e py311      # runs additional tests
(.venv) $ tox -e py311      # runs the tests for python 3.11
(.venv) $ tox -e docs       # builds the documentation

Platform specific instructions

pygsl and pygsl-lite

gsl is a library that gets installed on your operating system (with apt, brew etc) and the python package pygsl links to it.

It may happen that a binary version of pygsl was built with another version of the gsl system library: in that case your installation will not work.

It is possible to force the installation of this library in order to use your system installed version by either this command line:

(.venv) $ GSL_HOME=/path/to/your/GSL/HOME pip install --force-reinstall pygsl-lite

which becomes, if installed with brew:

(.venv) $ GSL_HOME=$(brew --prefix gsl) pip install --force-reinstall pygsl-lite

or by this command line:

(.venv) $ pip install \
    --use-pep517 \
    --config-setting="--global-option=build_ext" \
    --config-setting="--build-option=-I$(brew --prefix gsl)/include/" \
    --config-setting="--build-option=-L$(brew --prefix gsl)/lib/" \
    --force-reinstall \
    --no-binary pygsl_lite \
    --no-cache-dir \
    pygsl_lite