diff --git a/dissect/ntfs/c_ntfs.pyi b/dissect/ntfs/c_ntfs.pyi index 3a6a5cf..1253ea9 100644 --- a/dissect/ntfs/c_ntfs.pyi +++ b/dissect/ntfs/c_ntfs.pyi @@ -1,8 +1,7 @@ # Generated by cstruct-stubgen -from typing import BinaryIO, Literal, overload +from typing import BinaryIO, Literal, TypeAlias, overload import dissect.cstruct as __cs__ -from typing_extensions import TypeAlias class _c_ntfs(__cs__.cstruct): class FILE_ATTRIBUTE(__cs__.Flag): diff --git a/dissect/ntfs/index.py b/dissect/ntfs/index.py index 2379d0c..f664523 100644 --- a/dissect/ntfs/index.py +++ b/dissect/ntfs/index.py @@ -3,7 +3,7 @@ import io from enum import Enum, auto from functools import cached_property, lru_cache -from typing import TYPE_CHECKING, Any, BinaryIO, Callable +from typing import TYPE_CHECKING, Any, BinaryIO from dissect.ntfs.attr import AttributeRecord from dissect.ntfs.c_ntfs import ATTRIBUTE_TYPE_CODE, COLLATION, INDEX_ENTRY_END, INDEX_ENTRY_NODE, SECTOR_SHIFT, c_ntfs @@ -16,7 +16,7 @@ from dissect.ntfs.util import apply_fixup, segment_reference if TYPE_CHECKING: - from collections.abc import Iterator + from collections.abc import Callable, Iterator from dissect.ntfs.mft import MftRecord diff --git a/pyproject.toml b/pyproject.toml index f55e9f1..97d3642 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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.ntfs" description = "A Dissect module implementing a parser for the NTFS file system, used by the Windows operating system" 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"} ] @@ -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", @@ -41,9 +41,29 @@ dev = [ "dissect.util>=3.0.dev,<4.0.dev", ] +[dependency-groups] +test = [ + "pytest", +] +lint = [ + "ruff==0.13.1", + "vermin", +] +build = [ + "build", +] +debug = [ + "ipdb", +] +dev = [ + {include-group = "test"}, + {include-group = "lint"}, + {include-group = "debug"}, +] + [tool.ruff] line-length = 120 -required-version = ">=0.9.0" +required-version = ">=0.13.1" [tool.ruff.format] docstring-code-format = true @@ -93,9 +113,6 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1 known-first-party = ["dissect.ntfs"] known-third-party = ["dissect"] -[tool.setuptools] -license-files = ["LICENSE", "COPYRIGHT"] - [tool.setuptools.packages.find] include = ["dissect.*"] diff --git a/tox.ini b/tox.ini index c4d1023..284a4ba 100644 --- a/tox.ini +++ b/tox.ini @@ -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 @@ -14,9 +14,9 @@ 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 @@ -24,26 +24,24 @@ commands = [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 [testenv:docs-build] allowlist_externals = make