|
3 | 3 | import json
|
4 | 4 | import attr
|
5 | 5 | from ..utils.messenger import send_message, make_message, gen_uuid, now, AuditFlag
|
6 |
| -from .helpers import ensure_list, gather_runtime_info, hash_file |
7 |
| -from .specs import attr_fields, File, Directory |
| 6 | +from ..utils.hash import hash_function |
| 7 | +from .helpers import ensure_list, gather_runtime_info |
| 8 | +from .specs import attr_fields |
| 9 | +from fileformats.core import FileSet |
8 | 10 |
|
9 | 11 | try:
|
10 | 12 | import importlib_resources
|
@@ -181,10 +183,11 @@ def audit_task(self, task):
|
181 | 183 | command = task.cmdline if hasattr(task.inputs, "executable") else None
|
182 | 184 | attr_list = attr_fields(task.inputs)
|
183 | 185 | for attrs in attr_list:
|
184 |
| - if attrs.type in [File, Directory]: |
185 |
| - input_name = attrs.name |
186 |
| - input_path = os.path.abspath(getattr(task.inputs, input_name)) |
187 |
| - file_hash = hash_file(input_path) |
| 186 | + input_name = attrs.name |
| 187 | + value = getattr(task.inputs, input_name) |
| 188 | + if isinstance(value, FileSet): |
| 189 | + input_path = os.path.abspath(value) |
| 190 | + file_hash = hash_function(value) |
188 | 191 | entity_id = f"uid:{gen_uuid()}"
|
189 | 192 | entity_message = {
|
190 | 193 | "@id": entity_id,
|
|
0 commit comments