rclone-api 1.3.4__tar.gz → 1.3.6__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.
- {rclone_api-1.3.4 → rclone_api-1.3.6}/PKG-INFO +1 -1
- {rclone_api-1.3.4 → rclone_api-1.3.6}/pyproject.toml +1 -1
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/cmd/copy_large_s3.py +1 -3
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/exec.py +1 -1
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/mount_read_chunker.py +8 -2
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/profile/mount_copy_bytes.py +4 -2
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/rclone.py +1315 -1276
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/upload_file_multipart.py +6 -3
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/util.py +183 -162
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/PKG-INFO +1 -1
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_copy_bytes.py +20 -2
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.aiderignore +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.github/workflows/lint.yml +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.github/workflows/push_macos.yml +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.github/workflows/push_ubuntu.yml +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.github/workflows/push_win.yml +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.gitignore +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.pylintrc +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.vscode/launch.json +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.vscode/settings.json +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/.vscode/tasks.json +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/LICENSE +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/MANIFEST.in +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/README.md +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/clean +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/install +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/lint +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/requirements.testing.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/setup.cfg +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/setup.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/__init__.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/assets/example.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/cli.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/cmd/list_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/completed_process.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/config.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/convert.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/deprecated.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/diff.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/dir.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/dir_listing.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/experimental/flags.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/experimental/flags_base.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/file.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/filelist.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/group_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/log.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/mount.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/process.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/remote.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/rpath.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/api.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/basic_ops.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/chunk_task.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/chunk_types.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/create.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/s3/types.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/scan_missing_folders.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/types.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api/walk.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/SOURCES.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/dependency_links.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/entry_points.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/requires.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/src/rclone_api.egg-info/top_level.txt +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/test +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/archive/test_paramiko.py.disabled +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_cmd_list_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_copy.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_copy_file_resumable_s3.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_copy_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_diff.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_group_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_is_synced.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_ls.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_mount.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_mount_s3.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_obscure.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_rclone_config.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_remote_control.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_remotes.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_s3.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_scan_missing_folders.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_size_files.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_size_suffix.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tests/test_walk.py +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/tox.ini +0 -0
- {rclone_api-1.3.4 → rclone_api-1.3.6}/upload_package.sh +0 -0
|
@@ -4,8 +4,6 @@ from pathlib import Path
|
|
|
4
4
|
|
|
5
5
|
from rclone_api import MultiUploadResult, Rclone, SizeSuffix
|
|
6
6
|
|
|
7
|
-
_1MB = 1024 * 1024
|
|
8
|
-
|
|
9
7
|
|
|
10
8
|
@dataclass
|
|
11
9
|
class Args:
|
|
@@ -39,7 +37,7 @@ def _parse_args() -> Args:
|
|
|
39
37
|
"--chunk-size",
|
|
40
38
|
help="Chunk size that will be read and uploaded in SizeSuffix form, too low or too high will cause issues",
|
|
41
39
|
type=str,
|
|
42
|
-
default="
|
|
40
|
+
default="128MB", # if this is too low or too high an s3 service
|
|
43
41
|
)
|
|
44
42
|
parser.add_argument(
|
|
45
43
|
"--read-threads",
|
|
@@ -14,7 +14,7 @@ class RcloneExec:
|
|
|
14
14
|
rclone_exe: Path
|
|
15
15
|
|
|
16
16
|
def execute(
|
|
17
|
-
self, cmd: list[str], check: bool, capture: bool | None = None
|
|
17
|
+
self, cmd: list[str], check: bool, capture: bool | Path | None = None
|
|
18
18
|
) -> subprocess.CompletedProcess:
|
|
19
19
|
"""Execute rclone command."""
|
|
20
20
|
from rclone_api.util import rclone_execute
|
|
@@ -6,7 +6,7 @@ from threading import Lock, Semaphore
|
|
|
6
6
|
from typing import Any
|
|
7
7
|
|
|
8
8
|
from rclone_api.mount import Mount
|
|
9
|
-
from rclone_api.types import FilePart
|
|
9
|
+
from rclone_api.types import FilePart, SizeSuffix
|
|
10
10
|
|
|
11
11
|
# Create a logger for this module
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
@@ -86,7 +86,13 @@ class MultiMountFileChunker:
|
|
|
86
86
|
self.semaphore.release()
|
|
87
87
|
logger.debug("Mount released")
|
|
88
88
|
|
|
89
|
-
def fetch(
|
|
89
|
+
def fetch(
|
|
90
|
+
self, offset: int | SizeSuffix, size: int | SizeSuffix, extra: Any
|
|
91
|
+
) -> Future[FilePart]:
|
|
92
|
+
offset = SizeSuffix(offset).as_int()
|
|
93
|
+
size = SizeSuffix(size).as_int()
|
|
94
|
+
if isinstance(size, SizeSuffix):
|
|
95
|
+
size = size.as_int()
|
|
90
96
|
if self.verbose:
|
|
91
97
|
logger.debug(f"Fetching data range: offset={offset}, size={size}")
|
|
92
98
|
|
|
@@ -218,7 +218,7 @@ def test_profile_copy_bytes(
|
|
|
218
218
|
1024 * 1024 * 16,
|
|
219
219
|
# 1024 * 1024 * 32,
|
|
220
220
|
1024 * 1024 * 64,
|
|
221
|
-
#1024 * 1024 * 128,
|
|
221
|
+
# 1024 * 1024 * 128,
|
|
222
222
|
1024 * 1024 * 256,
|
|
223
223
|
]
|
|
224
224
|
# transfer_list = [1, 2, 4, 8, 16]
|
|
@@ -253,8 +253,10 @@ def _parse_args() -> Args:
|
|
|
253
253
|
args = parser.parse_args()
|
|
254
254
|
return Args(direct_io=args.direct_io, num=args.num, size=args.size)
|
|
255
255
|
|
|
256
|
+
|
|
256
257
|
_SHOW_CREDS = False
|
|
257
258
|
|
|
259
|
+
|
|
258
260
|
def main() -> None:
|
|
259
261
|
"""Main entry point."""
|
|
260
262
|
print("Running test_profile_copy_bytes")
|
|
@@ -271,7 +273,7 @@ def main() -> None:
|
|
|
271
273
|
shutil.rmtree(mount_root_path)
|
|
272
274
|
|
|
273
275
|
args = _parse_args()
|
|
274
|
-
transfer_list =
|
|
276
|
+
transfer_list = None
|
|
275
277
|
# parallel_workers = args.num
|
|
276
278
|
|
|
277
279
|
def task(
|