1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, beautifulsoup4
6, datetime
7, lxml
8, pandas
9, pytest-mock
10, pytestCheckHook
11, requests
12}:
13
14buildPythonPackage rec {
15 pname = "finvizfinance";
16 version = "0.14.5";
17 format = "setuptools";
18
19 disabled = pythonOlder "3.5";
20
21 src = fetchFromGitHub {
22 owner = "lit26";
23 repo = "finvizfinance";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-yhOa/CS+9UdI+TVMObBsOqIp9XggMJvNjteSMa5DJcM=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.py \
30 --replace "bs4" "beautifulsoup4"
31 '';
32
33 nativeCheckInputs = [
34 pytest-mock
35 pytestCheckHook
36 ];
37
38 propagatedBuildInputs = [
39 beautifulsoup4
40 datetime
41 lxml
42 pandas
43 requests
44 ];
45
46 pythonImportsCheck = [
47 "finvizfinance"
48 ];
49
50 disabledTests = [
51 # Tests require network access
52 "test_finvizfinance_calendar"
53 "test_finvizfinance_crypto"
54 "test_forex_performance_percentage"
55 "test_group_overview"
56 "test_finvizfinance_insider"
57 "test_finvizfinance_news"
58 "test_finvizfinance_finvizfinance"
59 "test_statements"
60 "test_screener_overview"
61 ];
62
63 meta = with lib; {
64 description = "Finviz Finance information downloader";
65 homepage = "https://github.com/lit26/finvizfinance";
66 changelog = "https://github.com/lit26/finvizfinance/releases/tag/v${version}";
67 license = licenses.mit;
68 maintainers = with maintainers; [ icyrockcom ];
69 };
70}
71