rclone-api 1.1.76__tar.gz → 1.1.78__tar.gz

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.
Files changed (86) hide show
  1. {rclone_api-1.1.76 → rclone_api-1.1.78}/PKG-INFO +1 -1
  2. {rclone_api-1.1.76 → rclone_api-1.1.78}/pyproject.toml +1 -1
  3. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/mount.py +6 -9
  4. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/profile/mount_copy_bytes.py +17 -4
  5. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/PKG-INFO +1 -1
  6. {rclone_api-1.1.76 → rclone_api-1.1.78}/.aiderignore +0 -0
  7. {rclone_api-1.1.76 → rclone_api-1.1.78}/.github/workflows/lint.yml +0 -0
  8. {rclone_api-1.1.76 → rclone_api-1.1.78}/.github/workflows/push_macos.yml +0 -0
  9. {rclone_api-1.1.76 → rclone_api-1.1.78}/.github/workflows/push_ubuntu.yml +0 -0
  10. {rclone_api-1.1.76 → rclone_api-1.1.78}/.github/workflows/push_win.yml +0 -0
  11. {rclone_api-1.1.76 → rclone_api-1.1.78}/.gitignore +0 -0
  12. {rclone_api-1.1.76 → rclone_api-1.1.78}/.pylintrc +0 -0
  13. {rclone_api-1.1.76 → rclone_api-1.1.78}/.vscode/launch.json +0 -0
  14. {rclone_api-1.1.76 → rclone_api-1.1.78}/.vscode/settings.json +0 -0
  15. {rclone_api-1.1.76 → rclone_api-1.1.78}/.vscode/tasks.json +0 -0
  16. {rclone_api-1.1.76 → rclone_api-1.1.78}/LICENSE +0 -0
  17. {rclone_api-1.1.76 → rclone_api-1.1.78}/MANIFEST.in +0 -0
  18. {rclone_api-1.1.76 → rclone_api-1.1.78}/README.md +0 -0
  19. {rclone_api-1.1.76 → rclone_api-1.1.78}/clean +0 -0
  20. {rclone_api-1.1.76 → rclone_api-1.1.78}/install +0 -0
  21. {rclone_api-1.1.76 → rclone_api-1.1.78}/lint +0 -0
  22. {rclone_api-1.1.76 → rclone_api-1.1.78}/requirements.testing.txt +0 -0
  23. {rclone_api-1.1.76 → rclone_api-1.1.78}/setup.cfg +0 -0
  24. {rclone_api-1.1.76 → rclone_api-1.1.78}/setup.py +0 -0
  25. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/__init__.py +0 -0
  26. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/assets/example.txt +0 -0
  27. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/cli.py +0 -0
  28. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  29. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/cmd/list_files.py +0 -0
  30. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/completed_process.py +0 -0
  31. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/config.py +0 -0
  32. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/convert.py +0 -0
  33. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/deprecated.py +0 -0
  34. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/diff.py +0 -0
  35. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/dir.py +0 -0
  36. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/dir_listing.py +0 -0
  37. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/exec.py +0 -0
  38. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/experimental/flags.py +0 -0
  39. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/experimental/flags_base.py +0 -0
  40. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/file.py +0 -0
  41. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/filelist.py +0 -0
  42. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/group_files.py +0 -0
  43. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/process.py +0 -0
  44. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/rclone.py +0 -0
  45. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/remote.py +0 -0
  46. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/rpath.py +0 -0
  47. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/api.py +0 -0
  48. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/basic_ops.py +0 -0
  49. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/chunk_file.py +0 -0
  50. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/chunk_types.py +0 -0
  51. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/create.py +0 -0
  52. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/types.py +0 -0
  53. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/s3/upload_file_multipart.py +0 -0
  54. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/scan_missing_folders.py +0 -0
  55. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/types.py +0 -0
  56. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/util.py +0 -0
  57. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api/walk.py +0 -0
  58. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  59. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  60. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/entry_points.txt +0 -0
  61. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/requires.txt +0 -0
  62. {rclone_api-1.1.76 → rclone_api-1.1.78}/src/rclone_api.egg-info/top_level.txt +0 -0
  63. {rclone_api-1.1.76 → rclone_api-1.1.78}/test +0 -0
  64. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/archive/test_paramiko.py.disabled +0 -0
  65. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_cmd_list_files.py +0 -0
  66. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_copy.py +0 -0
  67. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_copy_bytes.py +0 -0
  68. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_copy_file_resumable_s3.py +0 -0
  69. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_copy_files.py +0 -0
  70. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_diff.py +0 -0
  71. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_group_files.py +0 -0
  72. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_is_synced.py +0 -0
  73. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_ls.py +0 -0
  74. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_mount.py +0 -0
  75. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_mount_s3.py +0 -0
  76. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_obscure.py +0 -0
  77. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_rclone_config.py +0 -0
  78. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_remote_control.py +0 -0
  79. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_remotes.py +0 -0
  80. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_s3.py +0 -0
  81. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_scan_missing_folders.py +0 -0
  82. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_size_files.py +0 -0
  83. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_size_suffix.py +0 -0
  84. {rclone_api-1.1.76 → rclone_api-1.1.78}/tests/test_walk.py +0 -0
  85. {rclone_api-1.1.76 → rclone_api-1.1.78}/tox.ini +0 -0
  86. {rclone_api-1.1.76 → rclone_api-1.1.78}/upload_package.sh +0 -0
@@ -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
@@ -23,7 +23,7 @@ dependencies = [
23
23
  ]
24
24
 
25
25
  # Change this with the version number bump.
26
- version = "1.1.76"
26
+ version = "1.1.78"
27
27
 
28
28
  [tool.setuptools]
29
29
  package-dir = {"" = "src"}
@@ -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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes