1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 requests,
7 numpy,
8 pandas,
9 scipy,
10 statsmodels,
11 patsy,
12 scikit-learn,
13 tqdm,
14 dask,
15 distributed,
16 stumpy,
17 cloudpickle,
18 pytestCheckHook,
19 pytest-xdist,
20 mock,
21 matplotlib,
22 seaborn,
23 ipython,
24 notebook,
25 pandas-datareader,
26}:
27
28buildPythonPackage rec {
29 pname = "tsfresh";
30 version = "0.20.2";
31 pyproject = true;
32
33 disabled = pythonOlder "3.7";
34
35 src = fetchFromGitHub {
36 owner = "blue-yonder";
37 repo = "tsfresh";
38 rev = "refs/tags/v${version}";
39 hash = "sha256-UTra+RAQnrv61NQ86xGYrUVYiycUAWhN/45F6/0ZvPI=";
40 };
41
42 patches = [
43 # The pyscaffold is not a build dependency but just a python project bootstrapping tool, so we do not need it
44 ./remove-pyscaffold.patch
45 ./remove-pytest-coverage-flags.patch
46 ];
47
48 propagatedBuildInputs = [
49 requests
50 numpy
51 pandas
52 scipy
53 statsmodels
54 patsy
55 scikit-learn
56 tqdm
57 dask
58 distributed
59 stumpy
60 cloudpickle
61 ] ++ dask.optional-dependencies.dataframe;
62
63 nativeCheckInputs = [
64 pytestCheckHook
65 pytest-xdist
66 mock
67 matplotlib
68 seaborn
69 ipython
70 notebook
71 pandas-datareader
72 ];
73
74 disabledTests = [
75 # touches network
76 "test_relevant_extraction"
77 "test_characteristics_downloaded_robot_execution_failures"
78 "test_index"
79 "test_binary_target_is_default"
80 "test_characteristics_downloaded_robot_execution_failures"
81 "test_extraction_runs_through"
82 "test_multilabel_target_on_request"
83 ];
84
85 pythonImportsCheck = [ "tsfresh" ];
86
87 meta = with lib; {
88 description = "Automatic extraction of relevant features from time series";
89 mainProgram = "run_tsfresh";
90 homepage = "https://github.com/blue-yonder/tsfresh";
91 changelog = "https://github.com/blue-yonder/tsfresh/blob/${src.rev}/CHANGES.rst";
92 license = licenses.mit;
93 maintainers = with maintainers; [ mbalatsko ];
94 };
95}