1{ lib
2, buildPythonPackage
3, dissect-cstruct
4, dissect-util
5, fetchFromGitHub
6, pycryptodome
7, pytestCheckHook
8, pythonOlder
9, rich
10, setuptools
11, setuptools-scm
12}:
13
14buildPythonPackage rec {
15 pname = "dissect-hypervisor";
16 version = "3.2";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "fox-it";
23 repo = "dissect.hypervisor";
24 rev = version;
25 hash = "sha256-yc9QfzvWX8jsRVZYglZZuMfxsYUoPr5gf407DABjQcU=";
26 };
27
28 SETUPTOOLS_SCM_PRETEND_VERSION = version;
29
30 nativeBuildInputs = [
31 setuptools
32 setuptools-scm
33 ];
34
35 propagatedBuildInputs = [
36 dissect-cstruct
37 dissect-util
38 ];
39
40 passthru.optional-dependencies = {
41 full = [
42 pycryptodome
43 rich
44 ];
45 };
46
47 checkInputs = [
48 pytestCheckHook
49 ];
50
51 pythonImportsCheck = [
52 "dissect.hypervisor"
53 ];
54
55 meta = with lib; {
56 description = "Dissect module implementing parsers for various hypervisor disk, backup and configuration files";
57 homepage = "https://github.com/fox-it/dissect.hypervisor";
58 license = licenses.agpl3Only;
59 maintainers = with maintainers; [ fab ];
60 };
61}