rclone-api 1.5.1__tar.gz → 1.5.3__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 (111) hide show
  1. {rclone_api-1.5.1 → rclone_api-1.5.3}/PKG-INFO +1 -1
  2. {rclone_api-1.5.1 → rclone_api-1.5.3}/pyproject.toml +1 -1
  3. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/__init__.py +17 -0
  4. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/install.py +4 -1
  5. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/util.py +5 -0
  6. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/PKG-INFO +1 -1
  7. {rclone_api-1.5.1 → rclone_api-1.5.3}/.aiderignore +0 -0
  8. {rclone_api-1.5.1 → rclone_api-1.5.3}/.github/workflows/lint.yml +0 -0
  9. {rclone_api-1.5.1 → rclone_api-1.5.3}/.github/workflows/push_macos.yml +0 -0
  10. {rclone_api-1.5.1 → rclone_api-1.5.3}/.github/workflows/push_ubuntu.yml +0 -0
  11. {rclone_api-1.5.1 → rclone_api-1.5.3}/.github/workflows/push_win.yml +0 -0
  12. {rclone_api-1.5.1 → rclone_api-1.5.3}/.gitignore +0 -0
  13. {rclone_api-1.5.1 → rclone_api-1.5.3}/.pylintrc +0 -0
  14. {rclone_api-1.5.1 → rclone_api-1.5.3}/.vscode/launch.json +0 -0
  15. {rclone_api-1.5.1 → rclone_api-1.5.3}/.vscode/settings.json +0 -0
  16. {rclone_api-1.5.1 → rclone_api-1.5.3}/.vscode/tasks.json +0 -0
  17. {rclone_api-1.5.1 → rclone_api-1.5.3}/LICENSE +0 -0
  18. {rclone_api-1.5.1 → rclone_api-1.5.3}/MANIFEST.in +0 -0
  19. {rclone_api-1.5.1 → rclone_api-1.5.3}/README.md +0 -0
  20. {rclone_api-1.5.1 → rclone_api-1.5.3}/clean +0 -0
  21. {rclone_api-1.5.1 → rclone_api-1.5.3}/install +0 -0
  22. {rclone_api-1.5.1 → rclone_api-1.5.3}/lint +0 -0
  23. {rclone_api-1.5.1 → rclone_api-1.5.3}/requirements.testing.txt +0 -0
  24. {rclone_api-1.5.1 → rclone_api-1.5.3}/setup.cfg +0 -0
  25. {rclone_api-1.5.1 → rclone_api-1.5.3}/setup.py +0 -0
  26. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/assets/example.txt +0 -0
  27. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cli.py +0 -0
  28. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cmd/analyze.py +0 -0
  29. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  30. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cmd/copy_large_s3_finish.py +0 -0
  31. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cmd/list_files.py +0 -0
  32. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/cmd/save_to_db.py +0 -0
  33. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/completed_process.py +0 -0
  34. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/config.py +0 -0
  35. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/convert.py +0 -0
  36. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/db/__init__.py +0 -0
  37. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/db/db.py +0 -0
  38. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/db/models.py +0 -0
  39. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/deprecated.py +0 -0
  40. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/detail/copy_file_parts_resumable.py +0 -0
  41. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/detail/walk.py +0 -0
  42. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/diff.py +0 -0
  43. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/dir.py +0 -0
  44. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/dir_listing.py +0 -0
  45. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/exec.py +0 -0
  46. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/experimental/flags.py +0 -0
  47. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/experimental/flags_base.py +0 -0
  48. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/file.py +0 -0
  49. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/file_item.py +0 -0
  50. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/file_part.py +0 -0
  51. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/file_stream.py +0 -0
  52. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/filelist.py +0 -0
  53. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/group_files.py +0 -0
  54. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/http_server.py +0 -0
  55. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/log.py +0 -0
  56. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/mount.py +0 -0
  57. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/process.py +0 -0
  58. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/rclone_impl.py +0 -0
  59. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/remote.py +0 -0
  60. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/rpath.py +0 -0
  61. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/api.py +0 -0
  62. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/basic_ops.py +0 -0
  63. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/chunk_task.py +0 -0
  64. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/create.py +0 -0
  65. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/file_info.py +0 -0
  66. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/finished_piece.py +0 -0
  67. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/info_json.py +0 -0
  68. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/merge_state.py +0 -0
  69. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/upload_info.py +0 -0
  70. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/upload_parts_inline.py +0 -0
  71. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/upload_parts_resumable.py +0 -0
  72. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/upload_parts_server_side_merge.py +0 -0
  73. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/multipart/upload_state.py +0 -0
  74. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/s3/types.py +0 -0
  75. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/scan_missing_folders.py +0 -0
  76. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api/types.py +0 -0
  77. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  78. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  79. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/entry_points.txt +0 -0
  80. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/requires.txt +0 -0
  81. {rclone_api-1.5.1 → rclone_api-1.5.3}/src/rclone_api.egg-info/top_level.txt +0 -0
  82. {rclone_api-1.5.1 → rclone_api-1.5.3}/test +0 -0
  83. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/archive/test_paramiko.py.disabled +0 -0
  84. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_cmd_list_files.py +0 -0
  85. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_copy.py +0 -0
  86. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_copy_bytes.py +0 -0
  87. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_copy_file_resumable_s3.py +0 -0
  88. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_copy_files.py +0 -0
  89. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_db.py +0 -0
  90. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_diff.py +0 -0
  91. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_file_item.py +0 -0
  92. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_group_files.py +0 -0
  93. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_install.py +0 -0
  94. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_is_synced.py +0 -0
  95. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_ls.py +0 -0
  96. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_ls_stream_files.py +0 -0
  97. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_mount.py +0 -0
  98. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_mount_s3.py +0 -0
  99. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_obscure.py +0 -0
  100. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_rclone_config.py +0 -0
  101. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_read_write_text.py +0 -0
  102. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_remote_control.py +0 -0
  103. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_remotes.py +0 -0
  104. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_s3.py +0 -0
  105. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_scan_missing_folders.py +0 -0
  106. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_serve_http.py +0 -0
  107. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_size_files.py +0 -0
  108. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_size_suffix.py +0 -0
  109. {rclone_api-1.5.1 → rclone_api-1.5.3}/tests/test_walk.py +0 -0
  110. {rclone_api-1.5.1 → rclone_api-1.5.3}/tox.ini +0 -0
  111. {rclone_api-1.5.1 → rclone_api-1.5.3}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.5.1
3
+ Version: 1.5.3
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -27,7 +27,7 @@ dependencies = [
27
27
  ]
28
28
 
29
29
  # Change this with the version number bump.
30
- version = "1.5.1"
30
+ version = "1.5.3"
31
31
 
32
32
  [tool.setuptools]
33
33
  package-dir = {"" = "src"}
@@ -74,6 +74,23 @@ class Rclone:
74
74
  implementation details and providing a clean, consistent interface.
75
75
  """
76
76
 
77
+ @staticmethod
78
+ def upgrade_rclone() -> Path:
79
+ """
80
+ Upgrade the rclone executable to the latest version.
81
+
82
+ Downloads the latest rclone binary and replaces the current one.
83
+
84
+ If an external rclone is already in your path then although upgrade_rclone
85
+ will download the latest version, it will not affect the rclone selected.
86
+
87
+ Returns:
88
+ Path to the upgraded rclone executable
89
+ """
90
+ from rclone_api.util import upgrade_rclone
91
+
92
+ return upgrade_rclone()
93
+
77
94
  def __init__(
78
95
  self, rclone_conf: Path | Config, rclone_exe: Path | None = None
79
96
  ) -> None:
@@ -70,16 +70,19 @@ def _find_rclone_exe(start: Path) -> Path | None:
70
70
 
71
71
 
72
72
  def rclone_download(out: Path, replace=False) -> Exception | None:
73
+ if out.exists() and not replace:
74
+ return None
73
75
  try:
74
76
  url = rclone_download_url()
75
77
  with TemporaryDirectory() as tmpdir:
76
78
  tmp = Path(tmpdir)
77
- download(url, tmp, kind="zip", replace=replace)
79
+ download(url, tmp, kind="zip", replace=True)
78
80
  exe = _find_rclone_exe(tmp)
79
81
  if exe is None:
80
82
  raise FileNotFoundError("rclone executable not found")
81
83
  if os.path.exists(out):
82
84
  os.remove(out)
85
+ out.parent.mkdir(parents=True, exist_ok=True)
83
86
  shutil.move(exe, out)
84
87
  _remove_signed_binary_requirements(out)
85
88
  _make_executable(out)
@@ -167,6 +167,11 @@ def get_rclone_exe(rclone_exe: Path | None) -> Path:
167
167
  return rclone_exe
168
168
 
169
169
 
170
+ def upgrade_rclone() -> Path:
171
+ rclone_download(out=_RCLONE_EXE, replace=True)
172
+ return _RCLONE_EXE
173
+
174
+
170
175
  def rclone_execute(
171
176
  cmd: list[str],
172
177
  rclone_conf: Path | Config,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.5.1
3
+ Version: 1.5.3
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
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