Metadata-Version: 2.4
Name: tfwaves
Version: 1.0.0
Author-email: Quentin Baghi <quentin.baghi@protonmail.com>, Gael Servignat <servignat@apc.in2p3.fr>, Saptarshi Ghosh <saptarshi.ghosh@apc.in2p3.fr>
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: h5py>=3.1
Requires-Dist: lisaconstants
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: docs
Requires-Dist: jupyter-book<2.0.0,>=1.0.4; extra == 'docs'
Provides-Extra: emriwaveform
Requires-Dist: fastemriwaveforms==2.0.0; extra == 'emriwaveform'
Provides-Extra: plugins
Requires-Dist: fastemriwaveforms==2.0.0; extra == 'plugins'
Requires-Dist: lisabeta==1.2.0; extra == 'plugins'
Provides-Extra: sobhbwaveform
Requires-Dist: lisabeta==1.2.0; extra == 'sobhbwaveform'
Description-Content-Type: text/markdown

# tfwaves
TFWaves is a python package to compute fast time-frequency gravitational-wave response for LISA data analysis. It takes as imput phase and amplitude functions of the gravitational strain in the pseudo-inertial solar system barycenter frame, and outputs time-delay interferometry responses in the time-frequency domain.

## Installation

The core package is available on PyPI:

```bash
pip install tfwaves
```

To install a specific plugin, use its named extra:

```bash
pip install "tfwaves[sobhbwaveform]"   # SOBHB waveforms via lisabeta
pip install "tfwaves[emriwaveform]"    # EMRI waveforms via FEW
```

Or install all available plugins at once:

```bash
pip install "tfwaves[plugins]"
```

## Contributing

### Development environment

We use [uv](https://docs.astral.sh/uv/) for dependency management.
First clone the repository on your machine and go in the directory:

```bash
git clone git@gitlab.in2p3.fr:lisa-apc/tfwaves.git
cd tfwaves
```

To install the dependencies and the project itself, run the following command:

```bash
uv sync --group dev
```

We recommend you install pre-commit hooks to detect errors before you even
commit.

```bash
uv run pre-commit install
```

Then you can run any script using 

```bash
uv run python your_script.py
```

Alternatively, you can activate the virtual environment by running

```bash
source .venv/bin/activate
```
and deactivate it by just running

```bash
deactivate
```

### Documentation

This repository includes a short Jupyter Book in `docs/`.

Install docs dependencies:

```bash
uv sync --dev --extra docs
```

Build the documentation:

```bash
jupyter-book build docs
```

Open `docs/_build/html/index.html` in a browser.

### Alternative local installation

You can also install the package in editable mode using pip when you are in the `tfwaves` directory:

```bash
pip install -e .                 # core only
pip install -e ".[sobhbwaveform]" # core + SOBHB plugin
pip install -e ".[emriwaveform]"  # core + EMRI plugin
pip install -e ".[plugins]"       # core + all plugins
```
