/ src / python / txtai / workflow / task / file.py
file.py
 1  """
 2  FileTask module
 3  """
 4  
 5  import os
 6  import re
 7  
 8  from .base import Task
 9  
10  
11  class FileTask(Task):
12      """
13      Task that processes file paths
14      """
15  
16      # File prefix
17      FILE = r"file:\/\/"
18  
19      def accept(self, element):
20          # Replace file prefixes
21          element = re.sub(FileTask.FILE, "", element)
22  
23          # Only accept file paths that exist
24          return super().accept(element) and isinstance(element, str) and os.path.exists(element)
25  
26      def prepare(self, element):
27          # Replace file prefixes
28          return re.sub(FileTask.FILE, "", element)