PathIterator¶
Iterate over a list of path names.
This node accepts a list of path names, possibly given as a wildcard expression like /parent/child_*, or as a comma-separated list of paths, or as the name of a study manifest file. On each successive update this node will then output one pathname at a time, until the list is exhausted. Using a comma-separated list of wildcard expressions is not supported. Terminate the search string with a / to indicate that the returned results should be paths only; Terminate with *.* (or *.ext) to indicate the results should be files only. Instead of a *, a "capture name" can be assigned in curly braces, e.g., {Subject}. You can also use ** to include matching paths from all subfolders (i.e. myfolder/**/*.xdf will include xdf files in all subfolders whereas myfolder/*.xdf will not). The current pathname emitted by this node can then be wired into a subsequent node as the current path/file, and thereby multiple files can be imported, processed, and then exported in succession. Using capture names allows extracting meta-data from the rwa file path, which is returned by the path iterator in its curmeta output. Such meta-data can, for example, be attached to segments extracted from the data in later processing, using the Set Instance Details node. This node also has an allpaths port which outputs a list of all matching paths at once. This can be wired into a node to process all filenames at once (i.e., create a table of paths), or into a ForEach node to loop over part of a pipeline for each file. Likewise, there is also an allmeta port that has a list of all metadata dictionaries, including a convenience 'FilePath' entry. (Note that you can also wire the this port of PathIterator into a ForEach node, which will, with each loop, emit the next item from PathIterator and pass it to the ForEach node which will then execute the loop for that item.)
Version 1.2.5
Ports/Properties¶
curpath¶
Pathname for the current iteration. With each tick of the pipeline, this will be set to the next path that was found. When all paths are processed this will be set to None.
curmeta¶
Metadata for the file of the current iteration, in dictionary format. This can include data from capture clauses in the path specification, BIDS metadata, and optionally the file path itself (controlled by the include_filepath parameter). This can be wired into the SetInstanceDetails node to set the instance fields of segmented trials with metadata from the current file. Will be None if no metadata is available and include_filepath is False.
allpaths¶
A list of all paths that were found and will be iterated over.
allmeta¶
A list of all metadata dictionaries for the paths that were found. Each entry corresponds to one path in allpaths and follows the same structure as curmeta. Entries may be None if no metadata is available and include_filepath is False.
paths¶
Paths to iterate over. This can be a wildcard ("glob") expression, such as /myfolder/, or point to a study manifest file (e.g., for an ESS study, or top-level BIDS json or tsv file), or be comma-separated list of paths, or can be a Neuroinformatics query. Also, instead of a , a "capture name" in curly braces can be given, e.g., {Session}. This will match the same as a *, but the resulting content will be returned in the secondary output of the path iterator, under curmeta, in the form of a dictionary holding the matched values for all used capture names.
filter¶
Filter conditions. This is an optional expression of filter conditions that can be used to narrow down the files emitted by this node. The conditions are given in Python syntax, can use any meta-data properties as if they were Python variables, and should evaluate to True. Example: age>42 and gender=='male'. For the list of Python constructs allowed, see NeuroPype documentation of its sandboxed Python expression grammar.
sort_by¶
Sort the located paths (based on the paths and filter parameters), in alphabetical (default), chronological, or given order. Alphabetical sorting is case insensitive. If chronological is selected, the timestamp in each filename, not the date created or modified on the computer system, will be used. Only filenames containing a timestamp in the following format: YYYY-MM-DD_HH-MM-SS will be sorted (others will still be processed but not sorted). If order is selected and a comma separate list of files is given this method will keep the same order of the list.
iter_reorder¶
Iterate over items in a re-ordered fashion. Using 0 is forward, 1 is reverse, 2 is from-the-middle-out, 3 is out from the center left, and so forth. This will be applied whether "sort by" is alphabetical or chronological.
include_filepath¶
Include file path in metadata. When enabled, the curmeta and allmeta outputs will include a 'FilePath' entry containing the full path to the file. When disabled, only metadata from capture clauses and other sources will be included.
cloud_host¶
Cloud storage host to use (if any). You can override this option to select from what kind of cloud storage service data should be downloaded. On some environments (e.g., on NeuroScale), the value Default will be map to the default storage provider on that environment.
cloud_account¶
Cloud account name on storage provider (use default if omitted). You can override this to choose a non-default account name for some storage provider (e.g., Azure or S3.). On some environments (e.g., on NeuroScale), this value will be default-initialized to your account.
cloud_bucket¶
Cloud bucket to read from (use default if omitted). This is the bucket or container on the cloud storage provider that the file would be written to. On some environments (e.g., on NeuroScale), this value will be default-initialized to a bucket that has been created for you.
cloud_credentials¶
Secure credential to access cloud data (use default if omitted). These are the security credentials (e.g., password or access token) for the the cloud storage provider. On some environments (e.g., on NeuroScale), this value will be default-initialized to the right credentials for you.
verbose¶
Verbose output.
set_breakpoint¶
Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.
metadata¶
User-definable meta-data associated with the node. Usually reserved for technical purposes.