rclone-api 1.3.13__py2.py3-none-any.whl → 1.3.15__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,17 +28,18 @@ class Args:
28
28
  config: Path
29
29
  path: str
30
30
  db_url: str
31
+ fast_list: bool
31
32
 
32
33
  def __post_init__(self):
33
34
  if not self.config.exists():
34
35
  raise FileNotFoundError(f"Config file not found: {self.config}")
35
36
 
36
37
 
37
- def fill_db(rclone: Rclone, path: str):
38
+ def fill_db(rclone: Rclone, path: str, fast_list: bool) -> None:
38
39
  """List files in a remote path."""
39
40
  # db = DB(_db_url_from_env_or_raise())
40
41
  db_url = _db_url_from_env_or_raise()
41
- rclone.save_to_db(src=path, db_url=db_url, fast_list=True)
42
+ rclone.save_to_db(src=path, db_url=db_url, fast_list=fast_list)
42
43
 
43
44
 
44
45
  def _parse_args() -> Args:
@@ -47,12 +48,14 @@ def _parse_args() -> Args:
47
48
  "--config", help="Path to rclone config file", type=Path, default="rclone.conf"
48
49
  )
49
50
  parser.add_argument("--db", help="Database URL", type=str, default=None)
51
+ parser.add_argument("--fast-list", help="Use fast list", action="store_true")
50
52
  parser.add_argument("path", help="Remote path to list")
51
53
  tmp = parser.parse_args()
52
54
  return Args(
53
55
  config=tmp.config,
54
56
  path=tmp.path,
55
57
  db_url=tmp.db if tmp.db is not None else _db_url_from_env_or_raise(),
58
+ fast_list=tmp.fast_list,
56
59
  )
57
60
 
58
61
 
@@ -61,7 +64,7 @@ def main() -> int:
61
64
  args = _parse_args()
62
65
  path = args.path
63
66
  rclone = Rclone(Path(args.config))
64
- fill_db(rclone, path)
67
+ fill_db(rclone=rclone, path=path, fast_list=args.fast_list)
65
68
  return 0
66
69
 
67
70
 
rclone_api/rclone.py CHANGED
@@ -225,11 +225,12 @@ class Rclone:
225
225
  fast_list: bool = False,
226
226
  ) -> FilesStream:
227
227
  """List files in the given path"""
228
- cmd = ["lsjson", path]
229
- if max_depth < 0:
230
- cmd.append("--recursive")
231
- elif max_depth > 0:
232
- cmd += ["--max-depth", str(max_depth)]
228
+ cmd = ["lsjson", path, "--files-only"]
229
+ recurse = max_depth < 0 or max_depth > 1
230
+ if recurse:
231
+ cmd.append("-R")
232
+ if max_depth > 1:
233
+ cmd += ["--max-depth", str(max_depth)]
233
234
  if fast_list:
234
235
  cmd.append("--fast-list")
235
236
  streamer = FilesStream(path, self._launch_process(cmd, capture=True))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.3.13
3
+ Version: 1.3.15
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -16,7 +16,7 @@ rclone_api/log.py,sha256=VZHM7pNSXip2ZLBKMP7M1u-rp_F7zoafFDuR8CPUoKI,1271
16
16
  rclone_api/mount.py,sha256=TE_VIBMW7J1UkF_6HRCt8oi_jGdMov4S51bm2OgxFAM,10045
17
17
  rclone_api/mount_read_chunker.py,sha256=bi4N-VkyPdM4RWUYhIqJ71lQrXanck4PpF3pY8k2xnQ,4722
18
18
  rclone_api/process.py,sha256=BGXJTZVT__jeaDyjN8_kRycliOhkBErMPdHO1hKRvJE,5271
19
- rclone_api/rclone.py,sha256=359ARr5FutcEzzO7vSAwnCvWzdLcN_nR6PW_Eov1BO8,52096
19
+ rclone_api/rclone.py,sha256=GzvPWSAyY-7u4wIKjiiC8hunUDTG71K4UHFc1wviY6Y,52153
20
20
  rclone_api/remote.py,sha256=O9WDUFQy9f6oT1HdUbTixK2eg0xtBBm8k4Xl6aa6K00,431
21
21
  rclone_api/rpath.py,sha256=8ZA_1wxWtskwcy0I8V2VbjKDmzPkiWd8Q2JQSvh-sYE,2586
22
22
  rclone_api/scan_missing_folders.py,sha256=Kulca2Q6WZodt00ATFHkmqqInuoPvBkhTcS9703y6po,4740
@@ -27,7 +27,7 @@ rclone_api/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8
27
27
  rclone_api/cmd/analyze.py,sha256=RHbvk1G5ZUc3qLqlm1AZEyQzd_W_ZjcbCNDvW4YpTKQ,1252
28
28
  rclone_api/cmd/copy_large_s3.py,sha256=nOpAUAQN1mJnf4EIZCh4OVCW7Q4_EXJeLFVe6r_9rZA,3369
29
29
  rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
30
- rclone_api/cmd/save_to_db.py,sha256=jYK97weX_OAkp6wqpdZogv1Tp2xE6QxehleZdnJnhqs,1754
30
+ rclone_api/cmd/save_to_db.py,sha256=ylvnhg_yzexM-m6Zr7XDiswvoDVSl56ELuFAdb9gqBY,1957
31
31
  rclone_api/db/__init__.py,sha256=OSRUdnSWUlDTOHmjdjVmxYTUNpTbtaJ5Ll9sl-PfZg0,40
32
32
  rclone_api/db/db.py,sha256=7jGyl9X0WUCgZ3pYbJKrZe6FwtUrMOwRIXG8tNH0RWs,10341
33
33
  rclone_api/db/models.py,sha256=unKEiu8l4R4UAEoncEbOHEda227DpXm-cWwRV6vwJXE,1657
@@ -41,9 +41,9 @@ rclone_api/s3/chunk_types.py,sha256=oSWv8No9V3BeM7IcGnowyR2a7YrszdAXzEJlxaeZcp0,
41
41
  rclone_api/s3/create.py,sha256=wgfkapv_j904CfKuWyiBIWJVxfAx_ftemFSUV14aT68,3149
42
42
  rclone_api/s3/types.py,sha256=Elmh__gvZJyJyElYwMmvYZIBIunDJiTRAbEg21GmsRU,1604
43
43
  rclone_api/s3/upload_file_multipart.py,sha256=d8ZWqO8n9wsqRF6JjmvAFmG1aCkFqdSB1L8yxe_5qiY,11669
44
- rclone_api-1.3.13.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
45
- rclone_api-1.3.13.dist-info/METADATA,sha256=3jYA5g__K7yHtaH46UNsVrbxEEh56Y91quAZTt2Vb-0,4610
46
- rclone_api-1.3.13.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
47
- rclone_api-1.3.13.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
48
- rclone_api-1.3.13.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
49
- rclone_api-1.3.13.dist-info/RECORD,,
44
+ rclone_api-1.3.15.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
45
+ rclone_api-1.3.15.dist-info/METADATA,sha256=F1NeiT_iq_kt8w6VELeGuXty-16goQCfNmz8Fw1uxN0,4610
46
+ rclone_api-1.3.15.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
47
+ rclone_api-1.3.15.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
48
+ rclone_api-1.3.15.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
49
+ rclone_api-1.3.15.dist-info/RECORD,,