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