summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/pyimg4/default.nix
blob: eced828111dc89b0e9797f8a8529f9a48446190a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
{
  apple-compress,
  asn1,
  buildPythonPackage,
  click,
  fetchFromGitHub,
  hatchling,
  lib,
  lzfse,
  pycryptodome,
  pylzss,
  pytestCheckHook,
  remotezip,
  stdenv,
  uv-dynamic-versioning,
}:

buildPythonPackage rec {
  pname = "pyimg4";
  version = "0.8.8";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "m1stadev";
    repo = "PyIMG4";
    tag = "v${version}";
    hash = "sha256-rGFHd4MAJrbKhtX+Ey/zqQ/12wWxDyBBy1xPGDFQjao=";
  };

  build-system = [
    hatchling
    uv-dynamic-versioning
  ];

  pythonRelaxDeps = [
    "pylzss"
  ];

  dependencies = [
    asn1
    click
    pycryptodome
    pylzss
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [
    apple-compress
  ]
  ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
    lzfse
  ];

  pythonImportsCheck = [ "pyimg4" ];

  nativeCheckInputs = [
    pytestCheckHook
    remotezip
  ];

  disabledTests = [
    # tests take forever
    "test_read_lzss_dec"
    "test_read_lzss_enc"
    "test_read_lzfse_dec"
    "test_read_lzfse_enc"
    "test_read_payp"
  ];

  meta = {
    changelog = "https://github.com/m1stadev/PyIMG4/releases/tag/${src.tag}";
    description = "Python library/CLI tool for parsing Apple's Image4 format";
    homepage = "https://github.com/m1stadev/PyIMG4";
    license = lib.licenses.mit;
    mainProgram = "pyimg4";
    maintainers = [ lib.maintainers.dotlambda ];
  };
}