Skip to content

Making pyssht and healpy optional dependencies #224

@matt-graham

Description

@matt-graham

My understanding is the only place in the package code (as opposed to tests and notebooks) that healpy and pyssht are imported is

import pyssht
import healpy

with this module providing JAX wrappers around the transforms in these packages.

Installing healpy and/or pyssht can be problematic on some operating systems and platforms - for example there is currently no pre-built Windows wheels for either (and building package from source on Windows appears to fail from some attemps in a CI run in #210, and we have also had problems getting healpy installed on a MacOS12 / arm64 machine due to lack of a pre-built wheel being available and errors linking against dynamic libraries when using a package built from source.

To make s2fft installable on a wider range of platforms, it might therefore be a good idea to drop pyssht and healpy as required dependencies as instead have them as optional dependencies with the functions requiring them in s2fft/transforms/c_backend_spherical.py only made available when the relevant modules are installed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestwontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions