dissect.btrfs 1.8.dev1__tar.gz → 1.9.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 (56) hide show
  1. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/PKG-INFO +7 -17
  2. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/README.md +4 -11
  3. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect.btrfs.egg-info/PKG-INFO +7 -17
  4. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect.btrfs.egg-info/requires.txt +0 -5
  5. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/pyproject.toml +25 -13
  6. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/test_btrfs.py +1 -1
  7. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tox.ini +8 -10
  8. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/.git-blame-ignore-revs +0 -0
  9. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/.gitattributes +0 -0
  10. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/COPYRIGHT +0 -0
  11. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/LICENSE +0 -0
  12. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/MANIFEST.in +0 -0
  13. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/__init__.py +0 -0
  14. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/btrfs.py +0 -0
  15. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/c_btrfs.py +0 -0
  16. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/exceptions.py +0 -0
  17. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/stream.py +0 -0
  18. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect/btrfs/tree.py +0 -0
  19. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect.btrfs.egg-info/SOURCES.txt +0 -0
  20. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect.btrfs.egg-info/dependency_links.txt +0 -0
  21. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/dissect.btrfs.egg-info/top_level.txt +0 -0
  22. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/setup.cfg +0 -0
  23. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/__init__.py +0 -0
  24. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-compression.bin.gz +0 -0
  25. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-default.bin.gz +0 -0
  26. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-dup-1.bin.gz +0 -0
  27. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-dup-2.bin.gz +0 -0
  28. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid0-1.bin.gz +0 -0
  29. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid0-2.bin.gz +0 -0
  30. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1-1.bin.gz +0 -0
  31. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1-2.bin.gz +0 -0
  32. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid10-1.bin.gz +0 -0
  33. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid10-2.bin.gz +0 -0
  34. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c3-1.bin.gz +0 -0
  35. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c3-2.bin.gz +0 -0
  36. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c3-3.bin.gz +0 -0
  37. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c4-1.bin.gz +0 -0
  38. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c4-2.bin.gz +0 -0
  39. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c4-3.bin.gz +0 -0
  40. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid1c4-4.bin.gz +0 -0
  41. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid5-1.bin.gz +0 -0
  42. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid5-2.bin.gz +0 -0
  43. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid6-1.bin.gz +0 -0
  44. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid6-2.bin.gz +0 -0
  45. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-raid6-3.bin.gz +0 -0
  46. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-sparse.bin.gz +0 -0
  47. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-subvolume-custom-default.bin.gz +0 -0
  48. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-subvolume-nested.bin.gz +0 -0
  49. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-subvolume-snapshot.bin.gz +0 -0
  50. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_data/btrfs-subvolume.bin.gz +0 -0
  51. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_docs/Makefile +0 -0
  52. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_docs/__init__.py +0 -0
  53. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_docs/conf.py +0 -0
  54. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/_docs/index.rst +0 -0
  55. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/conftest.py +0 -0
  56. {dissect_btrfs-1.8.dev1 → dissect_btrfs-1.9.dev1}/tests/test_exceptions.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.btrfs
3
- Version: 1.8.dev1
3
+ Version: 1.9.dev1
4
4
  Summary: A Dissect module implementing a parser for the Btrfs file system, a commonly used Linux filesystem.
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
- License: Affero General Public License v3
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.btrfs
9
9
  Project-URL: repository, https://github.com/fox-it/dissect.btrfs
@@ -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: ~=3.9
20
+ Requires-Python: >=3.10
22
21
  Description-Content-Type: text/markdown
23
22
  License-File: LICENSE
24
23
  License-File: COPYRIGHT
@@ -28,8 +27,6 @@ Provides-Extra: full
28
27
  Requires-Dist: zstandard; extra == "full"
29
28
  Provides-Extra: gcrc32
30
29
  Requires-Dist: google-crc32c; extra == "gcrc32"
31
- Provides-Extra: lzo
32
- Requires-Dist: python-lzo; (platform_system != "Windows" or platform_python_implementation != "PyPy") and extra == "lzo"
33
30
  Provides-Extra: dev
34
31
  Requires-Dist: dissect.btrfs[full]; extra == "dev"
35
32
  Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
@@ -55,17 +52,10 @@ Information on the supported Python versions can be found in the Getting Started
55
52
  pip install dissect.btrfs
56
53
  ```
57
54
 
58
- This project decompresses lzo compressed file systems and can use the faster, native (C-based) lzo implementation when
59
- installed, instead of the slower pure Python implementation provided by `dissect.util`. To use these faster
60
- implementations, install the package with the lzo extra:
61
-
62
- ```bash
63
- pip install "dissect.btrfs[lzo]"
64
- ```
65
-
66
- Unfortunately there is no binary `python-lzo` wheel for PyPy installations on Windows, so it won't be installed there.
67
-
68
- This module including the lzo extra is also automatically installed if you install the `dissect` package.
55
+ This project decompresses LZO compressed file systems and can use a faster, native (Rust-based) LZO implementation,
56
+ instead of a slower pure Python implementation. Both implementations are provided by `dissect.util`.
57
+ Pre-build wheels are available for most common platforms and the native implementation will automatically be used if available.
58
+ In the rare case that a pre-build wheel is not available, please refer to `dissect.util` for build instructions.
69
59
 
70
60
  ## Build and test instructions
71
61
 
@@ -17,17 +17,10 @@ Information on the supported Python versions can be found in the Getting Started
17
17
  pip install dissect.btrfs
18
18
  ```
19
19
 
20
- This project decompresses lzo compressed file systems and can use the faster, native (C-based) lzo implementation when
21
- installed, instead of the slower pure Python implementation provided by `dissect.util`. To use these faster
22
- implementations, install the package with the lzo extra:
23
-
24
- ```bash
25
- pip install "dissect.btrfs[lzo]"
26
- ```
27
-
28
- Unfortunately there is no binary `python-lzo` wheel for PyPy installations on Windows, so it won't be installed there.
29
-
30
- This module including the lzo extra is also automatically installed if you install the `dissect` package.
20
+ This project decompresses LZO compressed file systems and can use a faster, native (Rust-based) LZO implementation,
21
+ instead of a slower pure Python implementation. Both implementations are provided by `dissect.util`.
22
+ Pre-build wheels are available for most common platforms and the native implementation will automatically be used if available.
23
+ In the rare case that a pre-build wheel is not available, please refer to `dissect.util` for build instructions.
31
24
 
32
25
  ## Build and test instructions
33
26
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dissect.btrfs
3
- Version: 1.8.dev1
3
+ Version: 1.9.dev1
4
4
  Summary: A Dissect module implementing a parser for the Btrfs file system, a commonly used Linux filesystem.
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
- License: Affero General Public License v3
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.btrfs
9
9
  Project-URL: repository, https://github.com/fox-it/dissect.btrfs
@@ -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: ~=3.9
20
+ Requires-Python: >=3.10
22
21
  Description-Content-Type: text/markdown
23
22
  License-File: LICENSE
24
23
  License-File: COPYRIGHT
@@ -28,8 +27,6 @@ Provides-Extra: full
28
27
  Requires-Dist: zstandard; extra == "full"
29
28
  Provides-Extra: gcrc32
30
29
  Requires-Dist: google-crc32c; extra == "gcrc32"
31
- Provides-Extra: lzo
32
- Requires-Dist: python-lzo; (platform_system != "Windows" or platform_python_implementation != "PyPy") and extra == "lzo"
33
30
  Provides-Extra: dev
34
31
  Requires-Dist: dissect.btrfs[full]; extra == "dev"
35
32
  Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
@@ -55,17 +52,10 @@ Information on the supported Python versions can be found in the Getting Started
55
52
  pip install dissect.btrfs
56
53
  ```
57
54
 
58
- This project decompresses lzo compressed file systems and can use the faster, native (C-based) lzo implementation when
59
- installed, instead of the slower pure Python implementation provided by `dissect.util`. To use these faster
60
- implementations, install the package with the lzo extra:
61
-
62
- ```bash
63
- pip install "dissect.btrfs[lzo]"
64
- ```
65
-
66
- Unfortunately there is no binary `python-lzo` wheel for PyPy installations on Windows, so it won't be installed there.
67
-
68
- This module including the lzo extra is also automatically installed if you install the `dissect` package.
55
+ This project decompresses LZO compressed file systems and can use a faster, native (Rust-based) LZO implementation,
56
+ instead of a slower pure Python implementation. Both implementations are provided by `dissect.util`.
57
+ Pre-build wheels are available for most common platforms and the native implementation will automatically be used if available.
58
+ In the rare case that a pre-build wheel is not available, please refer to `dissect.util` for build instructions.
69
59
 
70
60
  ## Build and test instructions
71
61
 
@@ -11,8 +11,3 @@ zstandard
11
11
 
12
12
  [gcrc32]
13
13
  google-crc32c
14
-
15
- [lzo]
16
-
17
- [lzo:platform_system != "Windows" or platform_python_implementation != "PyPy"]
18
- python-lzo
@@ -1,13 +1,14 @@
1
1
  [build-system]
2
- requires = ["setuptools>=65.5.0", "setuptools_scm[toml]>=6.4.0"]
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.btrfs"
7
7
  description = "A Dissect module implementing a parser for the Btrfs file system, a commonly used Linux filesystem."
8
8
  readme = "README.md"
9
- requires-python = "~=3.9"
10
- license.text = "Affero General Public License v3"
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",
@@ -42,20 +42,35 @@ full = [
42
42
  gcrc32 = [
43
43
  "google-crc32c",
44
44
  ]
45
- lzo = [
46
- # There are no Windows PyPy wheels available for python-lzo
47
- # So we use a pure python fallback for it.
48
- "python-lzo; platform_system != 'Windows' or platform_python_implementation != 'PyPy'",
49
- ]
50
45
  dev = [
51
46
  "dissect.btrfs[full]",
52
47
  "dissect.cstruct>=4.0.dev,<5.0.dev",
53
48
  "dissect.util>=3.22.dev,<4.0.dev", #TODO: Remove once we release a new dissect version
54
49
  ]
55
50
 
51
+ [dependency-groups]
52
+ test = [
53
+ "pytest",
54
+ ]
55
+ lint = [
56
+ "ruff==0.13.1",
57
+ "vermin",
58
+ ]
59
+ build = [
60
+ "build",
61
+ ]
62
+ debug = [
63
+ "ipdb",
64
+ ]
65
+ dev = [
66
+ {include-group = "test"},
67
+ {include-group = "lint"},
68
+ {include-group = "debug"},
69
+ ]
70
+
56
71
  [tool.ruff]
57
72
  line-length = 120
58
- required-version = ">=0.9.0"
73
+ required-version = ">=0.13.1"
59
74
 
60
75
  [tool.ruff.format]
61
76
  docstring-code-format = true
@@ -104,9 +119,6 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
104
119
  known-first-party = ["dissect.btrfs"]
105
120
  known-third-party = ["dissect"]
106
121
 
107
- [tool.setuptools]
108
- license-files = ["LICENSE", "COPYRIGHT"]
109
-
110
122
  [tool.setuptools.packages.find]
111
123
  include = ["dissect.*"]
112
124
 
@@ -204,7 +204,7 @@ def test_btrfs_profiles_partial(fixture: str, request: pytest.FixtureRequest) ->
204
204
  fhs = fhs[:-1] if fixture == "btrfs_profile_dup" else fhs[1:]
205
205
 
206
206
  if fixture in ("btrfs_profile_dup", "btrfs_profile_raid0"):
207
- with pytest.raises(Error, match="Missing stripe disk for chunk offset .+"):
207
+ with pytest.raises(Error, match=r"Missing stripe disk for chunk offset .+"):
208
208
  fs = Btrfs(fhs)
209
209
 
210
210
  elif fixture in ("btrfs_profile_raid5", "btrfs_profile_raid6"):
@@ -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.4.3
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
- deps =
28
- build
27
+ dependency_groups = build
29
28
  commands =
30
29
  pyproject-build
31
30
 
32
31
  [testenv:fix]
33
32
  package = skip
34
- deps =
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
- deps =
42
- ruff==0.9.2
43
- vermin
40
+ dependency_groups = lint
44
41
  commands =
45
42
  ruff check dissect tests
46
- vermin -t=3.9- --no-tips --lint dissect tests
43
+ ruff format --check dissect tests
44
+ vermin -t=3.10- --no-tips --lint dissect tests
47
45
 
48
46
  [flake8]
49
47
  max-line-length = 120