1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 botorch,
6 ipywidgets,
7 jinja2,
8 pandas,
9 plotly,
10 setuptools,
11 setuptools-scm,
12 typeguard,
13 wheel,
14 hypothesis,
15 mercurial,
16 pyfakefs,
17 pytestCheckHook,
18 yappi,
19 pyre-extensions,
20}:
21
22buildPythonPackage rec {
23 pname = "ax";
24 version = "0.4.0";
25 format = "pyproject";
26
27 src = fetchFromGitHub {
28 owner = "facebook";
29 repo = pname;
30 rev = "refs/tags/${version}";
31 hash = "sha256-dj6Gig8N4oLtcZLwPl4QDHG/FwA2nFBtYxSARnWiJJU=";
32 };
33
34 nativeBuildInputs = [
35 setuptools
36 setuptools-scm
37 wheel
38 ];
39
40 propagatedBuildInputs = [
41 botorch
42 ipywidgets
43 jinja2
44 pandas
45 plotly
46 typeguard
47 pyre-extensions
48 ];
49
50 checkInputs = [
51 hypothesis
52 mercurial
53 pyfakefs
54 pytestCheckHook
55 yappi
56 ];
57 pytestFlagsArray = [
58 "--ignore=ax/benchmark"
59 "--ignore=ax/runners/tests/test_torchx.py"
60 # requires pyre_extensions
61 "--ignore=ax/telemetry/tests"
62 "--ignore=ax/core/tests/test_utils.py"
63 "--ignore=ax/early_stopping/tests/test_strategies.py"
64 # broken with sqlalchemy 2
65 "--ignore=ax/service/tests/test_ax_client.py"
66 "--ignore=ax/service/tests/test_scheduler.py"
67 "--ignore=ax/service/tests/test_with_db_settings_base.py"
68 "--ignore=ax/storage"
69 ];
70 disabledTests = [
71 # exact comparison of floating points
72 "test_optimize_l0_homotopy"
73 # AssertionError: 5 != 2
74 "test_get_standard_plots_moo"
75 # AssertionError: Expected 'warning' to be called once. Called 3 times
76 "test_validate_kwarg_typing"
77 # uses torch.equal
78 "test_convert_observations"
79 ];
80 pythonImportsCheck = [ "ax" ];
81
82 meta = with lib; {
83 description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
84 homepage = "https://ax.dev/";
85 license = licenses.mit;
86 maintainers = with maintainers; [ veprbl ];
87 };
88}