Skip to main content

Fast time-frequency gravitational-wave response package for LISA data analysis with a JAX backend

Project description

jaxtfwaves

JAXTFwaves is the sibling project of tfwaves that is using JAX as backend.

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:

pip install jaxtfwaves

To install a specific plugin, use its named extra:

pip install "jaxtfwaves[sobhbwaveform]"   # SOBHB waveforms via ripplegw
# pip install "jaxtfwaves[emriwaveform]"  # EMRI waveforms (coming soon)

Or install all available plugins at once:

pip install "jaxtfwaves[plugins]"

Contributing

Development environment

We use uv for dependency management. First clone the repository on your machine and go in the directory:

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

Create the lockfile and synchronize dependencies (including development tools):

uv sync --all-extras --group dev

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

uv run pre-commit install

Then you can run any script using

uv run python your_script.py

Lint and format checks are handled with Ruff:

uv run ruff check src tests
uv run ruff format --check src tests

Alternatively, you can activate the virtual environment by running

source .venv/bin/activate

and deactivate it by just running

deactivate

Alternative local installation

As an alternative to uv-managed environments, you can install the package in development mode when you are in the jaxtfwaves directory:

pip install -e .            # core only
pip install -e ".[plugins]" # core + plugins

Publishing to PyPI

  1. Build the package (from the repo root):

    uv build
    
  2. Check the artifacts:

    uv run twine check dist/*
    
  3. Upload to TestPyPI first:

    uv publish --publish-url https://test.pypi.org/legacy/ --token pypi-YOUR_TEST_TOKEN
    

    Verify the install:

    pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple jaxtfwaves
    pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple "jaxtfwaves[plugins]"
    
  4. Upload to PyPI:

    uv publish --token pypi-YOUR_TOKEN
    
  5. Tag the release:

    git tag v0.1.0
    git push origin v0.1.0
    

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

jaxtfwaves-0.2.0.tar.gz (10.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jaxtfwaves-0.2.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file jaxtfwaves-0.2.0.tar.gz.

File metadata

  • Download URL: jaxtfwaves-0.2.0.tar.gz
  • Upload date:
  • Size: 10.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for jaxtfwaves-0.2.0.tar.gz
Algorithm Hash digest
SHA256 925ea7937dab32ba7280b021d11405ef312b6639383603fcfd2384af1459efce
MD5 37b7fccc1edebf1e9df51de8480bb8d7
BLAKE2b-256 94d8c66a3d1354bc46b9393c7c13b089baf24465cda53433bd7b362b17e97e6f

See more details on using hashes here.

File details

Details for the file jaxtfwaves-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: jaxtfwaves-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for jaxtfwaves-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a006cc74db706a024b254b43c9d837439ed44a81495f9613b9d8d048822fbda0
MD5 fa1df19daf4dd257e0f483e2c4fd2cf6
BLAKE2b-256 bbf7f0857a39681d9dc2d6eaa5536ccfbaace9c2e0692acf10b8b74f4947fa1e

See more details on using hashes here.

Supported by

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