Fix filter-by-ext
This commit is contained in:
		
							parent
							
								
									08aaa0c5c4
								
							
						
					
					
						commit
						3bd06f0321
					
				@ -27,13 +27,19 @@ class FileSystem(object):
 | 
				
			|||||||
    """A class for interacting with the file system."""
 | 
					    """A class for interacting with the file system."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, cache=False, day_begins=0, dry_run=False, exclude_regex_list=set(),
 | 
					    def __init__(self, cache=False, day_begins=0, dry_run=False, exclude_regex_list=set(),
 | 
				
			||||||
            filter_by_ext=(), logger=logging.getLogger(), max_deep=None,
 | 
					            filter_by_ext=set(), logger=logging.getLogger(), max_deep=None,
 | 
				
			||||||
            mode='copy', path_format=None):
 | 
					            mode='copy', path_format=None):
 | 
				
			||||||
        self.cache = cache
 | 
					        self.cache = cache
 | 
				
			||||||
        self.day_begins = day_begins
 | 
					        self.day_begins = day_begins
 | 
				
			||||||
        self.dry_run = dry_run
 | 
					        self.dry_run = dry_run
 | 
				
			||||||
        self.exclude_regex_list = exclude_regex_list
 | 
					        self.exclude_regex_list = exclude_regex_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if '%media' in filter_by_ext:
 | 
				
			||||||
 | 
					            filter_by_ext.remove('%media')
 | 
				
			||||||
 | 
					            self.filter_by_ext = filter_by_ext.union(media.extensions)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
            self.filter_by_ext = filter_by_ext
 | 
					            self.filter_by_ext = filter_by_ext
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.items = self.get_items()
 | 
					        self.items = self.get_items()
 | 
				
			||||||
        self.logger = logger
 | 
					        self.logger = logger
 | 
				
			||||||
        self.max_deep = max_deep
 | 
					        self.max_deep = max_deep
 | 
				
			||||||
@ -507,24 +513,13 @@ class FileSystem(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return self.summary, has_errors
 | 
					        return self.summary, has_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_files_in_path(self, path, extensions=set()):
 | 
				
			||||||
    def get_files_in_path(self, path, extensions=False):
 | 
					 | 
				
			||||||
        """Recursively get files which match a path and extension.
 | 
					        """Recursively get files which match a path and extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        :param str path string: Path to start recursive file listing
 | 
					        :param str path string: Path to start recursive file listing
 | 
				
			||||||
        :param tuple(str) extensions: File extensions to include (whitelist)
 | 
					        :param tuple(str) extensions: File extensions to include (whitelist)
 | 
				
			||||||
        :returns: file_path, subdirs
 | 
					        :returns: file_path, subdirs
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if self.filter_by_ext != () and not extensions:
 | 
					 | 
				
			||||||
            # Filtering  files by extensions.
 | 
					 | 
				
			||||||
            if '%media' in self.filter_by_ext:
 | 
					 | 
				
			||||||
                extensions = set()
 | 
					 | 
				
			||||||
                subclasses = get_all_subclasses()
 | 
					 | 
				
			||||||
                for cls in subclasses:
 | 
					 | 
				
			||||||
                    extensions.update(cls.extensions)
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                extensions = self.filter_by_ext
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        file_list = set()
 | 
					        file_list = set()
 | 
				
			||||||
        if os.path.isfile(path):
 | 
					        if os.path.isfile(path):
 | 
				
			||||||
            if not self.should_exclude(path, self.exclude_regex_list, True):
 | 
					            if not self.should_exclude(path, self.exclude_regex_list, True):
 | 
				
			||||||
@ -547,7 +542,7 @@ class FileSystem(object):
 | 
				
			|||||||
                # Then append to the list
 | 
					                # Then append to the list
 | 
				
			||||||
                filename_path = os.path.join(dirname, filename)
 | 
					                filename_path = os.path.join(dirname, filename)
 | 
				
			||||||
                if (
 | 
					                if (
 | 
				
			||||||
                        extensions == False
 | 
					                        extensions == set()
 | 
				
			||||||
                        or os.path.splitext(filename)[1][1:].lower() in extensions
 | 
					                        or os.path.splitext(filename)[1][1:].lower() in extensions
 | 
				
			||||||
                        and not self.should_exclude(filename_path, compiled_regex_list, False)
 | 
					                        and not self.should_exclude(filename_path, compiled_regex_list, False)
 | 
				
			||||||
                    ):
 | 
					                    ):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user