1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 formulaic,
7 click,
8 num2words,
9 numpy,
10 scipy,
11 pandas,
12 nibabel,
13 bids-validator,
14 sqlalchemy,
15 pytestCheckHook,
16 versioneer,
17 pythonRelaxDepsHook,
18}:
19
20buildPythonPackage rec {
21 pname = "pybids";
22 version = "0.16.4";
23 pyproject = true;
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-pahl8wi6Sf8AuVqkvi7H90ViHr+9utb14ZVmKK3rFm4=";
28 };
29
30 pythonRelaxDeps = [
31 "formulaic"
32 "sqlalchemy"
33 ];
34
35 nativeBuildInputs = [
36 pythonRelaxDepsHook
37 setuptools
38 versioneer
39 ] ++ versioneer.optional-dependencies.toml;
40
41 propagatedBuildInputs = [
42 bids-validator
43 click
44 formulaic
45 nibabel
46 num2words
47 numpy
48 pandas
49 scipy
50 sqlalchemy
51 ];
52
53 pythonImportsCheck = [ "bids" ];
54
55 nativeCheckInputs = [ pytestCheckHook ];
56
57 disabledTests = [
58 # Test looks for missing data
59 "test_config_filename"
60 # Regression associated with formulaic >= 0.6.0
61 # (see https://github.com/bids-standard/pybids/issues/1000)
62 "test_split"
63 # AssertionError, TypeError
64 "test_run_variable_collection_bad_length_to_df_all_dense_var"
65 "test_extension_initial_dot"
66 "test_to_df"
67 ];
68
69 meta = with lib; {
70 description = "Python tools for querying and manipulating BIDS datasets";
71 homepage = "https://github.com/bids-standard/pybids";
72 changelog = "https://github.com/bids-standard/pybids/blob/${version}/CHANGELOG.rst";
73 license = licenses.mit;
74 maintainers = with maintainers; [ jonringer ];
75 mainProgram = "pybids";
76 };
77}