1{
2 lib,
3 buildPythonPackage,
4 colorclass,
5 easygui,
6 fetchFromGitHub,
7 msoffcrypto-tool,
8 olefile,
9 pcodedmp,
10 pyparsing,
11 pytestCheckHook,
12 pythonOlder,
13}:
14
15buildPythonPackage rec {
16 pname = "oletools";
17 version = "0.60.2";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "decalage2";
24 repo = "oletools";
25 rev = "v${version}";
26 hash = "sha256-ons1VeWStxUZw2CPpnX9p5I3Q7cMhi34JU8TeuUDt+Y=";
27 };
28
29 propagatedBuildInputs = [
30 colorclass
31 easygui
32 msoffcrypto-tool
33 olefile
34 pcodedmp
35 pyparsing
36 ];
37
38 nativeCheckInputs = [ pytestCheckHook ];
39
40 postPatch = ''
41 substituteInPlace setup.py \
42 --replace "pyparsing>=2.1.0,<3" "pyparsing>=2.1.0"
43 '';
44
45 disabledTests = [
46 # Test fails with AssertionError: Tuples differ: ('MS Word 2007+...
47 "test_all"
48 "test_xlm"
49 ];
50
51 pythonImportsCheck = [ "oletools" ];
52
53 meta = with lib; {
54 description = "Module to analyze MS OLE2 files and MS Office documents";
55 homepage = "https://github.com/decalage2/oletools";
56 license = with licenses; [
57 bsd2 # and
58 mit
59 ];
60 maintainers = with maintainers; [ fab ];
61 };
62}