1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 fetchFromGitHub, 6 importlib-metadata, 7 natsort, 8 pillow, 9 py7zr, 10 pycountry, 11 pyicu, 12 pytestCheckHook, 13 pythonOlder, 14 rapidfuzz, 15 rarfile, 16 setuptools, 17 setuptools-scm, 18 text2digits, 19 wheel, 20 wordninja, 21}: 22 23buildPythonPackage rec { 24 pname = "comicapi"; 25 version = "3.2.0"; 26 pyproject = true; 27 28 disabled = pythonOlder "3.8"; 29 30 src = fetchFromGitHub { 31 owner = "comictagger"; 32 repo = "comicapi"; 33 rev = "2bf8332114e49add0bbc0fd3d85bdbba02de3d1a"; 34 hash = "sha256-Cd3ILy/4PqWUj1Uu9of9gCpdVp2R6CXjPOuSXgrB894="; 35 }; 36 37 build-system = [ 38 setuptools 39 setuptools-scm 40 wheel 41 ]; 42 43 dependencies = [ 44 importlib-metadata 45 natsort 46 pillow 47 pycountry 48 rapidfuzz 49 text2digits 50 wordninja 51 ]; 52 53 optional-dependencies = { 54 _7z = [ py7zr ]; 55 56 all = [ 57 py7zr 58 rarfile 59 ] ++ lib.optional (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) pyicu; 60 61 cbr = [ rarfile ]; 62 63 icu = lib.optional (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) pyicu; 64 }; 65 66 nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies); 67 68 pythonRelaxDeps = [ "pycountry" ]; 69 70 disabledTests = [ 71 # AssertionError 72 "test_copy_from_archive" 73 ]; 74 75 pythonImportsCheck = [ "comicapi" ]; 76 77 meta = { 78 description = "Comic archive (cbr/cbz/cbt) and metadata utilities"; 79 homepage = "https://github.com/comictagger/comicapi"; 80 license = lib.licenses.asl20; 81 maintainers = with lib.maintainers; [ getchoo ]; 82 }; 83}