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¶
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"]