Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dissect/archive/vma.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def __init__(self, fh: BinaryIO):
blob_offset += size + 2

self._config: dict[str, bytes] = {}
for conf_name, conf_data in zip(self.header.config_names, self.header.config_data):
for conf_name, conf_data in zip(self.header.config_names, self.header.config_data, strict=False):
if (conf_name, conf_data) == (0, 0):
continue

Expand Down Expand Up @@ -179,7 +179,7 @@ def __init__(self, fh: BinaryIO, offset: int):
elif mask == 0:
pass
else:
block_offset += bin(mask).count("1") * c_vma.VMA_BLOCK_SIZE
block_offset += mask.bit_count() * c_vma.VMA_BLOCK_SIZE

def __repr__(self) -> str:
return f"<Extent offset=0x{self.offset:x} size=0x{self.size:x}>"
Expand Down
4 changes: 2 additions & 2 deletions dissect/archive/wim.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io
import struct
from functools import cached_property, lru_cache
from typing import TYPE_CHECKING, BinaryIO, Callable
from typing import TYPE_CHECKING, BinaryIO

from dissect.util.stream import AlignedStream, BufferedStream, RelativeStream
from dissect.util.ts import wintimestamp
Expand All @@ -26,7 +26,7 @@
)

if TYPE_CHECKING:
from collections.abc import Iterator
from collections.abc import Callable, Iterator
from datetime import datetime

DEFAULT_CHUNK_SIZE = 32 * 1024
Expand Down
33 changes: 25 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
[build-system]
requires = ["setuptools>=65.5.0", "setuptools_scm[toml]>=6.4.0"]
requires = ["setuptools>=77.0.0", "setuptools_scm[toml]>=6.4.0"]
build-backend = "setuptools.build_meta"

[project]
name = "dissect.archive"
description = "A Dissect module implementing parsers for various archive and backup formats"
readme = "README.md"
requires-python = "~=3.9"
license.text = "Affero General Public License v3"
requires-python = ">=3.10"
license = "AGPL-3.0-or-later"
license-files = ["LICENSE", "COPYRIGHT"]
authors = [
{name = "Dissect Team", email = "dissect@fox-it.com"}
]
Expand All @@ -16,7 +17,6 @@ classifiers = [
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"License :: OSI Approved",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Topic :: Internet :: Log Analysis",
Expand Down Expand Up @@ -45,14 +45,34 @@ dev = [
"dissect.util>=3.22.dev,<4.0.dev", #TODO: Remove once we release a new version
]

[dependency-groups]
test = [
"pytest",
]
lint = [
"ruff==0.13.1",
"vermin",
]
build = [
"build",
]
debug = [
"ipdb",
]
dev = [
{include-group = "test"},
{include-group = "lint"},
{include-group = "debug"},
]

[project.scripts]
vma-extract = "dissect.archive.tools.backup:main"
vbk-extract = "dissect.archive.tools.backup:main"
backup-extract = "dissect.archive.tools.backup:main"

[tool.ruff]
line-length = 120
required-version = ">=0.9.0"
required-version = ">=0.13.1"

[tool.ruff.format]
docstring-code-format = true
Expand Down Expand Up @@ -101,9 +121,6 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
known-first-party = ["dissect.archive"]
known-third-party = ["dissect"]

[tool.setuptools]
license-files = ["LICENSE", "COPYRIGHT"]

[tool.setuptools.packages.find]
include = ["dissect.*"]

Expand Down
18 changes: 8 additions & 10 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ envlist = lint, py3, pypy3
# requires if they are not available on the host system. This requires the
# locally installed tox to have a minimum version 3.3.0. This means the names
# of the configuration options are still according to the tox 3.x syntax.
minversion = 4.4.3
minversion = 4.27.0
# This version of virtualenv will install setuptools version 68.2.2 and pip
# 23.3.1. These versions fully support python projects defined only through a
# pyproject.toml file (PEP-517/PEP-518/PEP-621). This pip version also support
Expand All @@ -14,36 +14,34 @@ requires = virtualenv>=20.24.6
[testenv]
extras = dev
deps =
pytest
pytest-cov
coverage
dependency_groups = test
commands =
pytest --basetemp="{envtmpdir}" {posargs:--color=yes --cov=dissect --cov-report=term-missing -v tests}
coverage report
coverage xml

[testenv:build]
package = skip
deps =
build
dependency_groups = build
commands =
pyproject-build

[testenv:fix]
package = skip
deps =
ruff==0.9.2
dependency_groups = lint
commands =
ruff check --fix dissect tests
ruff format dissect tests

[testenv:lint]
package = skip
deps =
ruff==0.9.2
vermin
dependency_groups = lint
commands =
ruff check dissect tests
vermin -t=3.9- --no-tips --lint dissect tests
ruff format --check dissect tests
vermin -t=3.10- --no-tips --lint dissect tests

[flake8]
max-line-length = 120
Expand Down
Loading