@@ -144,33 +144,39 @@ def __init__(
144144 ** kargs
145145 ):
146146
147+ if include_filenames is None :
148+ include_filenames = []
149+ elif not isinstance (include_filenames , (list , set , np .ndarray )):
150+ include_filenames = [include_filenames ]
151+
152+ if exclude_filenames is None :
153+ exclude_filenames = set ()
154+ elif not isinstance (exclude_filenames , (list , set , np .ndarray )):
155+ exclude_filenames = set (exclude_filenames )
156+
147157 if include_filenames :
148- include_filepath = [ os .path .dirname (f ) for f in include_filenames ]
158+ include_filepath = { os .path .dirname (f ) for f in include_filenames }
149159 if len (include_filepath ) > 1 :
150160 raise ValueError ("Files in include_filename must be in a single path!" )
151161
152162 if (include_filenames is None ) and (dirname == "" ):
153163 raise ValueError ("One of dirname or include_filenames must be provided." )
154164
155- if (not isinstance (include_filenames , (list , set , np .ndarray ))) and (include_filenames is not None ):
156- include_filenames = [include_filenames ]
157- if (not isinstance (exclude_filenames , (list , set , np .ndarray ))) and (exclude_filenames is not None ):
158- exclude_filenames = [exclude_filenames ]
159-
160165 if dirname and include_filenames :
161166 dirname = os .path .join (dirname , os .path .dirname (include_filenames [0 ]))
162167 include_filenames = [os .path .basename (f ) for f in include_filenames ]
163168
164169 if exclude_filenames :
165170 exclude_filenames = {os .path .basename (f ) for f in exclude_filenames }
166171
167- if include_filenames is not None :
172+ if include_filenames :
168173 self .rawmode = 'multiple-files'
169174 else :
170175 self .rawmode = "one-dir"
171176
172177 self .dirname = dirname
173- self .include_filenames = [f for f in include_filenames if f not in exclude_filenames ]
178+ self .include_filenames = include_filenames
179+ self .execlude_filenames = exclude_filenames
174180 self .keep_original_times = keep_original_times
175181 self .strict_gap_mode = strict_gap_mode
176182 BaseRawIO .__init__ (self , ** kargs )
@@ -211,6 +217,8 @@ def _parse_header(self):
211217 else :
212218 filenames = [os .path .join (self .dirname , f ) for f in self .include_filenames ]
213219
220+ filenames = [f for f in filenames if f not in self .execlude_filenames ]
221+
214222 for filename in filenames :
215223 if not os .path .isfile (filename ):
216224 raise ValueError (
0 commit comments