rclone-api 1.1.75__py2.py3-none-any.whl → 1.1.77__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
@@ -313,8 +313,10 @@ class MultiMountFileChunker:
313
313
  print(f"Fetching chunk {offset} - {offset + size} from {self.filename}")
314
314
  try:
315
315
  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}"
316
+ assert (
317
+ offset % self.chunk_size.as_int() == 0
318
+ ), f"Invalid offset: {offset}"
319
+ # assert size <= self.chunk_size.as_int(), f"Invalid size: {size}"
318
320
  assert size > 0, f"Invalid size: {size}"
319
321
  assert offset >= 0, f"Invalid offset: {offset}"
320
322
  except AssertionError as e:
@@ -340,11 +342,11 @@ class MultiMountFileChunker:
340
342
  path = mount.mount_path / self.filename
341
343
  print(f"Fetching chunk {start} - {start + chunk_size} from {path}")
342
344
 
343
- def task(start=start, size=chunk_size, path=path,mount=mount) -> bytes | Exception:
345
+ def task(
346
+ start=start, size=chunk_size, path=path, mount=mount
347
+ ) -> bytes | Exception:
344
348
  try:
345
- print(
346
- f"Fetching chunk {start} - {start + size} from {path}"
347
- )
349
+ print(f"Fetching chunk {start} - {start + size} from {path}")
348
350
  with path.open("rb") as f:
349
351
  f.seek(offset)
350
352
  return f.read(size)
@@ -361,10 +363,7 @@ class MultiMountFileChunker:
361
363
  return e
362
364
  finally:
363
365
  with self.lock:
364
- try:
365
- self.mounts_processing.remove(mount)
366
- except Exception as e:
367
- warnings.warn(f"Error removing mount: {mount.mount_path} because of {e}")
366
+ self.mounts_processing.remove(mount)
368
367
  self.mounts_availabe.append(mount)
369
368
  self.semaphore.release()
370
369
 
@@ -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.75
3
+ Version: 1.1.77
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=ijz3zocwOq_0bUbnDEu_Y4twU6sOPDmxO3Fph4hZOXA,14077
14
+ rclone_api/mount.py,sha256=5nQ489DgqateodTqwLd8AvlWGUkXcCFBsZE4ntbwX_g,13909
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.75.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
37
- rclone_api-1.1.75.dist-info/METADATA,sha256=Etv-kBZnkZlD8UFpSFNQTnuCF3eg0LapXUBNGCvpzCc,4537
38
- rclone_api-1.1.75.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
39
- rclone_api-1.1.75.dist-info/entry_points.txt,sha256=TV8kwP3FRzYwUEr0RLC7aJh0W03SAefIJNXTJ-FdMIQ,200
40
- rclone_api-1.1.75.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
41
- rclone_api-1.1.75.dist-info/RECORD,,
36
+ rclone_api-1.1.77.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
37
+ rclone_api-1.1.77.dist-info/METADATA,sha256=HenplBPznhfPVGE5La9IGZPaSSBpguNn0oyl1wJ5Qc8,4537
38
+ rclone_api-1.1.77.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
39
+ rclone_api-1.1.77.dist-info/entry_points.txt,sha256=TV8kwP3FRzYwUEr0RLC7aJh0W03SAefIJNXTJ-FdMIQ,200
40
+ rclone_api-1.1.77.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
41
+ rclone_api-1.1.77.dist-info/RECORD,,