dissect.archive 1.8.dev2__tar.gz → 1.9.dev2__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 (44) hide show
  1. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/.git-blame-ignore-revs +2 -0
  2. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/PKG-INFO +1 -1
  3. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/c_vbk.py +2 -0
  4. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/c_vma.py +2 -0
  5. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/c_wim.py +2 -0
  6. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/exceptions.py +3 -0
  7. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/tools/backup.py +5 -1
  8. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/vbk.py +0 -1
  9. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/PKG-INFO +1 -1
  10. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/pyproject.toml +21 -2
  11. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_docs/conf.py +2 -0
  12. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/test_exceptions.py +2 -0
  13. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/test_vbk.py +3 -4
  14. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/.gitattributes +0 -0
  15. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/COPYRIGHT +0 -0
  16. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/LICENSE +0 -0
  17. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/MANIFEST.in +0 -0
  18. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/README.md +0 -0
  19. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/__init__.py +0 -0
  20. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/tools/__init__.py +0 -0
  21. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/vma.py +0 -0
  22. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/wim.py +0 -0
  23. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect/archive/xva.py +0 -0
  24. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/SOURCES.txt +0 -0
  25. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/dependency_links.txt +0 -0
  26. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/entry_points.txt +0 -0
  27. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/requires.txt +0 -0
  28. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/dissect.archive.egg-info/top_level.txt +0 -0
  29. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/setup.cfg +0 -0
  30. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/__init__.py +0 -0
  31. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/basic16k.wim.gz +0 -0
  32. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/basic32k.wim.gz +0 -0
  33. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/basic4k.wim.gz +0 -0
  34. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/basic8k.wim.gz +0 -0
  35. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/test.vma.gz +0 -0
  36. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/test13.vbk.gz +0 -0
  37. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_data/test9.vbk.gz +0 -0
  38. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_docs/Makefile +0 -0
  39. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_docs/__init__.py +0 -0
  40. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/_docs/index.rst +0 -0
  41. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/conftest.py +0 -0
  42. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/test_vma.py +0 -0
  43. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tests/test_wim.py +0 -0
  44. {dissect_archive-1.8.dev2 → dissect_archive-1.9.dev2}/tox.ini +0 -0
@@ -4,3 +4,5 @@
4
4
  #
5
5
  # Change linter to Ruff (#11)
6
6
  1683c5a051a599f5db1419a722b82c3886742555
7
+ # Add stricter Ruff linting (#25)
8
+ 55d70946ca74537b9db6c688ea6d6146b480a549
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.archive
3
- Version: 1.8.dev2
3
+ Version: 1.9.dev2
4
4
  Summary: A Dissect module implementing parsers for various archive and backup formats
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from dissect.cstruct import cstruct
2
4
 
3
5
  vbk_def = """
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from dissect.cstruct import cstruct
2
4
 
3
5
  vma_def = """
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from dissect.cstruct import cstruct
2
4
  from dissect.util.compression import lzxpress_huffman
3
5
 
@@ -1,3 +1,6 @@
1
+ from __future__ import annotations
2
+
3
+
1
4
  class Error(Exception):
2
5
  pass
3
6
 
@@ -4,11 +4,15 @@ import argparse
4
4
  import logging
5
5
  import sys
6
6
  from pathlib import Path
7
+ from typing import TYPE_CHECKING
7
8
 
8
9
  from dissect.archive.c_vma import c_vma
9
- from dissect.archive.vbk import VBK, DirItem
10
+ from dissect.archive.vbk import VBK
10
11
  from dissect.archive.vma import VMA, _iter_mask
11
12
 
13
+ if TYPE_CHECKING:
14
+ from dissect.archive.vbk import DirItem
15
+
12
16
  try:
13
17
  from rich.logging import RichHandler
14
18
  from rich.progress import (
@@ -907,7 +907,6 @@ class MetaVector2(MetaVector[T]):
907
907
  Args:
908
908
  idx: The page index to lookup the page number for.
909
909
  """
910
-
911
910
  # MetaVec2 pages are a little special
912
911
  # The first page has a 16 byte header:
913
912
  # - 8 bytes for the next page number
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.archive
3
- Version: 1.8.dev2
3
+ Version: 1.9.dev2
4
4
  Summary: A Dissect module implementing parsers for various archive and backup formats
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -103,7 +103,7 @@ select = [
103
103
  "SLOT",
104
104
  "SIM",
105
105
  "TID",
106
- "TCH",
106
+ "TC",
107
107
  "PTH",
108
108
  "PLC",
109
109
  "TRY",
@@ -111,8 +111,26 @@ select = [
111
111
  "PERF",
112
112
  "FURB",
113
113
  "RUF",
114
+ "D"
114
115
  ]
115
- ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003"]
116
+
117
+ ignore = [
118
+ "E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003", "PLC0415",
119
+ # Ignore some pydocstyle rules for now as they require a larger cleanup
120
+ "D1",
121
+ "D205",
122
+ "D301",
123
+ "D417",
124
+ # Seems bugged: https://github.com/astral-sh/ruff/issues/16824
125
+ "D402",
126
+ ]
127
+ future-annotations = true
128
+
129
+ [tool.ruff.lint.pydocstyle]
130
+ convention = "google"
131
+
132
+ [tool.ruff.lint.flake8-type-checking]
133
+ strict = true
116
134
 
117
135
  [tool.ruff.lint.per-file-ignores]
118
136
  "tests/docs/**" = ["INP001"]
@@ -120,6 +138,7 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
120
138
  [tool.ruff.lint.isort]
121
139
  known-first-party = ["dissect.archive"]
122
140
  known-third-party = ["dissect"]
141
+ required-imports = ["from __future__ import annotations"]
123
142
 
124
143
  [tool.setuptools.packages.find]
125
144
  include = ["dissect.*"]
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  project = "dissect.archive"
2
4
 
3
5
  extensions = [
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import pytest
2
4
 
3
5
  from dissect.archive import exceptions
@@ -16,7 +16,7 @@ from dissect.archive.vbk import (
16
16
 
17
17
 
18
18
  def test_vbk_version_9(vbk9: BinaryIO) -> None:
19
- """test VBK parsing for version 9 files"""
19
+ """Test VBK parsing for version 9 files."""
20
20
  vbk = VBK(vbk9)
21
21
 
22
22
  assert vbk.format_version == 9
@@ -52,7 +52,7 @@ def test_vbk_version_9(vbk9: BinaryIO) -> None:
52
52
 
53
53
 
54
54
  def test_vbk_version_13(vbk13: BinaryIO) -> None:
55
- """test VBK parsing for version 13 files"""
55
+ """Test VBK parsing for version 13 files."""
56
56
  vbk = VBK(vbk13)
57
57
 
58
58
  assert vbk.format_version == 13
@@ -89,8 +89,7 @@ def test_vbk_version_13(vbk13: BinaryIO) -> None:
89
89
 
90
90
 
91
91
  def test_metavector2_lookup() -> None:
92
- """test that the lookup logic in MetaVector2 works as expected"""
93
-
92
+ """Test that the lookup logic in MetaVector2 works as expected."""
94
93
  raw_blob = []
95
94
  entry = 0
96
95
  num_pages = 11