dissect.target 3.17.dev8__py3-none-any.whl → 3.17.dev10__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import io
4
4
  import json
5
5
  import re
6
+ import sys
6
7
  from collections import deque
7
8
  from configparser import ConfigParser, MissingSectionHeaderError
8
9
  from dataclasses import dataclass
@@ -31,9 +32,20 @@ try:
31
32
  import yaml
32
33
 
33
34
  PY_YAML = True
34
- except (AttributeError, ImportError):
35
+ except ImportError:
35
36
  PY_YAML = False
36
37
 
38
+ try:
39
+ if sys.version_info < (3, 11):
40
+ import tomli as toml
41
+ else:
42
+ # tomllib is included since python 3.11
43
+ import tomllib as toml # novermin
44
+
45
+ HAS_TOML = True
46
+ except ImportError:
47
+ HAS_TOML = False
48
+
37
49
 
38
50
  def _update_dictionary(current: dict[str, Any], key: str, value: Any) -> None:
39
51
  if prev_value := current.get(key):
@@ -408,6 +420,16 @@ class Yaml(ConfigurationParser):
408
420
  raise ConfigurationParsingError("Failed to parse file, please install PyYAML.")
409
421
 
410
422
 
423
+ class Toml(ConfigurationParser):
424
+ """Parses a Toml file."""
425
+
426
+ def parse_file(self, fh: TextIO) -> None:
427
+ if HAS_TOML:
428
+ self.parsed_data = toml.loads(fh.read())
429
+ else:
430
+ raise ConfigurationParsingError("Failed to parse file, please install tomli.")
431
+
432
+
411
433
  class ScopeManager:
412
434
  """A (context)manager for dictionary scoping.
413
435
 
@@ -696,6 +718,7 @@ CONFIG_MAP: dict[tuple[str, ...], ParserConfig] = {
696
718
  "sample": ParserConfig(Txt),
697
719
  "systemd": ParserConfig(SystemD),
698
720
  "template": ParserConfig(Txt),
721
+ "toml": ParserConfig(Toml),
699
722
  }
700
723
 
701
724
  KNOWN_FILES: dict[str, type[ConfigurationParser]] = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.17.dev8
3
+ Version: 3.17.dev10
4
4
  Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -58,6 +58,7 @@ Requires-Dist: fusepy ; extra == 'full'
58
58
  Requires-Dist: pycryptodome ; extra == 'full'
59
59
  Requires-Dist: pyyaml ; extra == 'full'
60
60
  Requires-Dist: zstandard ; extra == 'full'
61
+ Requires-Dist: tomli ; (python_version < "3.11") and extra == 'full'
61
62
  Provides-Extra: mqtt
62
63
  Requires-Dist: dissect.target[full] ; extra == 'mqtt'
63
64
  Requires-Dist: paho-mqtt ==1.6.1 ; extra == 'mqtt'
@@ -44,7 +44,7 @@ dissect/target/filesystems/zip.py,sha256=WT1bQhzX_1MXXVZTKrJniae4xqRqMZ8FsfbvhgG
44
44
  dissect/target/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  dissect/target/helpers/cache.py,sha256=_0w_iPD1OM066Ueyadb70erQW05jNnpJe-bDDN1UyXc,8444
46
46
  dissect/target/helpers/config.py,sha256=6917CZ6eDHaK_tOoiVEIndyhRXO6r6eCBIleq6f47PQ,2346
47
- dissect/target/helpers/configutil.py,sha256=t_UNvcWuMMT5C1tut_PgTwCnVUodf6RjhfXP4FSkmdo,25068
47
+ dissect/target/helpers/configutil.py,sha256=czuzKdcV7O6OZopDv3Olr00uGbBAXxEnm0QLX_xIj8g,25617
48
48
  dissect/target/helpers/cyber.py,sha256=Ki5oSU0GgQxjgC_yWoeieGP7GOY5blQCzNX7vy7Pgas,16782
49
49
  dissect/target/helpers/descriptor_extensions.py,sha256=uT8GwznfDAiIgMM7JKKOY0PXKMv2c0GCqJTCkWFgops,2605
50
50
  dissect/target/helpers/docs.py,sha256=J5U65Y3yOTqxDEZRCdrEmO63XQCeDzOJea1PwPM6Cyc,5146
@@ -336,10 +336,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
336
336
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
337
337
  dissect/target/volumes/md.py,sha256=j1K1iKmspl0C_OJFc7-Q1BMWN2OCC5EVANIgVlJ_fIE,1673
338
338
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
339
- dissect.target-3.17.dev8.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
340
- dissect.target-3.17.dev8.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
341
- dissect.target-3.17.dev8.dist-info/METADATA,sha256=QigJ_zmpT9S-poYx54mNBZkYJkWSPT6PBEtiu8PI3O8,11225
342
- dissect.target-3.17.dev8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
343
- dissect.target-3.17.dev8.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
344
- dissect.target-3.17.dev8.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
345
- dissect.target-3.17.dev8.dist-info/RECORD,,
339
+ dissect.target-3.17.dev10.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
340
+ dissect.target-3.17.dev10.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
341
+ dissect.target-3.17.dev10.dist-info/METADATA,sha256=VF_8EEQVRLeEGycmdTbNEAx1oK0fC-YMDwS2aex6FNY,11295
342
+ dissect.target-3.17.dev10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
343
+ dissect.target-3.17.dev10.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
344
+ dissect.target-3.17.dev10.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
345
+ dissect.target-3.17.dev10.dist-info/RECORD,,