dissect.target 3.19.dev53__py3-none-any.whl → 3.19.dev54__py3-none-any.whl

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.
@@ -138,12 +138,18 @@ class MftPlugin(Plugin):
138
138
  FilesystemFilenameCompactRecord,
139
139
  ]
140
140
  )
141
- @arg("--compact", action="store_true", help="compacts the MFT entry timestamps into a single record")
141
+ @arg(
142
+ "--compact",
143
+ group="fmt",
144
+ action="store_true",
145
+ help="compacts the MFT entry timestamps into a single record",
146
+ )
142
147
  @arg("--fs", type=int, default=None, help="optional filesystem index, zero indexed")
143
148
  @arg("--start", type=int, default=0, help="the first MFT segment number")
144
149
  @arg("--end", type=int, default=-1, help="the last MFT segment number")
145
150
  @arg(
146
151
  "--macb",
152
+ group="fmt",
147
153
  action="store_true",
148
154
  help="compacts the MFT entry timestamps into aggregated records with MACB bitfield",
149
155
  )
@@ -171,9 +177,7 @@ class MftPlugin(Plugin):
171
177
 
172
178
  aggr = noaggr
173
179
 
174
- if compact and macb:
175
- raise ValueError("--macb and --compact are mutually exclusive")
176
- elif compact:
180
+ if compact:
177
181
  record_formatter = compacted_formatter
178
182
  elif macb:
179
183
  aggr = macb_aggr
@@ -95,12 +95,24 @@ def generate_argparse_for_unbound_method(
95
95
  parser = argparse.ArgumentParser(description=desc, formatter_class=help_formatter, conflict_handler="resolve")
96
96
 
97
97
  fargs = getattr(method, "__args__", [])
98
+ groups = {}
99
+ default_group_options = {"required": False}
98
100
  for args, kwargs in fargs:
99
- parser.add_argument(*args, **kwargs)
101
+ if "group" in kwargs:
102
+ group_name = kwargs.pop("group")
103
+ options = kwargs.pop("group_options") if "group_options" in kwargs else default_group_options
104
+ if group_name not in groups:
105
+ group = parser.add_mutually_exclusive_group(**options)
106
+ groups[group_name] = group
107
+ else:
108
+ group = groups[group_name]
109
+
110
+ group.add_argument(*args, **kwargs)
111
+ else:
112
+ parser.add_argument(*args, **kwargs)
100
113
 
101
114
  usage = parser.format_usage()
102
115
  offset = usage.find(parser.prog) + len(parser.prog)
103
-
104
116
  func_name = method.__name__
105
117
  usage_tmpl = usage_tmpl or "{prog} {usage}"
106
118
  parser.usage = usage_tmpl.format(prog=parser.prog, name=func_name, usage=usage[offset:])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.19.dev53
3
+ Version: 3.19.dev54
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
@@ -172,7 +172,7 @@ dissect/target/plugins/filesystem/resolver.py,sha256=HfyASUFV4F9uD-yFXilFpPTORAs
172
172
  dissect/target/plugins/filesystem/walkfs.py,sha256=rklbN805roy2fKAQe5L1JhTvI0qNgGS70ZNGFwevLB0,2740
173
173
  dissect/target/plugins/filesystem/yara.py,sha256=zh4hU3L_egddLqDeaHDVuCWYhTlNzPYPVak36Q6IMxI,6621
174
174
  dissect/target/plugins/filesystem/ntfs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
- dissect/target/plugins/filesystem/ntfs/mft.py,sha256=WzvKSlH4egvDsuonRQ3AjYS59t9jjFX_-GOsAPLUeSk,12418
175
+ dissect/target/plugins/filesystem/ntfs/mft.py,sha256=6r2uQrvJsuHGpKxx4vQPBuZ9yGLj-d8RS5y289-VoZI,12384
176
176
  dissect/target/plugins/filesystem/ntfs/mft_timeline.py,sha256=vvNFAZbr7s3X2OTYf4ES_L6-XsouTXcTymfxnHfZ1Rw,6791
177
177
  dissect/target/plugins/filesystem/ntfs/usnjrnl.py,sha256=uiT1ipmcAo__6VIUi8R_vvIu22vdnjMACKwLSAbzYjs,3704
178
178
  dissect/target/plugins/filesystem/ntfs/utils.py,sha256=xG7Lgw9NX4tDDrZVRm0vycFVJTOM7j-HrjqzDh0f4uA,3136
@@ -342,7 +342,7 @@ dissect/target/tools/mount.py,sha256=L_0tSmiBdW4aSaF0vXjB0bAkTC0kmT2N1hrbW6s5Jow
342
342
  dissect/target/tools/query.py,sha256=ONHu2FVomLccikb84qBrlhNmEfRoHYFQMcahk_y2c9A,15580
343
343
  dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
344
344
  dissect/target/tools/shell.py,sha256=dmshIriwdd_UwrdUcTfWkcYD8Z0mjzbDqwyZG-snDdM,50482
345
- dissect/target/tools/utils.py,sha256=ej9w2uOzPf52EslEamFpY4Bc_u5EUI9Ks4mU1QTmWPI,11664
345
+ dissect/target/tools/utils.py,sha256=nnhjNW8v99eVZQ-CgxTbsi8Wa6Z2XKDFr1aWakgq9jc,12191
346
346
  dissect/target/tools/yara.py,sha256=70k-2VMulf1EdkX03nCACzejaOEcsFHOyX-4E40MdQU,2044
347
347
  dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
348
  dissect/target/tools/dump/run.py,sha256=aD84peRS4zHqC78fH7Vd4ni3m1ZmVP70LyMwBRvoDGY,9463
@@ -356,10 +356,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
356
356
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
357
357
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
358
358
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
359
- dissect.target-3.19.dev53.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
360
- dissect.target-3.19.dev53.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
361
- dissect.target-3.19.dev53.dist-info/METADATA,sha256=9Bx6bb3QUXpRP7XxDfw0BeR-YI59jgL9i0eKCzVGrY0,12897
362
- dissect.target-3.19.dev53.dist-info/WHEEL,sha256=ixB2d4u7mugx_bCBycvM9OzZ5yD7NmPXFRtKlORZS2Y,91
363
- dissect.target-3.19.dev53.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
364
- dissect.target-3.19.dev53.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
365
- dissect.target-3.19.dev53.dist-info/RECORD,,
359
+ dissect.target-3.19.dev54.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
360
+ dissect.target-3.19.dev54.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
361
+ dissect.target-3.19.dev54.dist-info/METADATA,sha256=-r6p7_zLix0JuJSqAsy6kbYzI0Cqn2w67fYb_DRYGAQ,12897
362
+ dissect.target-3.19.dev54.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
363
+ dissect.target-3.19.dev54.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
364
+ dissect.target-3.19.dev54.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
365
+ dissect.target-3.19.dev54.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5