rclone-api 1.0.37__tar.gz → 1.0.38__tar.gz

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rclone-api might be problematic. Click here for more details.

Files changed (62) hide show
  1. {rclone_api-1.0.37 → rclone_api-1.0.38}/PKG-INFO +1 -1
  2. {rclone_api-1.0.37 → rclone_api-1.0.38}/pyproject.toml +1 -1
  3. rclone_api-1.0.38/src/rclone_api/completed_process.py +15 -0
  4. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/rclone.py +21 -13
  5. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/PKG-INFO +1 -1
  6. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/SOURCES.txt +1 -0
  7. {rclone_api-1.0.37 → rclone_api-1.0.38}/.aiderignore +0 -0
  8. {rclone_api-1.0.37 → rclone_api-1.0.38}/.github/workflows/lint.yml +0 -0
  9. {rclone_api-1.0.37 → rclone_api-1.0.38}/.github/workflows/push_macos.yml +0 -0
  10. {rclone_api-1.0.37 → rclone_api-1.0.38}/.github/workflows/push_ubuntu.yml +0 -0
  11. {rclone_api-1.0.37 → rclone_api-1.0.38}/.github/workflows/push_win.yml +0 -0
  12. {rclone_api-1.0.37 → rclone_api-1.0.38}/.gitignore +0 -0
  13. {rclone_api-1.0.37 → rclone_api-1.0.38}/.pylintrc +0 -0
  14. {rclone_api-1.0.37 → rclone_api-1.0.38}/.vscode/launch.json +0 -0
  15. {rclone_api-1.0.37 → rclone_api-1.0.38}/.vscode/settings.json +0 -0
  16. {rclone_api-1.0.37 → rclone_api-1.0.38}/.vscode/tasks.json +0 -0
  17. {rclone_api-1.0.37 → rclone_api-1.0.38}/LICENSE +0 -0
  18. {rclone_api-1.0.37 → rclone_api-1.0.38}/MANIFEST.in +0 -0
  19. {rclone_api-1.0.37 → rclone_api-1.0.38}/README.md +0 -0
  20. {rclone_api-1.0.37 → rclone_api-1.0.38}/clean +0 -0
  21. {rclone_api-1.0.37 → rclone_api-1.0.38}/install +0 -0
  22. {rclone_api-1.0.37 → rclone_api-1.0.38}/lint +0 -0
  23. {rclone_api-1.0.37 → rclone_api-1.0.38}/requirements.testing.txt +0 -0
  24. {rclone_api-1.0.37 → rclone_api-1.0.38}/setup.cfg +0 -0
  25. {rclone_api-1.0.37 → rclone_api-1.0.38}/setup.py +0 -0
  26. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/__init__.py +0 -0
  27. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/assets/example.txt +0 -0
  28. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/cli.py +0 -0
  29. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/cmd/list_files.py +0 -0
  30. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/config.py +0 -0
  31. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/convert.py +0 -0
  32. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/deprecated.py +0 -0
  33. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/diff.py +0 -0
  34. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/dir.py +0 -0
  35. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/dir_listing.py +0 -0
  36. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/exec.py +0 -0
  37. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/file.py +0 -0
  38. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/filelist.py +0 -0
  39. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/process.py +0 -0
  40. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/remote.py +0 -0
  41. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/rpath.py +0 -0
  42. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/util.py +0 -0
  43. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api/walk.py +0 -0
  44. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  45. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/entry_points.txt +0 -0
  46. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/requires.txt +0 -0
  47. {rclone_api-1.0.37 → rclone_api-1.0.38}/src/rclone_api.egg-info/top_level.txt +0 -0
  48. {rclone_api-1.0.37 → rclone_api-1.0.38}/test +0 -0
  49. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_cmd_list_files.py +0 -0
  50. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_copy.py +0 -0
  51. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_diff.py +0 -0
  52. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_is_synced.py +0 -0
  53. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_ls.py +0 -0
  54. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_mount.py +0 -0
  55. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_mount_s3.py +0 -0
  56. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_mount_webdav.py +0 -0
  57. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_obscure.py +0 -0
  58. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_remotes.py +0 -0
  59. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_serve_webdav.py +0 -0
  60. {rclone_api-1.0.37 → rclone_api-1.0.38}/tests/test_walk.py +0 -0
  61. {rclone_api-1.0.37 → rclone_api-1.0.38}/tox.ini +0 -0
  62. {rclone_api-1.0.37 → rclone_api-1.0.38}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.37
3
+ Version: 1.0.38
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.37"
18
+ version = "1.0.38"
19
19
 
20
20
  [tool.setuptools]
21
21
  package-dir = {"" = "src"}
@@ -0,0 +1,15 @@
1
+ import subprocess
2
+ from dataclasses import dataclass
3
+
4
+
5
+ @dataclass
6
+ class CompletedProcess:
7
+ completed: list[subprocess.CompletedProcess]
8
+
9
+ @property
10
+ def ok(self) -> bool:
11
+ return all([p.returncode == 0 for p in self.completed])
12
+
13
+ @staticmethod
14
+ def from_subprocess(process: subprocess.CompletedProcess) -> "CompletedProcess":
15
+ return CompletedProcess(completed=[process])
@@ -12,6 +12,7 @@ from tempfile import TemporaryDirectory
12
12
  from typing import Generator
13
13
 
14
14
  from rclone_api import Dir
15
+ from rclone_api.completed_process import CompletedProcess
15
16
  from rclone_api.config import Config
16
17
  from rclone_api.convert import convert_to_filestr_list, convert_to_str
17
18
  from rclone_api.deprecated import deprecated
@@ -234,7 +235,7 @@ class Rclone:
234
235
 
235
236
  assert out is not None
236
237
 
237
- def copy(self, src: Dir | str, dst: Dir | str) -> subprocess.CompletedProcess:
238
+ def copy(self, src: Dir | str, dst: Dir | str) -> CompletedProcess:
238
239
  """Copy files from source to destination.
239
240
 
240
241
  Args:
@@ -246,27 +247,30 @@ class Rclone:
246
247
  src_dir = convert_to_str(src)
247
248
  dst_dir = convert_to_str(dst)
248
249
  cmd_list: list[str] = ["copy", src_dir, dst_dir]
249
- return self._run(cmd_list)
250
+ cp = self._run(cmd_list)
251
+ return CompletedProcess.from_subprocess(cp)
250
252
 
251
- def purge(self, path: Dir | str) -> subprocess.CompletedProcess:
253
+ def purge(self, path: Dir | str) -> CompletedProcess:
252
254
  """Purge a directory"""
253
255
  # path should always be a string
254
256
  path = path if isinstance(path, str) else str(path.path)
255
257
  cmd_list: list[str] = ["purge", str(path)]
256
- return self._run(cmd_list)
258
+ cp = self._run(cmd_list)
259
+ return CompletedProcess.from_subprocess(cp)
257
260
 
258
261
  def delete_files(
259
262
  self, files: str | File | list[str] | list[File], check=True
260
- ) -> subprocess.CompletedProcess:
263
+ ) -> CompletedProcess:
261
264
  """Delete a directory"""
262
265
  payload: list[str] = convert_to_filestr_list(files)
263
266
  if len(payload) == 0:
264
- return subprocess.CompletedProcess(
267
+ cp = subprocess.CompletedProcess(
265
268
  args=["rclone", "delete", "--files-from", "[]"],
266
269
  returncode=0,
267
270
  stdout="",
268
271
  stderr="",
269
272
  )
273
+ return CompletedProcess.from_subprocess(cp)
270
274
 
271
275
  datalists: dict[str, list[str]] = partition_files(payload)
272
276
  out: subprocess.CompletedProcess | None = None
@@ -299,13 +303,14 @@ class Rclone:
299
303
  warnings.warn(f"Error deleting files: {out}")
300
304
 
301
305
  assert out is not None
302
- return out
306
+ return CompletedProcess(completed_processes)
303
307
 
304
308
  @deprecated("delete_files")
305
309
  def deletefiles(
306
310
  self, files: str | File | list[str] | list[File]
307
- ) -> subprocess.CompletedProcess:
308
- return self.delete_files(files)
311
+ ) -> CompletedProcess:
312
+ out = self.delete_files(files)
313
+ return out
309
314
 
310
315
  def exists(self, path: Dir | Remote | str | File) -> bool:
311
316
  """Check if a file or directory exists."""
@@ -331,7 +336,7 @@ class Rclone:
331
336
 
332
337
  def copy_dir(
333
338
  self, src: str | Dir, dst: str | Dir, args: list[str] | None = None
334
- ) -> subprocess.CompletedProcess:
339
+ ) -> CompletedProcess:
335
340
  """Copy a directory from source to destination."""
336
341
  # convert src to str, also dst
337
342
  src = convert_to_str(src)
@@ -339,16 +344,19 @@ class Rclone:
339
344
  cmd_list: list[str] = ["copy", src, dst]
340
345
  if args is not None:
341
346
  cmd_list += args
342
- return self._run(cmd_list)
347
+ cp = self._run(cmd_list)
348
+ return CompletedProcess.from_subprocess(cp)
343
349
 
344
350
  def copy_remote(
345
351
  self, src: Remote, dst: Remote, args: list[str] | None = None
346
- ) -> subprocess.CompletedProcess:
352
+ ) -> CompletedProcess:
347
353
  """Copy a remote to another remote."""
348
354
  cmd_list: list[str] = ["copy", str(src), str(dst)]
349
355
  if args is not None:
350
356
  cmd_list += args
351
- return self._run(cmd_list)
357
+ # return self._run(cmd_list)
358
+ cp = self._run(cmd_list)
359
+ return CompletedProcess.from_subprocess(cp)
352
360
 
353
361
  def mount(
354
362
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.37
3
+ Version: 1.0.38
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -22,6 +22,7 @@ upload_package.sh
22
22
  .vscode/tasks.json
23
23
  src/rclone_api/__init__.py
24
24
  src/rclone_api/cli.py
25
+ src/rclone_api/completed_process.py
25
26
  src/rclone_api/config.py
26
27
  src/rclone_api/convert.py
27
28
  src/rclone_api/deprecated.py
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