@@ -338,6 +338,25 @@ def _get_item_filesizes(items: List[Any], base_path: str = "") -> List[int]:
338
338
return item_sizes
339
339
340
340
341
+ def _to_path (element : str ) -> str :
342
+ return element if _IS_IN_STUDIO and element .startswith ("/teamspace" ) else str (Path (element ).resolve ())
343
+
344
+
345
+ def _is_path (input_dir : Optional [str ], element : Any ) -> bool :
346
+ if not isinstance (element , str ):
347
+ return False
348
+
349
+ if _IS_IN_STUDIO and input_dir is not None :
350
+ if element .startswith (input_dir ):
351
+ return True
352
+
353
+ element = str (Path (element ).absolute ())
354
+ if element .startswith (input_dir ):
355
+ return True
356
+
357
+ return os .path .exists (element )
358
+
359
+
341
360
class BaseWorker :
342
361
def __init__ (
343
362
self ,
@@ -380,7 +399,6 @@ def __init__(
380
399
self .remove_queue : Queue = Queue ()
381
400
self .progress_queue : Queue = progress_queue
382
401
self .error_queue : Queue = error_queue
383
- self ._collected_items = 0
384
402
self ._counter = 0
385
403
self ._last_time = time ()
386
404
self ._index_counter = 0
@@ -503,22 +521,13 @@ def _collect_paths(self) -> None:
503
521
for item in self .items :
504
522
flattened_item , spec = tree_flatten (item )
505
523
506
- def is_path (element : Any ) -> bool :
507
- if not isinstance (element , str ):
508
- return False
509
-
510
- element : str = str (Path (element ).resolve ())
511
- if _IS_IN_STUDIO and self .input_dir .path is not None :
512
- if self .input_dir .path .startswith ("/teamspace/studios/this_studio" ):
513
- return os .path .exists (element )
514
- return element .startswith (self .input_dir .path )
515
- return os .path .exists (element )
516
-
517
524
# For speed reasons, we assume starting with `self.input_dir` is enough to be a real file.
518
525
# Other alternative would be too slow.
519
526
# TODO: Try using dictionary for higher accurary.
520
527
indexed_paths = {
521
- index : str (Path (element ).resolve ()) for index , element in enumerate (flattened_item ) if is_path (element )
528
+ index : _to_path (element )
529
+ for index , element in enumerate (flattened_item )
530
+ if _is_path (self .input_dir .path , element )
522
531
}
523
532
524
533
if len (indexed_paths ) == 0 :
@@ -536,7 +545,6 @@ def is_path(element: Any) -> bool:
536
545
self .paths .append (paths )
537
546
538
547
items .append (tree_unflatten (flattened_item , spec ))
539
- self ._collected_items += 1
540
548
541
549
self .items = items
542
550
0 commit comments