dissect.hypervisor 3.13.dev4__tar.gz → 3.14.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. {dissect.hypervisor-3.13.dev4/dissect.hypervisor.egg-info → dissect_hypervisor-3.14.dev1}/PKG-INFO +7 -3
  2. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/backup/c_vma.py +2 -3
  3. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/c_hyperv.py +2 -3
  4. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_hdd.py +2 -3
  5. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_qcow2.py +2 -3
  6. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_vdi.py +2 -3
  7. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_vhd.py +4 -5
  8. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_vhdx.py +2 -3
  9. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/c_vmdk.py +2 -3
  10. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/util/envelope.py +2 -3
  11. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1/dissect.hypervisor.egg-info}/PKG-INFO +7 -3
  12. dissect_hypervisor-3.14.dev1/dissect.hypervisor.egg-info/requires.txt +12 -0
  13. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/pyproject.toml +7 -2
  14. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tox.ini +1 -1
  15. dissect.hypervisor-3.13.dev4/dissect.hypervisor.egg-info/requires.txt +0 -7
  16. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/COPYRIGHT +0 -0
  17. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/LICENSE +0 -0
  18. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/MANIFEST.in +0 -0
  19. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/README.md +0 -0
  20. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/__init__.py +0 -0
  21. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/backup/__init__.py +0 -0
  22. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/backup/vma.py +0 -0
  23. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/backup/xva.py +0 -0
  24. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/__init__.py +0 -0
  25. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/hyperv.py +0 -0
  26. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/ovf.py +0 -0
  27. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/pvs.py +0 -0
  28. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/vbox.py +0 -0
  29. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/descriptor/vmx.py +0 -0
  30. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/__init__.py +0 -0
  31. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/hdd.py +0 -0
  32. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/qcow2.py +0 -0
  33. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/vdi.py +0 -0
  34. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/vhd.py +0 -0
  35. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/vhdx.py +0 -0
  36. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/disk/vmdk.py +0 -0
  37. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/exceptions.py +0 -0
  38. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/tools/__init__.py +0 -0
  39. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/tools/envelope.py +0 -0
  40. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/tools/vma.py +0 -0
  41. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/util/__init__.py +0 -0
  42. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect/hypervisor/util/vmtar.py +0 -0
  43. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect.hypervisor.egg-info/SOURCES.txt +0 -0
  44. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect.hypervisor.egg-info/dependency_links.txt +0 -0
  45. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect.hypervisor.egg-info/entry_points.txt +0 -0
  46. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/dissect.hypervisor.egg-info/top_level.txt +0 -0
  47. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/setup.cfg +0 -0
  48. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/__init__.py +0 -0
  49. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/conftest.py +0 -0
  50. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/differencing.avhdx.gz +0 -0
  51. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/dynamic.vhd.gz +0 -0
  52. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/dynamic.vhdx.gz +0 -0
  53. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/encrypted.vmx +0 -0
  54. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/encryption.info +0 -0
  55. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/expanding.hdd/DiskDescriptor.xml +0 -0
  56. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/expanding.hdd/expanding.hdd +0 -0
  57. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/expanding.hdd/expanding.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  58. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/fixed.vhd.gz +0 -0
  59. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/fixed.vhdx.gz +0 -0
  60. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/local.tgz.ve +0 -0
  61. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/plain.hdd/DiskDescriptor.xml +0 -0
  62. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/plain.hdd/plain.hdd +0 -0
  63. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/plain.hdd/plain.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  64. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/sesparse.vmdk.gz +0 -0
  65. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/DiskDescriptor.xml +0 -0
  66. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd +0 -0
  67. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  68. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.1.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  69. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.2.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  70. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.3.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  71. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.4.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  72. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/split.hdd/split.hdd.5.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds.gz +0 -0
  73. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/test.VMRS +0 -0
  74. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/test.vgz +0 -0
  75. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/test.vma.gz +0 -0
  76. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/data/test.vmcx +0 -0
  77. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/docs/Makefile +0 -0
  78. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/docs/conf.py +0 -0
  79. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/docs/index.rst +0 -0
  80. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_envelope.py +0 -0
  81. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_hdd.py +0 -0
  82. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_hyperv.py +0 -0
  83. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_ovf.py +0 -0
  84. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_pvs.py +0 -0
  85. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vbox.py +0 -0
  86. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vhd.py +0 -0
  87. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vhdx.py +0 -0
  88. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vma.py +0 -0
  89. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vmdk.py +0 -0
  90. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vmtar.py +0 -0
  91. {dissect.hypervisor-3.13.dev4 → dissect_hypervisor-3.14.dev1}/tests/test_vmx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.hypervisor
3
- Version: 3.13.dev4
3
+ Version: 3.14.dev1
4
4
  Summary: A Dissect module implementing parsers for various hypervisor disk, backup and configuration files
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -23,11 +23,15 @@ Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: COPYRIGHT
25
25
  Requires-Dist: defusedxml
26
- Requires-Dist: dissect.cstruct<4.0.dev,>=3.0.dev
27
- Requires-Dist: dissect.util<4.0.dev,>=3.0.dev
26
+ Requires-Dist: dissect.cstruct<5,>=4.dev
27
+ Requires-Dist: dissect.util<4,>=3
28
28
  Provides-Extra: full
29
29
  Requires-Dist: pycryptodome; extra == "full"
30
30
  Requires-Dist: rich; extra == "full"
31
+ Provides-Extra: dev
32
+ Requires-Dist: dissect.hypervisor[full]; extra == "dev"
33
+ Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
34
+ Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
31
35
 
32
36
  # dissect.hypervisor
33
37
 
@@ -1,4 +1,4 @@
1
- from dissect import cstruct
1
+ from dissect.cstruct import cstruct
2
2
 
3
3
  vma_def = """
4
4
  #define VMA_BLOCK_BITS 12
@@ -53,8 +53,7 @@ struct VmaExtentHeader {
53
53
  };
54
54
  """
55
55
 
56
- c_vma = cstruct.cstruct(endian=">")
57
- c_vma.load(vma_def)
56
+ c_vma = cstruct(endian=">").load(vma_def)
58
57
 
59
58
 
60
59
  VMA_MAGIC = b"VMA\x00"
@@ -1,4 +1,4 @@
1
- from dissect import cstruct
1
+ from dissect.cstruct import cstruct
2
2
 
3
3
  hyperv_def = """
4
4
  /* ======== File header ======== */
@@ -112,8 +112,7 @@ struct HyperVStorageKeyTableEntryHeader {
112
112
  };
113
113
  """
114
114
 
115
- c_hyperv = cstruct.cstruct()
116
- c_hyperv.load(hyperv_def)
115
+ c_hyperv = cstruct().load(hyperv_def)
117
116
 
118
117
  ObjectEntryType = c_hyperv.ObjectEntryType
119
118
  KeyDataType = c_hyperv.KeyDataType
@@ -3,7 +3,7 @@
3
3
  # - https://github.com/qemu/qemu/blob/master/docs/interop/parallels.txt
4
4
 
5
5
 
6
- from dissect import cstruct
6
+ from dissect.cstruct import cstruct
7
7
 
8
8
  hdd_def = """
9
9
  /* Compressed disk v1 signature */
@@ -62,7 +62,6 @@ struct pvd_dirty_bitmap_raw {
62
62
  };
63
63
  """
64
64
 
65
- c_hdd = cstruct.cstruct()
66
- c_hdd.load(hdd_def)
65
+ c_hdd = cstruct().load(hdd_def)
67
66
 
68
67
  SECTOR_SIZE = c_hdd.SECTOR_SIZE
@@ -1,4 +1,4 @@
1
- from dissect import cstruct
1
+ from dissect.cstruct import cstruct
2
2
 
3
3
  qcow2_def = """
4
4
  #define MIN_CLUSTER_BITS 9
@@ -136,8 +136,7 @@ enum QCow2SubclusterType {
136
136
  };
137
137
  """
138
138
 
139
- c_qcow2 = cstruct.cstruct(endian=">")
140
- c_qcow2.load(qcow2_def)
139
+ c_qcow2 = cstruct(endian=">").load(qcow2_def)
141
140
 
142
141
  QCOW2_MAGIC = 0x514649FB
143
142
  QCOW2_MAGIC_BYTES = c_qcow2.uint32.dumps(QCOW2_MAGIC)
@@ -1,4 +1,4 @@
1
- from dissect import cstruct
1
+ from dissect.cstruct import cstruct
2
2
 
3
3
  # https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Storage/VDICore.h
4
4
  # https://forums.virtualbox.org/viewtopic.php?t=8046
@@ -81,8 +81,7 @@ struct HeaderDescriptor {
81
81
  };
82
82
  """
83
83
 
84
- c_vdi = cstruct.cstruct()
85
- c_vdi.load(vdi_def)
84
+ c_vdi = cstruct().load(vdi_def)
86
85
 
87
86
  VDI_SIGNATURE = 0xBEDA107F
88
87
 
@@ -1,4 +1,4 @@
1
- from dissect import cstruct
1
+ from dissect.cstruct import cstruct
2
2
 
3
3
  vhd_def = """
4
4
  struct footer {
@@ -38,14 +38,13 @@ struct dynamic_header {
38
38
  uint32 checksum;
39
39
  char parent_unique_id[16];
40
40
  uint32 parent_timestamp;
41
- uint32 reserved;
41
+ uint32 reserved1;
42
42
  char parent_unicode_name[512];
43
43
  parent_locator parent_locators[8];
44
- char reserved[256];
44
+ char reserved2[256];
45
45
  };
46
46
  """
47
47
 
48
- c_vhd = cstruct.cstruct(endian=">")
49
- c_vhd.load(vhd_def)
48
+ c_vhd = cstruct(endian=">").load(vhd_def)
50
49
 
51
50
  SECTOR_SIZE = 512
@@ -1,6 +1,6 @@
1
1
  from uuid import UUID
2
2
 
3
- from dissect import cstruct
3
+ from dissect.cstruct import cstruct
4
4
 
5
5
  vhdx_def = """
6
6
  #define PAYLOAD_BLOCK_NOT_PRESENT 0
@@ -99,8 +99,7 @@ struct parent_locator_entry {
99
99
  };
100
100
  """
101
101
 
102
- c_vhdx = cstruct.cstruct()
103
- c_vhdx.load(vhdx_def)
102
+ c_vhdx = cstruct().load(vhdx_def)
104
103
 
105
104
  ALIGNMENT = 64 * 1024
106
105
  MB = 1024 * 1024
@@ -1,6 +1,6 @@
1
1
  import struct
2
2
 
3
- from dissect import cstruct
3
+ from dissect.cstruct import cstruct
4
4
 
5
5
  vmdk_def = """
6
6
  typedef struct {
@@ -132,8 +132,7 @@ typedef struct {
132
132
  #define GRAIN_MARKER_PROGRESS 4
133
133
  """
134
134
 
135
- c_vmdk = cstruct.cstruct()
136
- c_vmdk.load(vmdk_def)
135
+ c_vmdk = cstruct().load(vmdk_def)
137
136
 
138
137
  SECTOR_SIZE = 512
139
138
 
@@ -25,7 +25,7 @@ try:
25
25
  except ImportError:
26
26
  HAS_PYCRYPTODOME = False
27
27
 
28
- from dissect import cstruct
28
+ from dissect.cstruct import cstruct
29
29
  from dissect.util.stream import RangeStream
30
30
 
31
31
  c_def = """
@@ -69,8 +69,7 @@ enum AttributeType : uint8 {
69
69
  Bytes = 0xC
70
70
  };
71
71
  """
72
- c_envelope = cstruct.cstruct()
73
- c_envelope.load(c_def)
72
+ c_envelope = cstruct().load(c_def)
74
73
 
75
74
  FILE_HEADER_MAGIC = b"DataTransformEnvelope"
76
75
  FOOTER_AEAD_MAGIC = b"DataTransformAeadFooter"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.hypervisor
3
- Version: 3.13.dev4
3
+ Version: 3.14.dev1
4
4
  Summary: A Dissect module implementing parsers for various hypervisor disk, backup and configuration files
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -23,11 +23,15 @@ Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: COPYRIGHT
25
25
  Requires-Dist: defusedxml
26
- Requires-Dist: dissect.cstruct<4.0.dev,>=3.0.dev
27
- Requires-Dist: dissect.util<4.0.dev,>=3.0.dev
26
+ Requires-Dist: dissect.cstruct<5,>=4.dev
27
+ Requires-Dist: dissect.util<4,>=3
28
28
  Provides-Extra: full
29
29
  Requires-Dist: pycryptodome; extra == "full"
30
30
  Requires-Dist: rich; extra == "full"
31
+ Provides-Extra: dev
32
+ Requires-Dist: dissect.hypervisor[full]; extra == "dev"
33
+ Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
34
+ Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
31
35
 
32
36
  # dissect.hypervisor
33
37
 
@@ -0,0 +1,12 @@
1
+ defusedxml
2
+ dissect.cstruct<5,>=4.dev
3
+ dissect.util<4,>=3
4
+
5
+ [dev]
6
+ dissect.hypervisor[full]
7
+ dissect.cstruct<5.0.dev,>=4.0.dev
8
+ dissect.util<4.0.dev,>=3.0.dev
9
+
10
+ [full]
11
+ pycryptodome
12
+ rich
@@ -26,8 +26,8 @@ classifiers = [
26
26
  ]
27
27
  dependencies = [
28
28
  "defusedxml",
29
- "dissect.cstruct>=3.0.dev,<4.0.dev",
30
- "dissect.util>=3.0.dev,<4.0.dev",
29
+ "dissect.cstruct>=4.dev,<5",
30
+ "dissect.util>=3,<4",
31
31
  ]
32
32
  dynamic = ["version"]
33
33
 
@@ -41,6 +41,11 @@ full = [
41
41
  "pycryptodome",
42
42
  "rich",
43
43
  ]
44
+ dev = [
45
+ "dissect.hypervisor[full]",
46
+ "dissect.cstruct>=4.0.dev,<5.0.dev",
47
+ "dissect.util>=3.0.dev,<4.0.dev",
48
+ ]
44
49
 
45
50
  [project.scripts]
46
51
  vma-extract = "dissect.hypervisor.tools.vma:main"
@@ -11,7 +11,7 @@ minversion = 4.4.3
11
11
  requires = virtualenv>=20.16.6
12
12
 
13
13
  [testenv]
14
- extras = full
14
+ extras = dev
15
15
  deps =
16
16
  pytest
17
17
  pytest-cov
@@ -1,7 +0,0 @@
1
- defusedxml
2
- dissect.cstruct<4.0.dev,>=3.0.dev
3
- dissect.util<4.0.dev,>=3.0.dev
4
-
5
- [full]
6
- pycryptodome
7
- rich