1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 corner,
12 equinox,
13 evosax,
14 jax,
15 jaxlib,
16 optax,
17 tqdm,
18
19 # checks
20 pytestCheckHook,
21}:
22
23buildPythonPackage rec {
24 pname = "flowmc";
25 version = "0.3.4";
26 pyproject = true;
27
28 disabled = pythonOlder "3.10";
29
30 src = fetchFromGitHub {
31 owner = "kazewong";
32 repo = "flowMC";
33 rev = "refs/tags/flowMC-${version}";
34 hash = "sha256-unvbNs0AOzW4OI+9y6KxoBC5yEjEz+q0PZblQLXCC/Y=";
35 };
36
37 build-system = [ setuptools ];
38
39 dependencies = [
40 corner
41 equinox
42 evosax
43 jax
44 jaxlib
45 optax
46 tqdm
47 ];
48
49 pythonImportsCheck = [ "flowMC" ];
50
51 nativeCheckInputs = [ pytestCheckHook ];
52
53 meta = {
54 description = "Normalizing-flow enhanced sampling package for probabilistic inference in Jax";
55 homepage = "https://github.com/kazewong/flowMC";
56 changelog = "https://github.com/kazewong/flowMC/releases/tag/flowMC-${version}";
57 license = lib.licenses.mit;
58 maintainers = with lib.maintainers; [ GaetanLepage ];
59 };
60}