1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitLab,
5 babel,
6 html2text,
7 lxml,
8 packaging,
9 pillow,
10 prettytable,
11 pycountry,
12 pytestCheckHook,
13 python-dateutil,
14 python-jose,
15 pythonOlder,
16 pyyaml,
17 requests,
18 rich,
19 setuptools,
20 testers,
21 unidecode,
22 termcolor,
23 responses,
24 woob,
25}:
26
27buildPythonPackage rec {
28 pname = "woob";
29 version = "3.7";
30 pyproject = true;
31 disabled = pythonOlder "3.7";
32
33 src = fetchFromGitLab {
34 owner = "woob";
35 repo = "woob";
36 tag = version;
37 hash = "sha256-EZHzw+/BIIvmDXG4fF367wsdUTVTHWYb0d0U56ZXwOs=";
38 };
39
40 build-system = [ setuptools ];
41
42 pythonRelaxDeps = [
43 "packaging"
44 "rich"
45 "requests"
46 ];
47
48 dependencies = [
49 babel
50 python-dateutil
51 python-jose
52 html2text
53 lxml
54 packaging
55 pillow
56 prettytable
57 pycountry
58 pyyaml
59 requests
60 rich
61 unidecode
62 termcolor
63 ];
64
65 nativeCheckInputs = [
66 pytestCheckHook
67 responses
68 ];
69
70 disabledTests = [
71 # require networking
72 "test_ciphers"
73 "test_verify"
74 ];
75
76 pythonImportsCheck = [ "woob" ];
77
78 passthru.tests.version = testers.testVersion {
79 package = woob;
80 version = "v${version}";
81 };
82
83 meta = {
84 changelog = "https://gitlab.com/woob/woob/-/blob/${src.rev}/ChangeLog";
85 description = "Collection of applications and APIs to interact with websites";
86 mainProgram = "woob";
87 homepage = "https://woob.tech";
88 license = lib.licenses.lgpl3Plus;
89 maintainers = with lib.maintainers; [ DamienCassou ];
90 };
91}