rclone-api 1.4.30__tar.gz → 1.4.32__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 (109) hide show
  1. {rclone_api-1.4.30 → rclone_api-1.4.32}/PKG-INFO +1 -1
  2. {rclone_api-1.4.30 → rclone_api-1.4.32}/pyproject.toml +1 -1
  3. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/__init__.py +2 -2
  4. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cmd/copy_large_s3.py +3 -9
  5. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/rclone_impl.py +5 -1
  6. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/PKG-INFO +1 -1
  7. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_copy_file_resumable_s3.py +7 -7
  8. {rclone_api-1.4.30 → rclone_api-1.4.32}/.aiderignore +0 -0
  9. {rclone_api-1.4.30 → rclone_api-1.4.32}/.github/workflows/lint.yml +0 -0
  10. {rclone_api-1.4.30 → rclone_api-1.4.32}/.github/workflows/push_macos.yml +0 -0
  11. {rclone_api-1.4.30 → rclone_api-1.4.32}/.github/workflows/push_ubuntu.yml +0 -0
  12. {rclone_api-1.4.30 → rclone_api-1.4.32}/.github/workflows/push_win.yml +0 -0
  13. {rclone_api-1.4.30 → rclone_api-1.4.32}/.gitignore +0 -0
  14. {rclone_api-1.4.30 → rclone_api-1.4.32}/.pylintrc +0 -0
  15. {rclone_api-1.4.30 → rclone_api-1.4.32}/.vscode/launch.json +0 -0
  16. {rclone_api-1.4.30 → rclone_api-1.4.32}/.vscode/settings.json +0 -0
  17. {rclone_api-1.4.30 → rclone_api-1.4.32}/.vscode/tasks.json +0 -0
  18. {rclone_api-1.4.30 → rclone_api-1.4.32}/LICENSE +0 -0
  19. {rclone_api-1.4.30 → rclone_api-1.4.32}/MANIFEST.in +0 -0
  20. {rclone_api-1.4.30 → rclone_api-1.4.32}/README.md +0 -0
  21. {rclone_api-1.4.30 → rclone_api-1.4.32}/clean +0 -0
  22. {rclone_api-1.4.30 → rclone_api-1.4.32}/install +0 -0
  23. {rclone_api-1.4.30 → rclone_api-1.4.32}/lint +0 -0
  24. {rclone_api-1.4.30 → rclone_api-1.4.32}/requirements.testing.txt +0 -0
  25. {rclone_api-1.4.30 → rclone_api-1.4.32}/setup.cfg +0 -0
  26. {rclone_api-1.4.30 → rclone_api-1.4.32}/setup.py +0 -0
  27. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/assets/example.txt +0 -0
  28. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cli.py +0 -0
  29. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cmd/analyze.py +0 -0
  30. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cmd/copy_large_s3_finish.py +0 -0
  31. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cmd/list_files.py +0 -0
  32. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/cmd/save_to_db.py +0 -0
  33. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/completed_process.py +0 -0
  34. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/config.py +0 -0
  35. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/convert.py +0 -0
  36. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/db/__init__.py +0 -0
  37. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/db/db.py +0 -0
  38. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/db/models.py +0 -0
  39. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/deprecated.py +0 -0
  40. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/detail/copy_file_parts_resumable.py +0 -0
  41. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/detail/walk.py +0 -0
  42. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/diff.py +0 -0
  43. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/dir.py +0 -0
  44. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/dir_listing.py +0 -0
  45. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/exec.py +0 -0
  46. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/experimental/flags.py +0 -0
  47. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/experimental/flags_base.py +0 -0
  48. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/file.py +0 -0
  49. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/file_item.py +0 -0
  50. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/file_part.py +0 -0
  51. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/file_stream.py +0 -0
  52. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/filelist.py +0 -0
  53. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/group_files.py +0 -0
  54. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/http_server.py +0 -0
  55. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/log.py +0 -0
  56. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/mount.py +0 -0
  57. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/process.py +0 -0
  58. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/remote.py +0 -0
  59. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/rpath.py +0 -0
  60. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/api.py +0 -0
  61. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/basic_ops.py +0 -0
  62. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/chunk_task.py +0 -0
  63. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/create.py +0 -0
  64. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/file_info.py +0 -0
  65. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/finished_piece.py +0 -0
  66. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/info_json.py +0 -0
  67. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/merge_state.py +0 -0
  68. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/upload_info.py +0 -0
  69. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/upload_parts_inline.py +0 -0
  70. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/upload_parts_resumable.py +0 -0
  71. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/upload_parts_server_side_merge.py +0 -0
  72. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/multipart/upload_state.py +0 -0
  73. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/s3/types.py +0 -0
  74. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/scan_missing_folders.py +0 -0
  75. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/types.py +0 -0
  76. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api/util.py +0 -0
  77. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  78. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  79. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/entry_points.txt +0 -0
  80. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/requires.txt +0 -0
  81. {rclone_api-1.4.30 → rclone_api-1.4.32}/src/rclone_api.egg-info/top_level.txt +0 -0
  82. {rclone_api-1.4.30 → rclone_api-1.4.32}/test +0 -0
  83. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/archive/test_paramiko.py.disabled +0 -0
  84. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_cmd_list_files.py +0 -0
  85. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_copy.py +0 -0
  86. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_copy_bytes.py +0 -0
  87. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_copy_files.py +0 -0
  88. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_db.py +0 -0
  89. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_diff.py +0 -0
  90. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_file_item.py +0 -0
  91. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_group_files.py +0 -0
  92. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_is_synced.py +0 -0
  93. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_ls.py +0 -0
  94. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_ls_stream_files.py +0 -0
  95. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_mount.py +0 -0
  96. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_mount_s3.py +0 -0
  97. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_obscure.py +0 -0
  98. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_rclone_config.py +0 -0
  99. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_read_write_text.py +0 -0
  100. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_remote_control.py +0 -0
  101. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_remotes.py +0 -0
  102. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_s3.py +0 -0
  103. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_scan_missing_folders.py +0 -0
  104. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_serve_http.py +0 -0
  105. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_size_files.py +0 -0
  106. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_size_suffix.py +0 -0
  107. {rclone_api-1.4.30 → rclone_api-1.4.32}/tests/test_walk.py +0 -0
  108. {rclone_api-1.4.30 → rclone_api-1.4.32}/tox.ini +0 -0
  109. {rclone_api-1.4.30 → rclone_api-1.4.32}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.4.30
3
+ Version: 1.4.32
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -25,7 +25,7 @@ dependencies = [
25
25
  ]
26
26
 
27
27
  # Change this with the version number bump.
28
- version = "1.4.30"
28
+ version = "1.4.32"
29
29
 
30
30
  [tool.setuptools]
31
31
  package-dir = {"" = "src"}
@@ -399,7 +399,7 @@ class Rclone:
399
399
  def copy_file_s3_resumable(
400
400
  self,
401
401
  src: str, # src:/Bucket/path/myfile.large.zst
402
- dst_dir: str, # dst:/Bucket/path/myfile.large.zst-parts/part.{part_number:05d}.start-end
402
+ dst: str, # dst:/Bucket/path/myfile.large.zst
403
403
  part_infos: list[PartInfo] | None = None,
404
404
  upload_threads: int = 8, # Number of reader and writer threads to use
405
405
  merge_threads: int = 4, # Number of threads to use for merging the parts
@@ -407,7 +407,7 @@ class Rclone:
407
407
  """Copy a file in parts."""
408
408
  return self.impl.copy_file_s3_resumable(
409
409
  src=src,
410
- dst_dir=dst_dir,
410
+ dst=dst,
411
411
  part_infos=part_infos,
412
412
  upload_threads=upload_threads,
413
413
  merge_threads=merge_threads,
@@ -1,4 +1,5 @@
1
1
  import argparse
2
+ import sys
2
3
  from dataclasses import dataclass
3
4
  from pathlib import Path
4
5
 
@@ -89,7 +90,7 @@ def main() -> int:
89
90
  # )
90
91
  err: Exception | None = rclone.copy_file_s3_resumable(
91
92
  src=args.src,
92
- dst_dir=args.dst,
93
+ dst=args.dst,
93
94
  )
94
95
  if err is not None:
95
96
  print(f"Error: {err}")
@@ -98,20 +99,13 @@ def main() -> int:
98
99
 
99
100
 
100
101
  if __name__ == "__main__":
101
- import sys
102
102
 
103
- # here = Path(__file__).parent
104
- # project_root = here.parent.parent.parent
105
- # print(f"project_root: {project_root}")
106
- # os.chdir(str(project_root))
107
- # cwd = Path(__file__).parent
108
- # print(f"cwd: {cwd}")
109
103
  sys.argv.append("--config")
110
104
  sys.argv.append("rclone.conf")
111
105
  sys.argv.append(
112
106
  "45061:aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst"
113
107
  )
114
108
  sys.argv.append(
115
- "dst:TorrentBooks/aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst-parts"
109
+ "dst:TorrentBooks/aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst"
116
110
  )
117
111
  main()
@@ -786,7 +786,7 @@ class RcloneImpl:
786
786
  def copy_file_s3_resumable(
787
787
  self,
788
788
  src: str, # src:/Bucket/path/myfile.large.zst
789
- dst_dir: str, # dst:/Bucket/path/myfile.large.zst-parts/
789
+ dst: str, # dst:/Bucket/path/myfile.large
790
790
  part_infos: list[PartInfo] | None = None,
791
791
  upload_threads: int = 8,
792
792
  merge_threads: int = 4,
@@ -796,6 +796,10 @@ class RcloneImpl:
796
796
  copy_file_parts_resumable,
797
797
  )
798
798
 
799
+ if dst.endswith("/"):
800
+ dst = dst[:-1]
801
+ dst_dir = f"{dst}-parts"
802
+
799
803
  out = copy_file_parts_resumable(
800
804
  self=self,
801
805
  src=src,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.4.30
3
+ Version: 1.4.32
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -88,8 +88,8 @@ class RcloneCopyResumableFileToS3(unittest.TestCase):
88
88
 
89
89
  def test_copy_parts(self) -> None:
90
90
  src_file = "dst:rclone-api-unit-test/zachs_video/global_alliance.mp4"
91
- dst_dir = "dst:rclone-api-unit-test/test_data/global_alliance.mp4-parts/"
92
- dst_file = src_file.replace("-parts", "")
91
+ dst = "dst:rclone-api-unit-test/test_data/global_alliance.mp4"
92
+ dst_dir = "dst:rclone-api-unit-test/test_data/global_alliance.mp4-parts"
93
93
 
94
94
  # print(f"BUCKET_KEY_SECRET: {SECRET_ACCESS_KEY}")
95
95
  config_text = _generate_rclone_config(PORT)
@@ -110,7 +110,7 @@ class RcloneCopyResumableFileToS3(unittest.TestCase):
110
110
 
111
111
  err = rclone.copy_file_s3_resumable(
112
112
  src=src_file,
113
- dst_dir=dst_dir,
113
+ dst=dst,
114
114
  part_infos=part_infos,
115
115
  )
116
116
 
@@ -119,11 +119,11 @@ class RcloneCopyResumableFileToS3(unittest.TestCase):
119
119
  # Second time should go fast.
120
120
  rclone.copy_file_s3_resumable(
121
121
  src=src_file,
122
- dst_dir=dst_dir,
122
+ dst=dst,
123
123
  part_infos=part_infos,
124
124
  )
125
125
 
126
- dir_listing = rclone.ls(dst_file)
126
+ dir_listing = rclone.ls(dst)
127
127
  print(f"dir_listing: {dir_listing}")
128
128
  self.assertEqual(len(dir_listing.files), 1)
129
129
  expected_files = dir_listing.files[0]
@@ -131,9 +131,9 @@ class RcloneCopyResumableFileToS3(unittest.TestCase):
131
131
  self.assertEqual(expected_files.name, "global_alliance.mp4")
132
132
  self.assertEqual(expected_files.size, src_size)
133
133
 
134
- dst_dir_listing = rclone.ls(dst_dir)
134
+ dst_dir_listing = rclone.ls(dst)
135
135
  print(f"dst_dir_listing: {dst_dir_listing}")
136
- self.assertEqual(len(dst_dir_listing.files), 0)
136
+ self.assertEqual(len(dst_dir_listing.files), 1)
137
137
  self.assertEqual(len(dst_dir_listing.dirs), 0)
138
138
 
139
139
  rclone.purge(dst_dir)
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