dissect.volume 3.16.dev1__tar.gz → 3.17.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.
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/PKG-INFO +3 -4
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/ddf/ddf.py +1 -1
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/lvm/metadata.py +3 -20
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/raid/stream.py +1 -1
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/PKG-INFO +3 -4
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/pyproject.toml +25 -8
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_vinum_config.py +2 -2
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tox.ini +8 -10
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/.git-blame-ignore-revs +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/.gitattributes +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/COPYRIGHT +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/LICENSE +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/MANIFEST.in +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/README.md +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/ddf/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/ddf/c_ddf.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/disk.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/partition.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/apm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/bsd.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/gpt.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/mbr.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/dm/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/dm/btree.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/dm/c_dm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/dm/thin.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/exceptions.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/ldm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/lvm/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/lvm/c_lvm2.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/lvm/lvm2.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/lvm/physical.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/md/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/md/c_md.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/md/md.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/raid/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/raid/raid.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/vinum/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/vinum/c_vinum.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/vinum/config.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/vinum/vinum.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/vss.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/SOURCES.txt +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/dependency_links.txt +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/requires.txt +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/top_level.txt +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/setup.cfg +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-raid1-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-raid1-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid1-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid1-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid10-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid10-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid10-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid10-4.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid4-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid4-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid5-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid5-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid5-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid6-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid6-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid6-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid6-4.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/apm.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/bsd.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/bsd64.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/gpt.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/gpt_4k.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/gpt_esxi.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/gpt_hybrid.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/gpt_no_name_xff.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/disk/mbr.bin +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-data.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-empty-data.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-empty-metadata.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-metadata.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/lvm/lvm-mirror-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/lvm/lvm-mirror-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/lvm/lvm-thin.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/lvm/lvm.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-90-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-90-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-90-raid1-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-90-raid1-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-linear-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-linear-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid0-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid0-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid0-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid1-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid1-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid10-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid10-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid4-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid4-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid4-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid5-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid5-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid5-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid6-1.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid6-2.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid6-3.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/md/md-raid6-4.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-concat_diska.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-concat_diskb.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-mirror_diska.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-mirror_diskb.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diska.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskb.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskc.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskd.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-striped_diska.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-striped_diskb.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-stripedmirror_diska.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-stripedmirror_diskb.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-stripedmirror_diskc.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-stripedmirror_diskd.bin.gz +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_docs/Makefile +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_docs/__init__.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_docs/conf.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_docs/index.rst +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/conftest.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_apm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_bsd.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_ddf.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_dm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_gpt.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_lvm.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_mbr.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_md.py +0 -0
- {dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/test_vinum.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.dev1
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
|
-
License:
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
7
|
Project-URL: homepage, https://dissect.tools
|
|
8
8
|
Project-URL: documentation, https://docs.dissect.tools/en/latest/projects/dissect.volume
|
|
9
9
|
Project-URL: repository, https://github.com/fox-it/dissect.volume
|
|
@@ -11,14 +11,13 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
11
11
|
Classifier: Environment :: Console
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Intended Audience :: Information Technology
|
|
14
|
-
Classifier: License :: OSI Approved
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Topic :: Internet :: Log Analysis
|
|
18
17
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
19
18
|
Classifier: Topic :: Security
|
|
20
19
|
Classifier: Topic :: Utilities
|
|
21
|
-
Requires-Python:
|
|
20
|
+
Requires-Python: >=3.10
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
23
22
|
License-File: LICENSE
|
|
24
23
|
License-File: COPYRIGHT
|
|
@@ -61,7 +61,7 @@ class DDFConfiguration(Configuration):
|
|
|
61
61
|
sec = 0 if vdcr.secondary_element_count == 1 else vdcr.secondary_element_seq
|
|
62
62
|
|
|
63
63
|
i = 0
|
|
64
|
-
for starting_block, pds in zip(vdcr.starting_block, vdcr.physical_disk_sequence):
|
|
64
|
+
for starting_block, pds in zip(vdcr.starting_block, vdcr.physical_disk_sequence, strict=False):
|
|
65
65
|
if matched_pd := pd_map.get(pds):
|
|
66
66
|
vd_pd_map[sec * count + i] = (starting_block, matched_pd)
|
|
67
67
|
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import sys
|
|
4
3
|
from dataclasses import dataclass
|
|
5
4
|
from datetime import datetime # noqa: TC003
|
|
6
5
|
from functools import cache
|
|
7
|
-
from
|
|
8
|
-
|
|
9
|
-
if sys.version_info >= (3, 10):
|
|
10
|
-
from types import UnionType # novermin
|
|
11
|
-
else:
|
|
12
|
-
# Python 3.9
|
|
13
|
-
from typing import Union as UnionType
|
|
6
|
+
from types import UnionType
|
|
7
|
+
from typing import BinaryIO, get_args, get_origin, get_type_hints
|
|
14
8
|
|
|
15
9
|
from dissect.util import ts
|
|
16
10
|
from dissect.util.stream import MappingStream
|
|
@@ -36,7 +30,7 @@ class MetaBase:
|
|
|
36
30
|
|
|
37
31
|
type_ = get_origin(field_type)
|
|
38
32
|
|
|
39
|
-
if type_ is UnionType and field_type ==
|
|
33
|
+
if type_ is UnionType and field_type == field_type | None:
|
|
40
34
|
value = obj.get(field_name)
|
|
41
35
|
field_type = get_args(field_type)[0]
|
|
42
36
|
type_ = get_origin(field_type)
|
|
@@ -586,14 +580,3 @@ class RAIDSegment(Segment):
|
|
|
586
580
|
|
|
587
581
|
if self.raids:
|
|
588
582
|
self.raids = [tuple(self.raids[i : i + 2]) for i in range(0, len(self.raids), 2)]
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
# Backward compatibility with Python 3.9
|
|
592
|
-
if sys.version_info < (3, 10):
|
|
593
|
-
items = list(globals().values())
|
|
594
|
-
for obj in items:
|
|
595
|
-
if isinstance(obj, type) and issubclass(obj, MetaBase) and hasattr(obj, "__annotations__"):
|
|
596
|
-
for k, v in obj.__annotations__.items():
|
|
597
|
-
if isinstance(v, str) and "|" in v:
|
|
598
|
-
# Because we import Union as UnionType
|
|
599
|
-
obj.__annotations__[k] = f"UnionType[{v.replace(' | ', ', ')}]"
|
|
@@ -358,7 +358,7 @@ class RAID456Stream(AlignedStream):
|
|
|
358
358
|
|
|
359
359
|
stripe_size = self.virtual_disk.stripe_size
|
|
360
360
|
while length:
|
|
361
|
-
stripe, offset_in_stripe, dd_idx,
|
|
361
|
+
stripe, offset_in_stripe, dd_idx, _, _, _ = self._get_stripe_read_info(offset)
|
|
362
362
|
offset_in_device = stripe * stripe_size + offset_in_stripe
|
|
363
363
|
dd_start, dd_dev = self.disk_map[dd_idx]
|
|
364
364
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.dev1
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
|
-
License:
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
7
|
Project-URL: homepage, https://dissect.tools
|
|
8
8
|
Project-URL: documentation, https://docs.dissect.tools/en/latest/projects/dissect.volume
|
|
9
9
|
Project-URL: repository, https://github.com/fox-it/dissect.volume
|
|
@@ -11,14 +11,13 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
11
11
|
Classifier: Environment :: Console
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Intended Audience :: Information Technology
|
|
14
|
-
Classifier: License :: OSI Approved
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Topic :: Internet :: Log Analysis
|
|
18
17
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
19
18
|
Classifier: Topic :: Security
|
|
20
19
|
Classifier: Topic :: Utilities
|
|
21
|
-
Requires-Python:
|
|
20
|
+
Requires-Python: >=3.10
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
23
22
|
License-File: LICENSE
|
|
24
23
|
License-File: COPYRIGHT
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools>=
|
|
2
|
+
requires = ["setuptools>=77.0.0", "setuptools_scm[toml]>=6.4.0"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dissect.volume"
|
|
7
7
|
description = "A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR"
|
|
8
8
|
readme = "README.md"
|
|
9
|
-
requires-python = "
|
|
10
|
-
license
|
|
9
|
+
requires-python = ">=3.10"
|
|
10
|
+
license = "AGPL-3.0-or-later"
|
|
11
|
+
license-files = ["LICENSE", "COPYRIGHT"]
|
|
11
12
|
authors = [
|
|
12
13
|
{name = "Dissect Team", email = "dissect@fox-it.com"}
|
|
13
14
|
]
|
|
@@ -16,7 +17,6 @@ classifiers = [
|
|
|
16
17
|
"Environment :: Console",
|
|
17
18
|
"Intended Audience :: Developers",
|
|
18
19
|
"Intended Audience :: Information Technology",
|
|
19
|
-
"License :: OSI Approved",
|
|
20
20
|
"Operating System :: OS Independent",
|
|
21
21
|
"Programming Language :: Python :: 3",
|
|
22
22
|
"Topic :: Internet :: Log Analysis",
|
|
@@ -41,9 +41,29 @@ dev = [
|
|
|
41
41
|
"dissect.util>=3.0.dev,<4.0.dev",
|
|
42
42
|
]
|
|
43
43
|
|
|
44
|
+
[dependency-groups]
|
|
45
|
+
test = [
|
|
46
|
+
"pytest",
|
|
47
|
+
]
|
|
48
|
+
lint = [
|
|
49
|
+
"ruff==0.13.1",
|
|
50
|
+
"vermin",
|
|
51
|
+
]
|
|
52
|
+
build = [
|
|
53
|
+
"build",
|
|
54
|
+
]
|
|
55
|
+
debug = [
|
|
56
|
+
"ipdb",
|
|
57
|
+
]
|
|
58
|
+
dev = [
|
|
59
|
+
{include-group = "test"},
|
|
60
|
+
{include-group = "lint"},
|
|
61
|
+
{include-group = "debug"},
|
|
62
|
+
]
|
|
63
|
+
|
|
44
64
|
[tool.ruff]
|
|
45
65
|
line-length = 120
|
|
46
|
-
required-version = ">=0.
|
|
66
|
+
required-version = ">=0.13.1"
|
|
47
67
|
|
|
48
68
|
[tool.ruff.format]
|
|
49
69
|
docstring-code-format = true
|
|
@@ -92,9 +112,6 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
|
|
|
92
112
|
known-first-party = ["dissect.volume"]
|
|
93
113
|
known-third-party = ["dissect"]
|
|
94
114
|
|
|
95
|
-
[tool.setuptools]
|
|
96
|
-
license-files = ["LICENSE", "COPYRIGHT"]
|
|
97
|
-
|
|
98
115
|
[tool.setuptools.packages.find]
|
|
99
116
|
include = ["dissect.*"]
|
|
100
117
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
-
from datetime import datetime
|
|
4
|
+
from datetime import datetime, timezone
|
|
5
5
|
from typing import TYPE_CHECKING
|
|
6
6
|
from unittest.mock import patch
|
|
7
7
|
|
|
@@ -30,7 +30,7 @@ from dissect.volume.vinum.config import (
|
|
|
30
30
|
if TYPE_CHECKING:
|
|
31
31
|
from collections.abc import Iterator
|
|
32
32
|
|
|
33
|
-
CONF_TS = datetime.min
|
|
33
|
+
CONF_TS = datetime.min.replace(tzinfo=timezone.utc)
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def test_volume_state() -> None:
|
|
@@ -4,7 +4,7 @@ envlist = lint, py3, pypy3
|
|
|
4
4
|
# requires if they are not available on the host system. This requires the
|
|
5
5
|
# locally installed tox to have a minimum version 3.3.0. This means the names
|
|
6
6
|
# of the configuration options are still according to the tox 3.x syntax.
|
|
7
|
-
minversion = 4.
|
|
7
|
+
minversion = 4.27.0
|
|
8
8
|
# This version of virtualenv will install setuptools version 68.2.2 and pip
|
|
9
9
|
# 23.3.1. These versions fully support python projects defined only through a
|
|
10
10
|
# pyproject.toml file (PEP-517/PEP-518/PEP-621). This pip version also support
|
|
@@ -14,9 +14,9 @@ requires = virtualenv>=20.24.6
|
|
|
14
14
|
[testenv]
|
|
15
15
|
extras = dev
|
|
16
16
|
deps =
|
|
17
|
-
pytest
|
|
18
17
|
pytest-cov
|
|
19
18
|
coverage
|
|
19
|
+
dependency_groups = test
|
|
20
20
|
commands =
|
|
21
21
|
pytest --basetemp="{envtmpdir}" {posargs:--color=yes --cov=dissect --cov-report=term-missing -v tests}
|
|
22
22
|
coverage report
|
|
@@ -24,26 +24,24 @@ commands =
|
|
|
24
24
|
|
|
25
25
|
[testenv:build]
|
|
26
26
|
package = skip
|
|
27
|
-
|
|
28
|
-
build
|
|
27
|
+
dependency_groups = build
|
|
29
28
|
commands =
|
|
30
29
|
pyproject-build
|
|
31
30
|
|
|
32
31
|
[testenv:fix]
|
|
33
32
|
package = skip
|
|
34
|
-
|
|
35
|
-
ruff==0.9.2
|
|
33
|
+
dependency_groups = lint
|
|
36
34
|
commands =
|
|
35
|
+
ruff check --fix dissect tests
|
|
37
36
|
ruff format dissect tests
|
|
38
37
|
|
|
39
38
|
[testenv:lint]
|
|
40
39
|
package = skip
|
|
41
|
-
|
|
42
|
-
ruff==0.9.2
|
|
43
|
-
vermin
|
|
40
|
+
dependency_groups = lint
|
|
44
41
|
commands =
|
|
45
42
|
ruff check dissect tests
|
|
46
|
-
|
|
43
|
+
ruff format --check dissect tests
|
|
44
|
+
vermin -t=3.10- --no-tips --lint dissect tests
|
|
47
45
|
|
|
48
46
|
[testenv:docs-build]
|
|
49
47
|
allowlist_externals = make
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect/volume/disk/schemes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/dissect.volume.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-raid1-1.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/ddf/ddf-raid0-raid1-2.bin.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-empty-data.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-empty-metadata.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/dm/dm-thin-metadata.bin.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-concat_diska.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-concat_diskb.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-mirror_diska.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-mirror_diskb.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diska.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskb.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskc.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-raid5_diskd.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-striped_diska.bin.gz
RENAMED
|
File without changes
|
{dissect_volume-3.16.dev1 → dissect_volume-3.17.dev1}/tests/_data/vinum/vinum-striped_diskb.bin.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|