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