rclone-api 1.1.76__py2.py3-none-any.whl → 1.1.78__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.
rclone_api/mount.py CHANGED
@@ -310,18 +310,17 @@ class MultiMountFileChunker:
310
310
  executor.submit(lambda: mount.close())
311
311
 
312
312
  def fetch(self, offset: int, size: int) -> bytes | Exception:
313
- print(f"Fetching chunk {offset} - {offset + size} from {self.filename}")
314
313
  try:
315
314
  try:
316
- assert offset % self.chunk_size.as_int() == 0, f"Invalid offset: {offset}"
317
- #assert size <= self.chunk_size.as_int(), f"Invalid size: {size}"
315
+ assert (
316
+ offset % self.chunk_size.as_int() == 0
317
+ ), f"Invalid offset: {offset}"
318
318
  assert size > 0, f"Invalid size: {size}"
319
319
  assert offset >= 0, f"Invalid offset: {offset}"
320
320
  except AssertionError as e:
321
321
  warnings.warn(f"Invalid chunk request: {e}")
322
322
  return ValueError(e)
323
323
 
324
- print("Collecting chunks")
325
324
  chunks: list[tuple[int, int]] = []
326
325
  start = offset
327
326
  end = offset + size
@@ -338,13 +337,11 @@ class MultiMountFileChunker:
338
337
  self.mounts_processing.append(mount)
339
338
 
340
339
  path = mount.mount_path / self.filename
341
- print(f"Fetching chunk {start} - {start + chunk_size} from {path}")
342
340
 
343
- def task(start=start, size=chunk_size, path=path,mount=mount) -> bytes | Exception:
341
+ def task(
342
+ start=start, size=chunk_size, path=path, mount=mount
343
+ ) -> bytes | Exception:
344
344
  try:
345
- print(
346
- f"Fetching chunk {start} - {start + size} from {path}"
347
- )
348
345
  with path.open("rb") as f:
349
346
  f.seek(offset)
350
347
  return f.read(size)
@@ -13,6 +13,7 @@ import psutil
13
13
  from dotenv import load_dotenv
14
14
 
15
15
  from rclone_api import Config, Rclone, SizeSuffix
16
+ from rclone_api.mount import MultiMountFileChunker
16
17
 
17
18
  os.environ["RCLONE_API_VERBOSE"] = "1"
18
19
 
@@ -119,15 +120,27 @@ def _run_profile(
119
120
  net_io_start = psutil.net_io_counters()
120
121
  start = time.time()
121
122
  chunk_size = size // transfers
122
- bytes_or_err: bytes | Exception = rclone.copy_bytes(
123
+
124
+ filechunker: MultiMountFileChunker = rclone.get_multi_mount_file_chunker(
123
125
  src=src_file,
124
- offset=offset.as_int(),
125
- length=size.as_int(),
126
126
  chunk_size=chunk_size,
127
+ threads=transfers,
127
128
  direct_io=direct_io,
128
- max_threads=transfers,
129
129
  mount_log=mount_log,
130
130
  )
131
+
132
+ # bytes_or_err: bytes | Exception = rclone.copy_bytes(
133
+ # src=src_file,
134
+ # offset=offset.as_int(),
135
+ # length=size.as_int(),
136
+ # chunk_size=chunk_size,
137
+ # direct_io=direct_io,
138
+ # max_threads=transfers,
139
+ # mount_log=mount_log,
140
+ # )
141
+
142
+ bytes_or_err = filechunker.fetch(offset.as_int(), size.as_int())
143
+
131
144
  diff = time.time() - start
132
145
  net_io_end = psutil.net_io_counters()
133
146
  if isinstance(bytes_or_err, Exception):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.76
3
+ Version: 1.1.78
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -11,7 +11,7 @@ rclone_api/exec.py,sha256=Pd7pUBd8ib5MzqvMybG2DQISPRbDRu20VjVRL2mLAVY,1076
11
11
  rclone_api/file.py,sha256=EP5yT2dZ0H2p7CY5n0y5k5pHhIliV25pm8KOwBklUTk,1863
12
12
  rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
13
13
  rclone_api/group_files.py,sha256=H92xPW9lQnbNw5KbtZCl00bD6iRh9yRbCuxku4j_3dg,8036
14
- rclone_api/mount.py,sha256=7YWS7nyB3D2T7zmmXHP_mN9JB8vyaBHhIs5WrtPAAqo,13883
14
+ rclone_api/mount.py,sha256=ghMMi1bszAhI_eqgbqPXKhy1-iXMf-uzvggw0U1bqC0,13536
15
15
  rclone_api/process.py,sha256=rBj_S86jC6nqCYop-jq8r9eMSteKeObxUrJMgH8LZvI,5084
16
16
  rclone_api/rclone.py,sha256=3z1RY6AvYWL4aRuyY1aguXvake8bA99exemQc5Itenk,48754
17
17
  rclone_api/remote.py,sha256=O9WDUFQy9f6oT1HdUbTixK2eg0xtBBm8k4Xl6aa6K00,431
@@ -25,7 +25,7 @@ rclone_api/cmd/copy_large_s3.py,sha256=-rfedi-ZzPUdCSP8ai9LRL0y1xVkvN-viQQlk8HVU
25
25
  rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
26
26
  rclone_api/experimental/flags.py,sha256=qCVD--fSTmzlk9hloRLr0q9elzAOFzPsvVpKM3aB1Mk,2739
27
27
  rclone_api/experimental/flags_base.py,sha256=ajU_czkTcAxXYU-SlmiCfHY7aCQGHvpCLqJ-Z8uZLk0,2102
28
- rclone_api/profile/mount_copy_bytes.py,sha256=e57dGHSfiOJJcE99gJp_9JU1fvFwk9on1nC60RBl258,7793
28
+ rclone_api/profile/mount_copy_bytes.py,sha256=uwOmWkJklVnLqmdKTCXgBAz7p8maZlIzibd7nasp3pQ,8157
29
29
  rclone_api/s3/api.py,sha256=qxtRDUpHYqJ7StJRtP8U_PbF_BvYRg705568SyvF-R0,3770
30
30
  rclone_api/s3/basic_ops.py,sha256=hK3366xhVEzEcjz9Gk_8lFx6MRceAk72cax6mUrr6ko,2104
31
31
  rclone_api/s3/chunk_file.py,sha256=D6wM9Nuu73LNGC8JCCfevqjF3qdZ21mQxYQClFLZLMU,3726
@@ -33,9 +33,9 @@ rclone_api/s3/chunk_types.py,sha256=LbXayXY1KgVU1LkdbASD_BQ7TpVpwVnzMjtz--8LBaE,
33
33
  rclone_api/s3/create.py,sha256=wgfkapv_j904CfKuWyiBIWJVxfAx_ftemFSUV14aT68,3149
34
34
  rclone_api/s3/types.py,sha256=yBnJ38Tjk6RlydJ-sqZ7DSfyFloy8KDYJ0mv3vlOzLE,1388
35
35
  rclone_api/s3/upload_file_multipart.py,sha256=y9azNAU8QH5Ovwz33V2HZwNmJdlFjJg-jrXLZ1gtMds,10364
36
- rclone_api-1.1.76.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
37
- rclone_api-1.1.76.dist-info/METADATA,sha256=PKG9TOdQPSKSnvv-9uHe8_oSdVOKsdF1bJIjHSE1wOc,4537
38
- rclone_api-1.1.76.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
39
- rclone_api-1.1.76.dist-info/entry_points.txt,sha256=TV8kwP3FRzYwUEr0RLC7aJh0W03SAefIJNXTJ-FdMIQ,200
40
- rclone_api-1.1.76.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
41
- rclone_api-1.1.76.dist-info/RECORD,,
36
+ rclone_api-1.1.78.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
37
+ rclone_api-1.1.78.dist-info/METADATA,sha256=SL3-2k-HSVZ-tD0coduYq4opyAiJT7blx5pQyKx4ZsE,4537
38
+ rclone_api-1.1.78.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
39
+ rclone_api-1.1.78.dist-info/entry_points.txt,sha256=TV8kwP3FRzYwUEr0RLC7aJh0W03SAefIJNXTJ-FdMIQ,200
40
+ rclone_api-1.1.78.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
41
+ rclone_api-1.1.78.dist-info/RECORD,,