1{
2 lib,
3 buildPythonPackage,
4 dnspython,
5 fetchPypi,
6 filelock,
7 idna,
8 platformdirs,
9 pytestCheckHook,
10 pythonOlder,
11 setuptools,
12 uritools,
13}:
14
15buildPythonPackage rec {
16 pname = "urlextract";
17 version = "1.9.0";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-cFCOArqd83LiXPBkLbNnzs4nPocSzQzngXj8XdfqANs=";
25 };
26
27 nativeBuildInputs = [ setuptools ];
28
29 propagatedBuildInputs = [
30 filelock
31 idna
32 platformdirs
33 uritools
34 ];
35
36 nativeCheckInputs = [
37 dnspython
38 pytestCheckHook
39 ];
40
41 disabledTests = [
42 # fails with dns.resolver.NoResolverConfiguration due to network sandboxing
43 "test_check_dns_enabled"
44 "test_check_dns_find_urls"
45 "test_dns_cache_init"
46 "test_dns_cache_negative"
47 "test_dns_cache_reuse"
48 ];
49
50 pythonImportsCheck = [ "urlextract" ];
51
52 meta = with lib; {
53 description = "Collects and extracts URLs from given text";
54 mainProgram = "urlextract";
55 homepage = "https://github.com/lipoja/URLExtract";
56 changelog = "https://github.com/lipoja/URLExtract/releases/tag/v${version}";
57 license = licenses.mit;
58 maintainers = with maintainers; [ ilkecan ];
59 };
60}