88import re
99import shutil
1010import tempfile
11- from typing import Any , Iterator , Mapping , Optional , Union
11+ from typing import Any , Iterator , Mapping , Optional , Sequence , Union
1212
1313import numpy as np
1414
@@ -131,10 +131,12 @@ def _temp_single_json(
131131
132132
133133def _temp_multiinput (
134- input : Union [str , os .PathLike , Mapping [str , Any ], list [Any ], None ],
134+ input : Union [str , os .PathLike , Mapping [str , Any ], Sequence [Any ], None ],
135135 base : int = 1 ,
136136) -> Iterator [Optional [str ]]:
137- if isinstance (input , list ):
137+ if isinstance (input , Sequence ) and not isinstance (
138+ input , (str , os .PathLike )
139+ ):
138140 # most complicated case: list of inits
139141 # for multiple chains, we need to create multiple files
140142 # which look like somename_{i}.json and then pass somename.json
@@ -170,7 +172,7 @@ def _temp_multiinput(
170172@contextlib .contextmanager
171173def temp_metrics (
172174 metrics : Union [
173- str , os .PathLike , Mapping [str , Any ], np .ndarray , list [Any ], None
175+ str , os .PathLike , Mapping [str , Any ], np .ndarray , Sequence [Any ], None
174176 ],
175177 * ,
176178 id : int = 1 ,
@@ -200,7 +202,7 @@ def temp_metrics(
200202@contextlib .contextmanager
201203def temp_inits (
202204 inits : Union [
203- str , os .PathLike , Mapping [str , Any ], float , int , list [Any ], None
205+ str , os .PathLike , Mapping [str , Any ], float , int , Sequence [Any ], None
204206 ],
205207 * ,
206208 allow_multiple : bool = True ,
@@ -212,7 +214,9 @@ def temp_inits(
212214 if allow_multiple :
213215 yield from _temp_multiinput (inits , base = id )
214216 else :
215- if isinstance (inits , list ):
217+ if isinstance (inits , Sequence ) and not isinstance (
218+ inits , (str , os .PathLike )
219+ ):
216220 raise ValueError ('Expected single initialization, got list' )
217221 yield from _temp_single_json (inits )
218222
0 commit comments