rclone-api 1.1.44__tar.gz → 1.1.45__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.1.44 → rclone_api-1.1.45}/PKG-INFO +1 -1
- {rclone_api-1.1.44 → rclone_api-1.1.45}/pyproject.toml +1 -1
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/mount.py +7 -1
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/profile/mount_copy_bytes.py +15 -5
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/rclone.py +5 -3
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/PKG-INFO +1 -1
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.aiderignore +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/lint.yml +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_macos.yml +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_ubuntu.yml +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_win.yml +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.gitignore +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.pylintrc +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/launch.json +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/settings.json +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/tasks.json +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/LICENSE +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/MANIFEST.in +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/README.md +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/clean +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/install +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/lint +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/requirements.testing.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/setup.cfg +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/setup.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/__init__.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/assets/example.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cli.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cmd/copy_large_s3.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cmd/list_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/completed_process.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/config.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/convert.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/deprecated.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/diff.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/dir.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/dir_listing.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/exec.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/experimental/flags.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/experimental/flags_base.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/file.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/filelist.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/group_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/process.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/remote.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/rpath.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/api.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/basic_ops.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/chunk_file.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/chunk_types.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/create.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/types.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/upload_file_multipart.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/scan_missing_folders.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/types.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/util.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/walk.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/SOURCES.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/dependency_links.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/entry_points.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/requires.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/top_level.txt +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/test +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/archive/test_paramiko.py.disabled +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_cmd_list_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_bytes.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_file_resumable_s3.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_diff.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_group_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_is_synced.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_ls.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_mount.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_mount_s3.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_obscure.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_rclone_config.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_remote_control.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_remotes.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_s3.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_scan_missing_folders.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_size_files.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_size_suffix.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_walk.py +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/tox.ini +0 -0
- {rclone_api-1.1.44 → rclone_api-1.1.45}/upload_package.sh +0 -0
|
@@ -31,7 +31,13 @@ class Mount:
|
|
|
31
31
|
if self._closed:
|
|
32
32
|
return
|
|
33
33
|
self._closed = True
|
|
34
|
-
clean_mount(self, verbose=False)
|
|
34
|
+
clean_mount(self, verbose=False, wait=wait)
|
|
35
|
+
|
|
36
|
+
def __enter__(self) -> "Mount":
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def __exit__(self, exc_type, exc_value, traceback) -> None:
|
|
40
|
+
self.close(wait=True)
|
|
35
41
|
|
|
36
42
|
def __del__(self):
|
|
37
43
|
self.close(wait=False)
|
|
@@ -3,6 +3,7 @@ Unit test file.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
+
import shutil
|
|
6
7
|
import time
|
|
7
8
|
from dataclasses import dataclass
|
|
8
9
|
from pathlib import Path
|
|
@@ -103,10 +104,11 @@ def _init() -> None:
|
|
|
103
104
|
os.environ["RCLONE_API_VERBOSE"] = "1"
|
|
104
105
|
|
|
105
106
|
|
|
106
|
-
def _run_profile(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
def _run_profile(
|
|
108
|
+
rclone: Rclone, src_file: str, transfers: int, size: int, log_dir: Path
|
|
109
|
+
) -> None:
|
|
110
|
+
|
|
111
|
+
mount_log = log_dir / f"mount_{SizeSuffix(size)}_threads_{transfers}.log"
|
|
110
112
|
print("\n\n")
|
|
111
113
|
print("#" * 80)
|
|
112
114
|
print(f"# Started test download of {SizeSuffix(size)} with {transfers} transfers")
|
|
@@ -177,10 +179,18 @@ def test_profile_copy_bytes() -> None:
|
|
|
177
179
|
# sftp mount
|
|
178
180
|
src_file = "src:aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst"
|
|
179
181
|
|
|
182
|
+
mount_root_path = Path("logs") / "mount"
|
|
183
|
+
if mount_root_path.exists():
|
|
184
|
+
shutil.rmtree(mount_root_path)
|
|
185
|
+
|
|
180
186
|
for size in sizes:
|
|
181
187
|
for transfers in transfer_list:
|
|
182
188
|
_run_profile(
|
|
183
|
-
rclone=rclone,
|
|
189
|
+
rclone=rclone,
|
|
190
|
+
src_file=src_file,
|
|
191
|
+
transfers=transfers,
|
|
192
|
+
size=size,
|
|
193
|
+
log_dir=mount_root_path,
|
|
184
194
|
)
|
|
185
195
|
print("done")
|
|
186
196
|
|
|
@@ -931,6 +931,7 @@ class Rclone:
|
|
|
931
931
|
vfs_cache_mode = vfs_cache_mode or "full"
|
|
932
932
|
clean_mount(outdir, verbose=verbose)
|
|
933
933
|
prepare_mount(outdir, verbose=verbose)
|
|
934
|
+
debug_fuse = log is not None
|
|
934
935
|
src_str = convert_to_str(src)
|
|
935
936
|
cmd_list: list[str] = ["mount", src_str, str(outdir)]
|
|
936
937
|
if not allow_writes:
|
|
@@ -940,12 +941,14 @@ class Rclone:
|
|
|
940
941
|
if vfs_cache_mode:
|
|
941
942
|
cmd_list.append("--vfs-cache-mode")
|
|
942
943
|
cmd_list.append(vfs_cache_mode)
|
|
944
|
+
if debug_fuse:
|
|
945
|
+
cmd_list.append("--debug-fuse")
|
|
943
946
|
if verbose:
|
|
944
947
|
cmd_list.append("-vvvv")
|
|
945
948
|
if other_args:
|
|
946
949
|
cmd_list += other_args
|
|
947
950
|
proc = self._launch_process(cmd_list, log=log)
|
|
948
|
-
mount_read_only =
|
|
951
|
+
mount_read_only = not allow_writes
|
|
949
952
|
mount: Mount = Mount(mount_path=outdir, process=proc, read_only=mount_read_only)
|
|
950
953
|
return mount
|
|
951
954
|
|
|
@@ -963,7 +966,6 @@ class Rclone:
|
|
|
963
966
|
) -> Generator[Mount, None, None]:
|
|
964
967
|
"""Like mount, but can be used in a context manager."""
|
|
965
968
|
error_happened = False
|
|
966
|
-
verbose = get_verbose(verbose)
|
|
967
969
|
mount: Mount = self.mount(
|
|
968
970
|
src,
|
|
969
971
|
outdir,
|
|
@@ -982,7 +984,7 @@ class Rclone:
|
|
|
982
984
|
warnings.warn(f"Error in scoped_mount: {e}\n\nStack Trace:\n{stack_trace}")
|
|
983
985
|
raise
|
|
984
986
|
finally:
|
|
985
|
-
if not error_happened:
|
|
987
|
+
if not error_happened or (not allow_writes):
|
|
986
988
|
mount.close()
|
|
987
989
|
|
|
988
990
|
# Settings optimized for s3.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|