1{
2 lib,
3 botorch,
4 buildPythonPackage,
5 fetchFromGitHub,
6 hypothesis,
7 ipywidgets,
8 jinja2,
9 jupyter,
10 mercurial,
11 pandas,
12 plotly,
13 pyfakefs,
14 pyre-extensions,
15 pytestCheckHook,
16 pythonOlder,
17 setuptools-scm,
18 setuptools,
19 sqlalchemy,
20 typeguard,
21 yappi,
22}:
23
24buildPythonPackage rec {
25 pname = "ax-platform";
26 version = "0.4.3";
27 pyproject = true;
28
29 disabled = pythonOlder "3.10";
30
31 src = fetchFromGitHub {
32 owner = "facebook";
33 repo = "ax";
34 rev = "refs/tags/${version}";
35 hash = "sha256-jmBjrtxqg4Iu3Qr0HRqjVfwURXzbJaGm+DBFNHYk/vA=";
36 };
37
38 env.ALLOW_BOTORCH_LATEST = "1";
39
40 build-system = [
41 setuptools
42 setuptools-scm
43 ];
44
45 dependencies = [
46 botorch
47 ipywidgets
48 jinja2
49 pandas
50 plotly
51 typeguard
52 pyre-extensions
53 ];
54
55 optional-dependencies = {
56 mysql = [ sqlalchemy ];
57 notebook = [ jupyter ];
58 };
59
60 nativeCheckInputs = [
61 hypothesis
62 mercurial
63 pyfakefs
64 pytestCheckHook
65 yappi
66 ] ++ lib.flatten (builtins.attrValues optional-dependencies);
67
68 disabledTestPaths = [
69 "ax/benchmark"
70 "ax/runners/tests/test_torchx.py"
71 # requires pyre_extensions
72 "ax/telemetry/tests"
73 "ax/core/tests/test_utils.py"
74 "ax/early_stopping/tests/test_strategies.py"
75 # broken with sqlalchemy 2
76 "ax/core/tests/test_experiment.py"
77 "ax/service/tests/test_ax_client.py"
78 "ax/service/tests/test_scheduler.py"
79 "ax/service/tests/test_with_db_settings_base.py"
80 "ax/storage"
81 ];
82
83 disabledTests = [
84 # exact comparison of floating points
85 "test_optimize_l0_homotopy"
86 # AssertionError: 5 != 2
87 "test_get_standard_plots_moo"
88 # AssertionError: Expected 'warning' to be called once. Called 3 times
89 "test_validate_kwarg_typing"
90 # uses torch.equal
91 "test_convert_observations"
92 ];
93
94 pythonImportsCheck = [ "ax" ];
95
96 meta = {
97 description = "Platform for understanding, managing, deploying, and automating adaptive experiments";
98 homepage = "https://ax.dev/";
99 changelog = "https://github.com/facebook/Ax/releases/tag/${version}";
100 license = lib.licenses.mit;
101 maintainers = with lib.maintainers; [ veprbl ];
102 };
103}