rclone-api 1.0.81__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.
Files changed (70) hide show
  1. {rclone_api-1.0.81 → rclone_api-1.0.83}/PKG-INFO +1 -1
  2. {rclone_api-1.0.81 → rclone_api-1.0.83}/pyproject.toml +1 -1
  3. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/rclone.py +8 -3
  4. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/PKG-INFO +1 -1
  5. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_copy_files.py +27 -1
  6. {rclone_api-1.0.81 → rclone_api-1.0.83}/.aiderignore +0 -0
  7. {rclone_api-1.0.81 → rclone_api-1.0.83}/.github/workflows/lint.yml +0 -0
  8. {rclone_api-1.0.81 → rclone_api-1.0.83}/.github/workflows/push_macos.yml +0 -0
  9. {rclone_api-1.0.81 → rclone_api-1.0.83}/.github/workflows/push_ubuntu.yml +0 -0
  10. {rclone_api-1.0.81 → rclone_api-1.0.83}/.github/workflows/push_win.yml +0 -0
  11. {rclone_api-1.0.81 → rclone_api-1.0.83}/.gitignore +0 -0
  12. {rclone_api-1.0.81 → rclone_api-1.0.83}/.pylintrc +0 -0
  13. {rclone_api-1.0.81 → rclone_api-1.0.83}/.vscode/launch.json +0 -0
  14. {rclone_api-1.0.81 → rclone_api-1.0.83}/.vscode/settings.json +0 -0
  15. {rclone_api-1.0.81 → rclone_api-1.0.83}/.vscode/tasks.json +0 -0
  16. {rclone_api-1.0.81 → rclone_api-1.0.83}/LICENSE +0 -0
  17. {rclone_api-1.0.81 → rclone_api-1.0.83}/MANIFEST.in +0 -0
  18. {rclone_api-1.0.81 → rclone_api-1.0.83}/README.md +0 -0
  19. {rclone_api-1.0.81 → rclone_api-1.0.83}/clean +0 -0
  20. {rclone_api-1.0.81 → rclone_api-1.0.83}/install +0 -0
  21. {rclone_api-1.0.81 → rclone_api-1.0.83}/lint +0 -0
  22. {rclone_api-1.0.81 → rclone_api-1.0.83}/requirements.testing.txt +0 -0
  23. {rclone_api-1.0.81 → rclone_api-1.0.83}/setup.cfg +0 -0
  24. {rclone_api-1.0.81 → rclone_api-1.0.83}/setup.py +0 -0
  25. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/__init__.py +0 -0
  26. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/assets/example.txt +0 -0
  27. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/cli.py +0 -0
  28. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/cmd/list_files.py +0 -0
  29. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/completed_process.py +0 -0
  30. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/config.py +0 -0
  31. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/convert.py +0 -0
  32. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/deprecated.py +0 -0
  33. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/diff.py +0 -0
  34. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/dir.py +0 -0
  35. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/dir_listing.py +0 -0
  36. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/exec.py +0 -0
  37. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/file.py +0 -0
  38. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/filelist.py +0 -0
  39. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/group_files.py +0 -0
  40. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/process.py +0 -0
  41. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/remote.py +0 -0
  42. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/rpath.py +0 -0
  43. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/scan_missing_folders.py +0 -0
  44. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/types.py +0 -0
  45. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/util.py +0 -0
  46. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api/walk.py +0 -0
  47. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  48. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  49. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/entry_points.txt +0 -0
  50. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/requires.txt +0 -0
  51. {rclone_api-1.0.81 → rclone_api-1.0.83}/src/rclone_api.egg-info/top_level.txt +0 -0
  52. {rclone_api-1.0.81 → rclone_api-1.0.83}/test +0 -0
  53. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_cmd_list_files.py +0 -0
  54. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_copy.py +0 -0
  55. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_diff.py +0 -0
  56. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_group_files.py +0 -0
  57. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_is_synced.py +0 -0
  58. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_ls.py +0 -0
  59. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_mount.py +0 -0
  60. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_mount_s3.py +0 -0
  61. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_mount_webdav.py +0 -0
  62. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_obscure.py +0 -0
  63. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_remote_control.py +0 -0
  64. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_remotes.py +0 -0
  65. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_scan_missing_folders.py +0 -0
  66. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_serve_webdav.py +0 -0
  67. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_size_files.py +0 -0
  68. {rclone_api-1.0.81 → rclone_api-1.0.83}/tests/test_walk.py +0 -0
  69. {rclone_api-1.0.81 → rclone_api-1.0.83}/tox.ini +0 -0
  70. {rclone_api-1.0.81 → rclone_api-1.0.83}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.81
3
+ Version: 1.0.83
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -15,7 +15,7 @@ dependencies = [
15
15
  "python-dotenv>=1.0.0",
16
16
  ]
17
17
  # Change this with the version number bump.
18
- version = "1.0.81"
18
+ version = "1.0.83"
19
19
 
20
20
  [tool.setuptools]
21
21
  package-dir = {"" = "src"}
@@ -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, group_under_one_prefix
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
@@ -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
- datalists: dict[str, list[str]] = group_files(payload, fully_qualified=False)
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
 
@@ -847,7 +852,7 @@ class Rclone:
847
852
  check = get_check(check)
848
853
  files = list(files)
849
854
  all_files: list[File] = []
850
- src, files = group_under_one_prefix(src, files)
855
+ # prefix, files = group_under_one_prefix(src, files)
851
856
  cmd = ["lsjson", src, "--files-only", "-R"]
852
857
  with TemporaryDirectory() as tmpdir:
853
858
  # print("files: " + ",".join(files))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.81
3
+ Version: 1.0.83
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -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