rclone-api 1.0.80__tar.gz → 1.0.82__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.80 → rclone_api-1.0.82}/PKG-INFO +1 -1
- {rclone_api-1.0.80 → rclone_api-1.0.82}/pyproject.toml +1 -1
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/group_files.py +1 -1
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/rclone.py +2 -2
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/PKG-INFO +1 -1
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_group_files.py +17 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.aiderignore +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.github/workflows/lint.yml +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.github/workflows/push_macos.yml +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.github/workflows/push_ubuntu.yml +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.github/workflows/push_win.yml +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.gitignore +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.pylintrc +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.vscode/launch.json +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.vscode/settings.json +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/.vscode/tasks.json +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/LICENSE +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/MANIFEST.in +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/README.md +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/clean +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/install +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/lint +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/requirements.testing.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/setup.cfg +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/setup.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/__init__.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/assets/example.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/cli.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/cmd/list_files.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/completed_process.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/config.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/convert.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/deprecated.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/diff.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/dir.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/dir_listing.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/exec.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/file.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/filelist.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/process.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/remote.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/rpath.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/scan_missing_folders.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/types.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/util.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api/walk.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/SOURCES.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/dependency_links.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/entry_points.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/requires.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/src/rclone_api.egg-info/top_level.txt +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/test +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_cmd_list_files.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_copy.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_copy_files.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_diff.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_is_synced.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_ls.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_mount.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_mount_s3.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_mount_webdav.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_obscure.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_remote_control.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_remotes.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_scan_missing_folders.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_serve_webdav.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_size_files.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tests/test_walk.py +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/tox.ini +0 -0
- {rclone_api-1.0.80 → rclone_api-1.0.82}/upload_package.sh +0 -0
|
@@ -247,7 +247,7 @@ def group_under_one_prefix(prefix: str, files: list[str]) -> tuple[str, list[str
|
|
|
247
247
|
return prefix, []
|
|
248
248
|
prefix = prefix
|
|
249
249
|
result = _common_prefix(prefix, files)
|
|
250
|
-
return result.prefix, result.files
|
|
250
|
+
return result.prefix.replace(":/", ":"), result.files
|
|
251
251
|
|
|
252
252
|
|
|
253
253
|
__all__ = ["group_files", "group_under_remote_bucket", "group_under_one_prefix"]
|
|
@@ -22,7 +22,7 @@ from rclone_api.diff import DiffItem, DiffOption, diff_stream_from_running_proce
|
|
|
22
22
|
from rclone_api.dir_listing import DirListing
|
|
23
23
|
from rclone_api.exec import RcloneExec
|
|
24
24
|
from rclone_api.file import File
|
|
25
|
-
from rclone_api.group_files import group_files
|
|
25
|
+
from rclone_api.group_files import group_files
|
|
26
26
|
from rclone_api.process import Process
|
|
27
27
|
from rclone_api.remote import Remote
|
|
28
28
|
from rclone_api.rpath import RPath
|
|
@@ -847,7 +847,7 @@ class Rclone:
|
|
|
847
847
|
check = get_check(check)
|
|
848
848
|
files = list(files)
|
|
849
849
|
all_files: list[File] = []
|
|
850
|
-
|
|
850
|
+
# prefix, files = group_under_one_prefix(src, files)
|
|
851
851
|
cmd = ["lsjson", src, "--files-only", "-R"]
|
|
852
852
|
with TemporaryDirectory() as tmpdir:
|
|
853
853
|
# print("files: " + ",".join(files))
|
|
@@ -5,6 +5,7 @@ Unit test file.
|
|
|
5
5
|
import unittest
|
|
6
6
|
|
|
7
7
|
from rclone_api.group_files import group_files as _group_files
|
|
8
|
+
from rclone_api.group_files import group_under_one_prefix
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def group_files(
|
|
@@ -139,6 +140,22 @@ class GroupFilestest(unittest.TestCase):
|
|
|
139
140
|
expected_files[0], groups["dst:TorrentBooks/libgenrs_nonfiction/204000"]
|
|
140
141
|
)
|
|
141
142
|
|
|
143
|
+
def test_group_under_one_prefix(self) -> None:
|
|
144
|
+
files = [
|
|
145
|
+
"Bucket/subdir/file1.txt",
|
|
146
|
+
"Bucket/subdir/file2.txt",
|
|
147
|
+
]
|
|
148
|
+
prefix, grouped_files = group_under_one_prefix("src:", files)
|
|
149
|
+
self.assertEqual(prefix, "src:Bucket/subdir")
|
|
150
|
+
self.assertEqual(len(grouped_files), 2)
|
|
151
|
+
expected_files = [
|
|
152
|
+
"file1.txt",
|
|
153
|
+
"file2.txt",
|
|
154
|
+
]
|
|
155
|
+
self.assertIn(expected_files[0], grouped_files)
|
|
156
|
+
self.assertIn(expected_files[1], grouped_files)
|
|
157
|
+
print("done")
|
|
158
|
+
|
|
142
159
|
|
|
143
160
|
if __name__ == "__main__":
|
|
144
161
|
unittest.main()
|
|
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
|