1{
2 lib,
3 backports-datetime-fromisoformat,
4 buildPythonPackage,
5 charset-normalizer,
6 dateparser,
7 faust-cchardet,
8 fetchPypi,
9 lxml,
10 pytestCheckHook,
11 python-dateutil,
12 pythonOlder,
13 setuptools,
14 urllib3,
15}:
16
17buildPythonPackage rec {
18 pname = "htmldate";
19 version = "1.8.1";
20 pyproject = true;
21
22 disabled = pythonOlder "3.6";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-yvFobPdcYd0fBh7eXXpG51mxXV+Zh82OE8jEI3URJj0=";
27 };
28
29 build-system = [ setuptools ];
30
31 dependencies = [
32 charset-normalizer
33 dateparser
34 lxml
35 python-dateutil
36 urllib3
37 ] ++ lib.optionals (pythonOlder "3.7") [ backports-datetime-fromisoformat ];
38
39 passthru.optional-dependencies = {
40 speed =
41 [
42 faust-cchardet
43 urllib3
44 ]
45 ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
46 ++ urllib3.optional-dependencies.brotli;
47 all =
48 [
49 faust-cchardet
50 urllib3
51 ]
52 ++ lib.optionals (pythonOlder "3.11") [ backports-datetime-fromisoformat ]
53 ++ urllib3.optional-dependencies.brotli;
54 };
55
56 nativeCheckInputs = [ pytestCheckHook ];
57
58 # disable tests that require an internet connection
59 disabledTests = [
60 "test_input"
61 "test_cli"
62 "test_download"
63 ];
64
65 pythonImportsCheck = [ "htmldate" ];
66
67 meta = with lib; {
68 description = "Module for the extraction of original and updated publication dates from URLs and web pages";
69 homepage = "https://htmldate.readthedocs.io";
70 changelog = "https://github.com/adbar/htmldate/blob/v${version}/CHANGELOG.md";
71 license = licenses.asl20;
72 maintainers = with maintainers; [ jokatzke ];
73 mainProgram = "htmldate";
74 };
75}