1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 pytestCheckHook,
7 setuptools,
8 attrs,
9 imagehash,
10 matplotlib,
11 multimethod,
12 networkx,
13 numpy,
14 pandas,
15 pillow,
16 puremagic,
17 pydot,
18 pygraphviz,
19 shapely,
20}:
21
22buildPythonPackage rec {
23 pname = "visions";
24 version = "0.8.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchFromGitHub {
30 owner = "dylan-profiler";
31 repo = "visions";
32 rev = "v${version}";
33 hash = "sha256-MHseb1XJ0t7jQ45VXKQclYPgddrzmJAC7cde8qqYhNQ=";
34 };
35
36 nativeBuildInputs = [ setuptools ];
37
38 dependencies = [
39 attrs
40 multimethod
41 networkx
42 numpy
43 pandas
44 puremagic
45 ];
46
47 optional-dependencies = {
48 type-geometry = [ shapely ];
49 type-image-path = [
50 imagehash
51 pillow
52 ];
53 plotting = [
54 matplotlib
55 pydot
56 pygraphviz
57 ];
58 };
59
60 nativeCheckInputs = [
61 pytestCheckHook
62 ]
63 ++ lib.flatten (builtins.attrValues optional-dependencies);
64
65 disabledTestPaths = [
66 # requires running Apache Spark:
67 "tests/spark_/typesets/test_spark_standard_set.py"
68 ];
69
70 pythonImportsCheck = [
71 "visions"
72 ];
73
74 meta = with lib; {
75 description = "Type system for data analysis in Python";
76 homepage = "https://dylan-profiler.github.io/visions";
77 license = licenses.bsdOriginal;
78 maintainers = with maintainers; [ bcdarwin ];
79 };
80}