rclone-api 1.0.60__py2.py3-none-any.whl → 1.0.61__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
rclone_api/rclone.py CHANGED
@@ -299,7 +299,7 @@ class Rclone:
299
299
  self,
300
300
  src: str,
301
301
  dst: str,
302
- files: list[str],
302
+ files: list[str] | Path,
303
303
  check: bool | None = None,
304
304
  verbose: bool | None = None,
305
305
  checkers: int | None = None,
@@ -322,7 +322,11 @@ class Rclone:
322
322
  checkers = checkers or 1000
323
323
  transfers = transfers or 32
324
324
  verbose = get_verbose(verbose)
325
- payload: list[str] = convert_to_filestr_list(files)
325
+ payload: list[str] = (
326
+ files
327
+ if isinstance(files, list)
328
+ else [f.strip() for f in files.read_text().splitlines() if f.strip()]
329
+ )
326
330
  if len(payload) == 0:
327
331
  return []
328
332
 
@@ -341,10 +345,26 @@ class Rclone:
341
345
  with ThreadPoolExecutor(max_workers=max_partition_workers) as executor:
342
346
  for common_prefix, files in datalists.items():
343
347
 
344
- def _task(files=files) -> subprocess.CompletedProcess:
348
+ def _task(
349
+ files: list[str] | Path = files,
350
+ ) -> subprocess.CompletedProcess:
345
351
  with TemporaryDirectory() as tmpdir:
346
- include_files_txt = Path(tmpdir) / "include_files.txt"
347
- include_files_txt.write_text("\n".join(files), encoding="utf-8")
352
+ filelist: list[str] = []
353
+ filepath: Path
354
+ if isinstance(files, list):
355
+ include_files_txt = Path(tmpdir) / "include_files.txt"
356
+ include_files_txt.write_text(
357
+ "\n".join(files), encoding="utf-8"
358
+ )
359
+ filelist = list(files)
360
+ filepath = Path(include_files_txt)
361
+ elif isinstance(files, Path):
362
+ filelist = [
363
+ f.strip()
364
+ for f in files.read_text().splitlines()
365
+ if f.strip()
366
+ ]
367
+ filepath = files
348
368
  if common_prefix:
349
369
  src_path = f"{src}/{common_prefix}"
350
370
  dst_path = f"{dst}/{common_prefix}"
@@ -353,8 +373,8 @@ class Rclone:
353
373
  dst_path = dst
354
374
 
355
375
  if verbose:
356
- nfiles = len(files)
357
- files_fqdn = [f" {src_path}/{f}" for f in files]
376
+ nfiles = len(filelist)
377
+ files_fqdn = [f" {src_path}/{f}" for f in filelist]
358
378
  print(f"Copying {nfiles} files:")
359
379
  chunk_size = 100
360
380
  for i in range(0, nfiles, chunk_size):
@@ -370,7 +390,7 @@ class Rclone:
370
390
  src_path,
371
391
  dst_path,
372
392
  "--files-from",
373
- str(include_files_txt),
393
+ str(filepath),
374
394
  "--checkers",
375
395
  str(checkers),
376
396
  "--transfers",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.60
3
+ Version: 1.0.61
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -12,16 +12,16 @@ rclone_api/file.py,sha256=YtR5Y6c0YfXTS-sReOy2UgiSnafcAeO6b2hnbojBQD4,1423
12
12
  rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
13
13
  rclone_api/group_files.py,sha256=kOHh6ysFDkxjldSwvW6KqmiADUC1yFCdrZRY57TvbGY,5328
14
14
  rclone_api/process.py,sha256=RrMfTe0bndmJ6gBK67ioqNvCstJ8aTC8RlGX1XBLlcw,4191
15
- rclone_api/rclone.py,sha256=XyA9_EOxdOMFv70KvMYjjjGz6ceBEO8xtZ2bKDTftRg,26388
15
+ rclone_api/rclone.py,sha256=3vILv1fXDwn6F2SflJYTtSPhUDyMlMaiF4ozw2pPYuw,27224
16
16
  rclone_api/remote.py,sha256=c9hlRKBCg1BFB9MCINaQIoCg10qyAkeqiS4brl8ce-8,343
17
17
  rclone_api/rpath.py,sha256=8ZA_1wxWtskwcy0I8V2VbjKDmzPkiWd8Q2JQSvh-sYE,2586
18
18
  rclone_api/util.py,sha256=_cvmHcJPRl2yXw4zgZiop3z-riA_8Ek6S5NDPw8cqSY,4198
19
19
  rclone_api/walk.py,sha256=UaNOE3ICd8k5ouSFZvkVEH4r2GnnrD9TxfwkFcQnayo,3170
20
20
  rclone_api/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8,54
21
21
  rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
22
- rclone_api-1.0.60.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
23
- rclone_api-1.0.60.dist-info/METADATA,sha256=lAw28UzFDwclf7UW2ke9ITEoOxicWHtrYChepRjklk0,4489
24
- rclone_api-1.0.60.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
25
- rclone_api-1.0.60.dist-info/entry_points.txt,sha256=XUoTX3m7CWxdj2VAKhEuO0NMOfX2qf-OcEDFwdyk9ZE,72
26
- rclone_api-1.0.60.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
27
- rclone_api-1.0.60.dist-info/RECORD,,
22
+ rclone_api-1.0.61.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
23
+ rclone_api-1.0.61.dist-info/METADATA,sha256=2Gs-qN0A6rVPKRiPSOaNsUcIB9RgBFCMzt-pp-juuw0,4489
24
+ rclone_api-1.0.61.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
25
+ rclone_api-1.0.61.dist-info/entry_points.txt,sha256=XUoTX3m7CWxdj2VAKhEuO0NMOfX2qf-OcEDFwdyk9ZE,72
26
+ rclone_api-1.0.61.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
27
+ rclone_api-1.0.61.dist-info/RECORD,,