This class defines the interface for file staging providers.
For each file to be staged in, the data manager will present the file to each configured Staging provider in turn: first, it will ask if the provider can stage this file by calling
can_stage_in, and if so, it will call both
replace_taskto give the provider the opportunity to perform staging.
For each file to be staged out, the data manager will follow the same pattern using the corresponding stage out methods of this class.
The default implementation of this class rejects all files, and performs no staging actions.
To implement a concrete provider, one or both of the
can_stage_*methods should be overridden to match the appropriate files, and then the corresponding
replace_task*methods should be implemented.
Initialize self. See help(type(self)) for accurate signature.
Given a File object, decide if this staging provider can stage the file.
Like can_stage_in, but for staging out.
replace_task(dm, executor, file, func)
For a file to be staged in, either return a replacement app function, which usually should be the original app function wrapped in staging code.
replace_task_stage_out(dm, executor, file, func)
stage_in(dm, executor, file, parent_fut)
For a given file, either return a DataFuture to substitute for this file, or return None to perform no substitution
stage_out(dm, executor, file, app_fu)