rclone-api 1.0.82__tar.gz → 1.0.83__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.0.82 → rclone_api-1.0.83}/PKG-INFO +1 -1
- {rclone_api-1.0.82 → rclone_api-1.0.83}/pyproject.toml +1 -1
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/rclone.py +6 -1
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/PKG-INFO +1 -1
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_copy_files.py +27 -1
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.aiderignore +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.github/workflows/lint.yml +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.github/workflows/push_macos.yml +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.github/workflows/push_ubuntu.yml +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.github/workflows/push_win.yml +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.gitignore +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.pylintrc +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.vscode/launch.json +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.vscode/settings.json +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/.vscode/tasks.json +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/LICENSE +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/MANIFEST.in +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/README.md +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/clean +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/install +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/lint +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/requirements.testing.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/setup.cfg +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/setup.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/__init__.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/assets/example.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/cli.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/cmd/list_files.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/completed_process.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/config.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/convert.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/deprecated.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/diff.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/dir.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/dir_listing.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/exec.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/file.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/filelist.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/group_files.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/process.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/remote.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/rpath.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/scan_missing_folders.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/types.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/util.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api/walk.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/SOURCES.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/dependency_links.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/entry_points.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/requires.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/src/rclone_api.egg-info/top_level.txt +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/test +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_cmd_list_files.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_copy.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_diff.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_group_files.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_is_synced.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_ls.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_mount.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_mount_s3.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_mount_webdav.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_obscure.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_remote_control.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_remotes.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_scan_missing_folders.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_serve_webdav.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_size_files.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tests/test_walk.py +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/tox.ini +0 -0
- {rclone_api-1.0.82 → rclone_api-1.0.83}/upload_package.sh +0 -0
|
@@ -394,7 +394,12 @@ class Rclone:
|
|
|
394
394
|
f"Invalid file path, contains a remote, which is not allowed for copy_files: {p}"
|
|
395
395
|
)
|
|
396
396
|
|
|
397
|
-
|
|
397
|
+
if max_partition_workers > 1:
|
|
398
|
+
datalists: dict[str, list[str]] = group_files(
|
|
399
|
+
payload, fully_qualified=False
|
|
400
|
+
)
|
|
401
|
+
else:
|
|
402
|
+
datalists = {"": payload}
|
|
398
403
|
# out: subprocess.CompletedProcess | None = None
|
|
399
404
|
out: list[CompletedProcess] = []
|
|
400
405
|
|
|
@@ -75,7 +75,33 @@ class RcloneCopyFilesTest(unittest.TestCase):
|
|
|
75
75
|
print(f"first_file: {first_file_str}")
|
|
76
76
|
include_files: list[str] = [first_file.name]
|
|
77
77
|
completed_procs: list[CompletedProcess] = rclone.copy_files(
|
|
78
|
-
src=src_prefix, dst=dst_prefix, files=include_files
|
|
78
|
+
src=src_prefix, dst=dst_prefix, files=include_files, max_partition_workers=2
|
|
79
|
+
)
|
|
80
|
+
self.assertGreater(len(completed_procs), 0)
|
|
81
|
+
for proc in completed_procs:
|
|
82
|
+
print(proc.stdout)
|
|
83
|
+
print(proc.stderr)
|
|
84
|
+
self.assertTrue(proc.returncode == 0)
|
|
85
|
+
self.assertTrue(rclone.exists(dst_prefix))
|
|
86
|
+
rclone.purge(dst_prefix)
|
|
87
|
+
print(f"Checking that {dst_prefix} was deleted")
|
|
88
|
+
still_exists = rclone.exists(dst_prefix)
|
|
89
|
+
self.assertFalse(still_exists)
|
|
90
|
+
print("done")
|
|
91
|
+
|
|
92
|
+
def test_copylist_one_worker(self) -> None:
|
|
93
|
+
"""Test copying a list of files to remote storage."""
|
|
94
|
+
rclone = Rclone(_generate_rclone_config())
|
|
95
|
+
dst_prefix = f"dst:{BUCKET_NAME}/test_out"
|
|
96
|
+
src_prefix = f"dst:{BUCKET_NAME}/zachs_video"
|
|
97
|
+
listing: DirListing = rclone.ls(src_prefix, glob="*.png")
|
|
98
|
+
self.assertGreater(len(listing.files), 0)
|
|
99
|
+
first_file: File = listing.files[0]
|
|
100
|
+
first_file_str = first_file.to_string(include_remote=False)
|
|
101
|
+
print(f"first_file: {first_file_str}")
|
|
102
|
+
include_files: list[str] = [first_file.name]
|
|
103
|
+
completed_procs: list[CompletedProcess] = rclone.copy_files(
|
|
104
|
+
src=src_prefix, dst=dst_prefix, files=include_files, max_partition_workers=1
|
|
79
105
|
)
|
|
80
106
|
self.assertGreater(len(completed_procs), 0)
|
|
81
107
|
for proc in completed_procs:
|
|
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
|