Dependencies and compatibility

ERLabPy supports Python 3.11 and later. Qt5 bindings are not supported. Interactive tools require PyQt6 or PySide6 and import the selected binding through qtpy.

Core dependencies

Package

Used for

numpy

Array operations and linear algebra

scipy

Signal, image, and numerical routines

xarray

Labeled multidimensional data

numba

Just-in-time compilation

matplotlib

Static plotting

lmfit

Optimization and curve fitting

Optional dependencies

The package metadata is the source of truth for dependency versions and optional groups:

dependencies = [
  "dask[distributed]>=2024.4.1",
  "findiff>=0.12.0",
  "h5netcdf>=1.7.1",
  "hdf5plugin>=6.0.0",
  "igor2>=0.5.13",
  "igorwriter>=0.6.1",
  "ipykernel>=6.29.5,!=7.2.0",
  "joblib>=1.3.2",
  "lazy-loader>=0.4",
  "lmfit>=1.3.2",
  "matplotlib>=3.11.0",
  "numba>=0.61.0,<0.63.0; sys_platform == 'darwin' and platform_machine == 'x86_64'",
  "numba>=0.63.0; sys_platform != 'darwin' or platform_machine != 'x86_64'",
  "numexpr>=2.11.0",
  "numpy>=1.26.0",
  "packaging>=24.0",
  "pickleshare>=0.7.5",
  "psutil>=7.2.2",
  "pydantic>=2.11.7",
  "pygments>=2.11.0",
  "pyperclip>=1.8.2",
  "pyqtgraph>=0.14.0",
  "pyzmq>=27.0.2",
  "qtawesome>=1.3.1",
  "qtconsole>=5.6.0",
  "qtpy>=2.4.1",
  "scipy>=1.15.0",
  "tqdm>=4.66.2",
  "varname>=0.13.0",
  "xarray>=2024.10.0",
  "xarray-lmfit>=0.6.0",
  "xraydb>=4.5.8",
]
[project.optional-dependencies]
complete = ["erlab[viz,io,perf,misc]"]
io = [
  "astropy>=5.1.1",
  "nexusformat>=1.0.6",
  "openpyxl>=3.1.5",
  "requests>=2.32.0",
  "zarr>=3.1.2",
  "pillow>=10.0.0",
]
misc = ["iminuit>=2.25.2,!=2.31.2", "csaps>=1.1.0", "numdifftools>=0.9.42"]
perf = ["numbagg>=0.8.1"]
viz = ["hvplot>=0.11.0,!=0.12.0", "ipywidgets", "seaborn>=0.13.2"]