dissect.target 3.20.dev40__py3-none-any.whl → 3.20.dev43__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,8 +5,9 @@ Copyright © 1991-2013 Unicode, Inc.
5
5
  CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
6
6
  For terms of use, see http://www.unicode.org/copyright.html
7
7
 
8
- NOTE: This file should be updated every ~6 months.
9
- Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/windowsZones.xml
8
+ NOTE: This file should be updated every ~6 months.
9
+ Updated at: 2024-10-28
10
+ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/windowsZones.xml
10
11
  -->
11
12
 
12
13
  <supplementalData>
@@ -33,7 +34,6 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
33
34
  <mapZone other="Hawaiian Standard Time" territory="001" type="Pacific/Honolulu"/>
34
35
  <mapZone other="Hawaiian Standard Time" territory="CK" type="Pacific/Rarotonga"/>
35
36
  <mapZone other="Hawaiian Standard Time" territory="PF" type="Pacific/Tahiti"/>
36
- <mapZone other="Hawaiian Standard Time" territory="UM" type="Pacific/Johnston"/>
37
37
  <mapZone other="Hawaiian Standard Time" territory="US" type="Pacific/Honolulu"/>
38
38
  <mapZone other="Hawaiian Standard Time" territory="ZZ" type="Etc/GMT+10"/>
39
39
 
@@ -52,7 +52,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
52
52
 
53
53
  <!-- (UTC-08:00) Baja California -->
54
54
  <mapZone other="Pacific Standard Time (Mexico)" territory="001" type="America/Tijuana"/>
55
- <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Tijuana America/Santa_Isabel"/>
55
+ <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Tijuana"/>
56
56
 
57
57
  <!-- (UTC-08:00) Coordinated Universal Time-08 -->
58
58
  <mapZone other="UTC-08" territory="001" type="Etc/GMT+8"/>
@@ -63,7 +63,6 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
63
63
  <mapZone other="Pacific Standard Time" territory="001" type="America/Los_Angeles"/>
64
64
  <mapZone other="Pacific Standard Time" territory="CA" type="America/Vancouver"/>
65
65
  <mapZone other="Pacific Standard Time" territory="US" type="America/Los_Angeles"/>
66
- <mapZone other="Pacific Standard Time" territory="ZZ" type="PST8PDT"/>
67
66
 
68
67
  <!-- (UTC-07:00) Arizona -->
69
68
  <mapZone other="US Mountain Standard Time" territory="001" type="America/Phoenix"/>
@@ -73,15 +72,14 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
73
72
  <mapZone other="US Mountain Standard Time" territory="ZZ" type="Etc/GMT+7"/>
74
73
 
75
74
  <!-- (UTC-07:00) Chihuahua, La Paz, Mazatlan -->
76
- <mapZone other="Mountain Standard Time (Mexico)" territory="001" type="America/Chihuahua"/>
77
- <mapZone other="Mountain Standard Time (Mexico)" territory="MX" type="America/Chihuahua America/Mazatlan"/>
75
+ <mapZone other="Mountain Standard Time (Mexico)" territory="001" type="America/Mazatlan"/>
76
+ <mapZone other="Mountain Standard Time (Mexico)" territory="MX" type="America/Mazatlan"/>
78
77
 
79
78
  <!-- (UTC-07:00) Mountain Time (US & Canada) -->
80
79
  <mapZone other="Mountain Standard Time" territory="001" type="America/Denver"/>
81
- <mapZone other="Mountain Standard Time" territory="CA" type="America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife"/>
82
- <mapZone other="Mountain Standard Time" territory="MX" type="America/Ojinaga"/>
80
+ <mapZone other="Mountain Standard Time" territory="CA" type="America/Edmonton America/Cambridge_Bay America/Inuvik"/>
81
+ <mapZone other="Mountain Standard Time" territory="MX" type="America/Ciudad_Juarez"/>
83
82
  <mapZone other="Mountain Standard Time" territory="US" type="America/Denver America/Boise"/>
84
- <mapZone other="Mountain Standard Time" territory="ZZ" type="MST7MDT"/>
85
83
 
86
84
  <!-- (UTC-07:00) Yukon -->
87
85
  <mapZone other="Yukon Standard Time" territory="001" type="America/Whitehorse"/>
@@ -100,10 +98,9 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
100
98
 
101
99
  <!-- (UTC-06:00) Central Time (US & Canada) -->
102
100
  <mapZone other="Central Standard Time" territory="001" type="America/Chicago"/>
103
- <mapZone other="Central Standard Time" territory="CA" type="America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute"/>
104
- <mapZone other="Central Standard Time" territory="MX" type="America/Matamoros"/>
101
+ <mapZone other="Central Standard Time" territory="CA" type="America/Winnipeg America/Rankin_Inlet America/Resolute"/>
102
+ <mapZone other="Central Standard Time" territory="MX" type="America/Matamoros America/Ojinaga"/>
105
103
  <mapZone other="Central Standard Time" territory="US" type="America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem"/>
106
- <mapZone other="Central Standard Time" territory="ZZ" type="CST6CDT"/>
107
104
 
108
105
  <!-- (UTC-06:00) Easter Island -->
109
106
  <mapZone other="Easter Island Standard Time" territory="001" type="Pacific/Easter"/>
@@ -111,7 +108,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
111
108
 
112
109
  <!-- (UTC-06:00) Guadalajara, Mexico City, Monterrey -->
113
110
  <mapZone other="Central Standard Time (Mexico)" territory="001" type="America/Mexico_City"/>
114
- <mapZone other="Central Standard Time (Mexico)" territory="MX" type="America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey"/>
111
+ <mapZone other="Central Standard Time (Mexico)" territory="MX" type="America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey America/Chihuahua "/>
115
112
 
116
113
  <!-- (UTC-06:00) Saskatchewan -->
117
114
  <mapZone other="Canada Central Standard Time" territory="001" type="America/Regina"/>
@@ -136,9 +133,8 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
136
133
  <!-- (UTC-05:00) Eastern Time (US & Canada) -->
137
134
  <mapZone other="Eastern Standard Time" territory="001" type="America/New_York"/>
138
135
  <mapZone other="Eastern Standard Time" territory="BS" type="America/Nassau"/>
139
- <mapZone other="Eastern Standard Time" territory="CA" type="America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay"/>
136
+ <mapZone other="Eastern Standard Time" territory="CA" type="America/Toronto America/Iqaluit"/>
140
137
  <mapZone other="Eastern Standard Time" territory="US" type="America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville"/>
141
- <mapZone other="Eastern Standard Time" territory="ZZ" type="EST5EDT"/>
142
138
 
143
139
  <!-- (UTC-05:00) Haiti -->
144
140
  <mapZone other="Haiti Standard Time" territory="001" type="America/Port-au-Prince"/>
@@ -424,7 +420,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
424
420
  <mapZone other="FLE Standard Time" territory="FI" type="Europe/Helsinki"/>
425
421
  <mapZone other="FLE Standard Time" territory="LT" type="Europe/Vilnius"/>
426
422
  <mapZone other="FLE Standard Time" territory="LV" type="Europe/Riga"/>
427
- <mapZone other="FLE Standard Time" territory="UA" type="Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye"/>
423
+ <mapZone other="FLE Standard Time" territory="UA" type="Europe/Kiev"/>
428
424
 
429
425
  <!-- (UTC+02:00) Jerusalem -->
430
426
  <mapZone other="Israel Standard Time" territory="001" type="Asia/Jerusalem"/>
@@ -541,7 +537,8 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
541
537
  <!-- (UTC+05:00) Ashgabat, Tashkent -->
542
538
  <mapZone other="West Asia Standard Time" territory="001" type="Asia/Tashkent"/>
543
539
  <mapZone other="West Asia Standard Time" territory="AQ" type="Antarctica/Mawson"/>
544
- <mapZone other="West Asia Standard Time" territory="KZ" type="Asia/Oral Asia/Aqtau Asia/Aqtobe Asia/Atyrau"/>
540
+ <!-- Microsoft may create a new zone dedicated for Almaty and Qostanay. -->
541
+ <mapZone other="West Asia Standard Time" territory="KZ" type="Asia/Oral Asia/Almaty Asia/Aqtau Asia/Aqtobe Asia/Atyrau Asia/Qostanay"/>
545
542
  <mapZone other="West Asia Standard Time" territory="MV" type="Indian/Maldives"/>
546
543
  <mapZone other="West Asia Standard Time" territory="TF" type="Indian/Kerguelen"/>
547
544
  <mapZone other="West Asia Standard Time" territory="TJ" type="Asia/Dushanbe"/>
@@ -573,13 +570,12 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
573
570
  <mapZone other="Nepal Standard Time" territory="001" type="Asia/Katmandu"/>
574
571
  <mapZone other="Nepal Standard Time" territory="NP" type="Asia/Katmandu"/>
575
572
 
576
- <!-- (UTC+06:00) Astana -->
577
- <mapZone other="Central Asia Standard Time" territory="001" type="Asia/Almaty"/>
573
+ <!-- (UTC+06:00) Astana --> <!-- Microsoft probably keeps Central Asia Standard Time, but change Astana to something else. -->
574
+ <mapZone other="Central Asia Standard Time" territory="001" type="Asia/Bishkek"/>
578
575
  <mapZone other="Central Asia Standard Time" territory="AQ" type="Antarctica/Vostok"/>
579
576
  <mapZone other="Central Asia Standard Time" territory="CN" type="Asia/Urumqi"/>
580
577
  <mapZone other="Central Asia Standard Time" territory="IO" type="Indian/Chagos"/>
581
578
  <mapZone other="Central Asia Standard Time" territory="KG" type="Asia/Bishkek"/>
582
- <mapZone other="Central Asia Standard Time" territory="KZ" type="Asia/Almaty Asia/Qostanay"/>
583
579
  <mapZone other="Central Asia Standard Time" territory="ZZ" type="Etc/GMT-6"/>
584
580
 
585
581
  <!-- (UTC+06:00) Dhaka -->
@@ -656,7 +652,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
656
652
 
657
653
  <!-- (UTC+08:00) Ulaanbaatar -->
658
654
  <mapZone other="Ulaanbaatar Standard Time" territory="001" type="Asia/Ulaanbaatar"/>
659
- <mapZone other="Ulaanbaatar Standard Time" territory="MN" type="Asia/Ulaanbaatar Asia/Choibalsan"/>
655
+ <mapZone other="Ulaanbaatar Standard Time" territory="MN" type="Asia/Ulaanbaatar"/>
660
656
 
661
657
  <!-- (UTC+08:45) Eucla -->
662
658
  <mapZone other="Aus Central W. Standard Time" territory="001" type="Australia/Eucla"/>
@@ -713,7 +709,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
713
709
 
714
710
  <!-- (UTC+10:00) Hobart -->
715
711
  <mapZone other="Tasmania Standard Time" territory="001" type="Australia/Hobart"/>
716
- <mapZone other="Tasmania Standard Time" territory="AU" type="Australia/Hobart Australia/Currie Antarctica/Macquarie"/>
712
+ <mapZone other="Tasmania Standard Time" territory="AU" type="Australia/Hobart Antarctica/Macquarie"/>
717
713
 
718
714
  <!-- (UTC+10:00) Vladivostok -->
719
715
  <mapZone other="Vladivostok Standard Time" territory="001" type="Asia/Vladivostok"/>
@@ -1,6 +1,8 @@
1
+ import json
2
+
1
3
  from dissect.target.helpers.docs import INDENT_STEP, get_docstring
2
4
  from dissect.target.loader import LOADERS_BY_SCHEME
3
- from dissect.target.plugin import Plugin, export
5
+ from dissect.target.plugin import Plugin, arg, export
4
6
 
5
7
 
6
8
  class LoaderListPlugin(Plugin):
@@ -10,7 +12,12 @@ class LoaderListPlugin(Plugin):
10
12
  pass
11
13
 
12
14
  @export(output="none")
13
- def loaders(self) -> None:
15
+ # NOTE: We would prefer to re-use arguments across plugins from argparse in query.py, but that is not possible yet.
16
+ # For now we use --as-json, but in the future this should be changed to inherit --json from target-query.
17
+ # https://github.com/fox-it/dissect.target/pull/841
18
+ # https://github.com/fox-it/dissect.target/issues/889
19
+ @arg("--as-json", dest="as_json", action="store_true")
20
+ def loaders(self, as_json: bool = False) -> None:
14
21
  """List the available loaders."""
15
22
 
16
23
  loaders_info = {}
@@ -21,6 +28,12 @@ class LoaderListPlugin(Plugin):
21
28
  except ImportError:
22
29
  continue
23
30
 
24
- print("Available loaders:")
25
- for loader_name, loader_description in sorted(loaders_info.items()):
26
- print(f"{INDENT_STEP}{loader_name} - {loader_description}")
31
+ loaders = sorted(loaders_info.items())
32
+
33
+ if as_json:
34
+ print(json.dumps([{"name": name, "description": desc} for name, desc in loaders]), end="")
35
+
36
+ else:
37
+ print("Available loaders:")
38
+ for loader_name, loader_description in loaders:
39
+ print(f"{INDENT_STEP}{loader_name} - {loader_description}")
@@ -1,5 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ import json
1
4
  import textwrap
2
- from typing import Dict, List, Type, Union
5
+ from typing import Iterator, Type
3
6
 
4
7
  from dissect.target import plugin
5
8
  from dissect.target.helpers.docs import INDENT_STEP, get_plugin_overview
@@ -23,7 +26,8 @@ def categorize_plugins(plugins_selection: list[dict] = None) -> dict:
23
26
  return output_dict
24
27
 
25
28
 
26
- def get_exported_plugins():
29
+ def get_exported_plugins() -> list:
30
+ """Returns list of exported plugins."""
27
31
  return [p for p in plugin.plugins() if len(p["exports"])]
28
32
 
29
33
 
@@ -50,10 +54,10 @@ def update_dict_recursive(source_dict: dict, updated_dict: dict) -> dict:
50
54
 
51
55
 
52
56
  def output_plugin_description_recursive(
53
- structure_dict: Union[Dict, Plugin],
57
+ structure_dict: dict | Plugin,
54
58
  print_docs: bool,
55
- indentation_step=0,
56
- ) -> List[str]:
59
+ indentation_step: int = 0,
60
+ ) -> list[str]:
57
61
  """Create plugin overview with identations."""
58
62
 
59
63
  if isinstance(structure_dict, type) and issubclass(structure_dict, Plugin):
@@ -78,10 +82,10 @@ def get_plugin_description(
78
82
 
79
83
 
80
84
  def get_description_dict(
81
- structure_dict: Dict,
85
+ structure_dict: dict,
82
86
  print_docs: bool,
83
87
  indentation_step: int,
84
- ) -> List[str]:
88
+ ) -> list[str]:
85
89
  """Returns a list of indented descriptions."""
86
90
 
87
91
  output_descriptions = []
@@ -105,10 +109,17 @@ class PluginListPlugin(Plugin):
105
109
 
106
110
  @export(output="none", cache=False)
107
111
  @arg("--docs", dest="print_docs", action="store_true")
108
- def plugins(self, plugins: list[dict] = None, print_docs: bool = False) -> None:
109
- """Print all registered plugins to stdout."""
112
+ # NOTE: We would prefer to re-use arguments across plugins from argparse in query.py, but that is not possible yet.
113
+ # For now we use --as-json, but in the future this should be changed to inherit --json from target-query.
114
+ # https://github.com/fox-it/dissect.target/pull/841
115
+ # https://github.com/fox-it/dissect.target/issues/889
116
+ @arg("--as-json", dest="as_json", action="store_true")
117
+ def plugins(self, plugins: list[Plugin] = None, print_docs: bool = False, as_json: bool = False) -> None:
118
+ """Print all available plugins."""
119
+
120
+ dict_plugins = list({p.path: p.plugin_desc for p in plugins}.values())
121
+ categorized_plugins = dict(sorted(categorize_plugins(dict_plugins).items()))
110
122
 
111
- categorized_plugins = dict(sorted(categorize_plugins(plugins).items()))
112
123
  plugin_descriptions = output_plugin_description_recursive(categorized_plugins, print_docs)
113
124
 
114
125
  plugins_list = textwrap.indent(
@@ -142,4 +153,32 @@ class PluginListPlugin(Plugin):
142
153
  "Failed to load:",
143
154
  failed_list,
144
155
  ]
145
- print("\n".join(output_lines))
156
+
157
+ if as_json:
158
+ out = {"loaded": list(generate_plugins_json(plugins))}
159
+
160
+ if failed_plugins := plugin.failed():
161
+ out["failed"] = [
162
+ {"module": p["module"], "stacktrace": "".join(p["stacktrace"])} for p in failed_plugins
163
+ ]
164
+
165
+ print(json.dumps(out), end="")
166
+
167
+ else:
168
+ print("\n".join(output_lines))
169
+
170
+
171
+ def generate_plugins_json(plugins: list[Plugin]) -> Iterator[dict]:
172
+ """Generates JSON output of a list of :class:`Plugin`s."""
173
+
174
+ for p in plugins:
175
+ func = getattr(p.class_object, p.method_name)
176
+ description = getattr(func, "__doc__", None)
177
+ summary = description.split("\n\n", 1)[0].strip() if description else None
178
+
179
+ yield {
180
+ "name": p.name,
181
+ "output": p.output_type,
182
+ "description": summary,
183
+ "path": p.path,
184
+ }
@@ -169,31 +169,40 @@ def main():
169
169
  # Show the list of available plugins for the given optional target and optional
170
170
  # search pattern, only display plugins that can be applied to ANY targets
171
171
  if args.list:
172
- collected_plugins = {}
172
+ collected_plugins = []
173
173
 
174
174
  if targets:
175
175
  for plugin_target in Target.open_all(targets, args.children):
176
176
  funcs, _ = find_plugin_functions(plugin_target, args.list, compatibility=True, show_hidden=True)
177
177
  for func in funcs:
178
- collected_plugins[func.path] = func.plugin_desc
178
+ collected_plugins.append(func)
179
179
  else:
180
180
  funcs, _ = find_plugin_functions(Target(), args.list, compatibility=False, show_hidden=True)
181
181
  for func in funcs:
182
- collected_plugins[func.path] = func.plugin_desc
182
+ collected_plugins.append(func)
183
183
 
184
- # Display in a user friendly manner
185
184
  target = Target()
186
185
  fparser = generate_argparse_for_bound_method(target.plugins, usage_tmpl=USAGE_FORMAT_TMPL)
187
186
  fargs, rest = fparser.parse_known_args(rest)
188
187
 
188
+ # Display in a user friendly manner
189
189
  if collected_plugins:
190
- target.plugins(list(collected_plugins.values()))
190
+ if args.json:
191
+ print('{"plugins": ', end="")
192
+ target.plugins(collected_plugins, as_json=args.json)
191
193
 
192
194
  # No real targets specified, show the available loaders
193
195
  if not targets:
194
196
  fparser = generate_argparse_for_bound_method(target.loaders, usage_tmpl=USAGE_FORMAT_TMPL)
195
197
  fargs, rest = fparser.parse_known_args(rest)
196
- target.loaders(**vars(fargs))
198
+ del fargs.as_json
199
+ if args.json:
200
+ print(', "loaders": ', end="")
201
+ target.loaders(**vars(fargs), as_json=args.json)
202
+
203
+ if args.json:
204
+ print("}")
205
+
197
206
  parser.exit()
198
207
 
199
208
  if not targets:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev40
3
+ Version: 3.20.dev43
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
@@ -72,7 +72,7 @@ dissect/target/helpers/compat/path_311.py,sha256=2aydxCMWu1pN8PTBCo8HUbHRMC1xO-h
72
72
  dissect/target/helpers/compat/path_312.py,sha256=oYa9SzcUI6FZmayQSy-HHPiIdPk5FX0XAQjnjGLsjCc,15223
73
73
  dissect/target/helpers/compat/path_39.py,sha256=FIyZ3sb-XQhJnm02jVdOc6ncjCWa9OVxlCb_yap8A1o,18638
74
74
  dissect/target/helpers/compat/path_common.py,sha256=mwUUnCMhrhsO5eMqV_XxCBA4ZxVZov0PpWgy_umGhBk,7763
75
- dissect/target/helpers/data/windowsZones.xml,sha256=4OijeR7oxI0ZwPTSwCkmtcofOsUCjSnbZ4dQxVOM_4o,50005
75
+ dissect/target/helpers/data/windowsZones.xml,sha256=UJYMLQMvX3Kjg-BHzwAiOTXDDFO2d1C2v4DSrbkYYK0,49586
76
76
  dissect/target/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  dissect/target/loaders/ab.py,sha256=iwj1LHe_-VaBmj6d-nKrvim1UvrJ-nzp2LlgCFlOuUk,9484
78
78
  dissect/target/loaders/ad1.py,sha256=1_VmPZckDzXVvNF-HNtoUZqabnhCKBLUD3vVaitHQ00,571
@@ -186,10 +186,10 @@ dissect/target/plugins/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
186
186
  dissect/target/plugins/general/config.py,sha256=Mdy9uhWn4OJ96zfXpLgjVifV5SrViqHnpSnKhC1mjZE,3432
187
187
  dissect/target/plugins/general/default.py,sha256=8W_9JV3jKEeETlyTrB25sACoIIFmmO8wlVU5Zoi51W0,1425
188
188
  dissect/target/plugins/general/example.py,sha256=mYAbhtfQmUBj2L2C1DFt9bWpI7rQLJwCIYUsNLcA_pc,6053
189
- dissect/target/plugins/general/loaders.py,sha256=B-9GA4ftiFIpxbc8BjliTNpQREN3lvNlUhJf2N3fhjM,887
189
+ dissect/target/plugins/general/loaders.py,sha256=z_t55Q1XNjmTOxq0E4tCwpZ-utFyxiLKyAJIFgJMlJs,1508
190
190
  dissect/target/plugins/general/network.py,sha256=J8aMfUJ7dgwqpaXzZpHHyOUYg-cPef2Qaa3krUj-A-Q,3225
191
191
  dissect/target/plugins/general/osinfo.py,sha256=oU-vmMiA-oaSEQWTSyn6-yQiH2sLQT6aTQHRd0677wo,1415
192
- dissect/target/plugins/general/plugins.py,sha256=pn6uwfzbLnVTBpel5_GRPOFU3XEAMzbsiFY1UWKkWjc,4575
192
+ dissect/target/plugins/general/plugins.py,sha256=9KJ70YvYwBfxt19C9yISv8YE4mOdHNvP16fTCTHC68U,6033
193
193
  dissect/target/plugins/general/scrape.py,sha256=Fz7BNXflvuxlnVulyyDhLpyU8D_hJdH6vWVtER9vjTg,6651
194
194
  dissect/target/plugins/general/users.py,sha256=yy9gvRXfN9BT71v4Xqo5hpwfgN9he9Otu8TBPZ_Tegs,3009
195
195
  dissect/target/plugins/os/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -356,7 +356,7 @@ dissect/target/tools/fsutils.py,sha256=q0t9gFwKHaPr2Ya-MN2o4LsYledde7kp2DZZTd8ro
356
356
  dissect/target/tools/info.py,sha256=8nnbqFUYeo4NLPE7ORcTBcDL-TioGB2Nqc1TKcu5qdY,5715
357
357
  dissect/target/tools/logging.py,sha256=5ZnumtMWLyslxfrUGZ4ntRyf3obOOhmn8SBjKfdLcEg,4174
358
358
  dissect/target/tools/mount.py,sha256=8GRYnu4xEmFBHxuIZAYhOMyyTGX8fat1Ou07DNiUnW4,3945
359
- dissect/target/tools/query.py,sha256=e-yAN9zdQjuOiTuoOQoo17mVEQGGcOgaA9YkF4GYpkM,15394
359
+ dissect/target/tools/query.py,sha256=OYWVmCx2nFx85x1r8Y6D17UdUIi8PJm304xBfT-H8vs,15605
360
360
  dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
361
361
  dissect/target/tools/shell.py,sha256=qY-JIwFQKBHTbqOiFxeO9OYeOlesQlx0r8PHghSAV8I,54207
362
362
  dissect/target/tools/utils.py,sha256=JJZDSso1CEK2sv4Z3HJNgqxH6G9S5lbmV-C3h-XmcMo,12035
@@ -373,10 +373,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
373
373
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
374
374
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
375
375
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
376
- dissect.target-3.20.dev40.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
377
- dissect.target-3.20.dev40.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
378
- dissect.target-3.20.dev40.dist-info/METADATA,sha256=sfc-H38qJzXkx1449zv0Y7SgicuUfJeki3JFiC6EJ4c,12897
379
- dissect.target-3.20.dev40.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
380
- dissect.target-3.20.dev40.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
381
- dissect.target-3.20.dev40.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
382
- dissect.target-3.20.dev40.dist-info/RECORD,,
376
+ dissect.target-3.20.dev43.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
377
+ dissect.target-3.20.dev43.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
378
+ dissect.target-3.20.dev43.dist-info/METADATA,sha256=FO2hxtOkklCzr7ZrCmD1SeMtL5Dqy8jufOSQFRUQVRY,12897
379
+ dissect.target-3.20.dev43.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
380
+ dissect.target-3.20.dev43.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
381
+ dissect.target-3.20.dev43.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
382
+ dissect.target-3.20.dev43.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5