rclone-api 1.0.26__tar.gz → 1.0.27__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 (58) hide show
  1. {rclone_api-1.0.26 → rclone_api-1.0.27}/PKG-INFO +3 -3
  2. {rclone_api-1.0.26 → rclone_api-1.0.27}/README.md +2 -2
  3. {rclone_api-1.0.26 → rclone_api-1.0.27}/pyproject.toml +1 -1
  4. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/dir_listing.py +16 -0
  5. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/PKG-INFO +3 -3
  6. {rclone_api-1.0.26 → rclone_api-1.0.27}/.aiderignore +0 -0
  7. {rclone_api-1.0.26 → rclone_api-1.0.27}/.github/workflows/lint.yml +0 -0
  8. {rclone_api-1.0.26 → rclone_api-1.0.27}/.github/workflows/push_macos.yml +0 -0
  9. {rclone_api-1.0.26 → rclone_api-1.0.27}/.github/workflows/push_ubuntu.yml +0 -0
  10. {rclone_api-1.0.26 → rclone_api-1.0.27}/.github/workflows/push_win.yml +0 -0
  11. {rclone_api-1.0.26 → rclone_api-1.0.27}/.gitignore +0 -0
  12. {rclone_api-1.0.26 → rclone_api-1.0.27}/.pylintrc +0 -0
  13. {rclone_api-1.0.26 → rclone_api-1.0.27}/.vscode/launch.json +0 -0
  14. {rclone_api-1.0.26 → rclone_api-1.0.27}/.vscode/settings.json +0 -0
  15. {rclone_api-1.0.26 → rclone_api-1.0.27}/.vscode/tasks.json +0 -0
  16. {rclone_api-1.0.26 → rclone_api-1.0.27}/LICENSE +0 -0
  17. {rclone_api-1.0.26 → rclone_api-1.0.27}/MANIFEST.in +0 -0
  18. {rclone_api-1.0.26 → rclone_api-1.0.27}/clean +0 -0
  19. {rclone_api-1.0.26 → rclone_api-1.0.27}/install +0 -0
  20. {rclone_api-1.0.26 → rclone_api-1.0.27}/lint +0 -0
  21. {rclone_api-1.0.26 → rclone_api-1.0.27}/requirements.testing.txt +0 -0
  22. {rclone_api-1.0.26 → rclone_api-1.0.27}/setup.cfg +0 -0
  23. {rclone_api-1.0.26 → rclone_api-1.0.27}/setup.py +0 -0
  24. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/__init__.py +0 -0
  25. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/assets/example.txt +0 -0
  26. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/cli.py +0 -0
  27. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/cmd/list_files.py +0 -0
  28. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/config.py +0 -0
  29. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/convert.py +0 -0
  30. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/dir.py +0 -0
  31. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/exec.py +0 -0
  32. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/file.py +0 -0
  33. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/filelist.py +0 -0
  34. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/process.py +0 -0
  35. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/rclone.py +0 -0
  36. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/remote.py +0 -0
  37. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/rpath.py +0 -0
  38. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/util.py +0 -0
  39. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api/walk.py +0 -0
  40. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  41. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  42. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/entry_points.txt +0 -0
  43. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/requires.txt +0 -0
  44. {rclone_api-1.0.26 → rclone_api-1.0.27}/src/rclone_api.egg-info/top_level.txt +0 -0
  45. {rclone_api-1.0.26 → rclone_api-1.0.27}/test +0 -0
  46. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_cmd_list_files.py +0 -0
  47. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_copy.py +0 -0
  48. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_is_synced.py +0 -0
  49. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_ls.py +0 -0
  50. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_mount.py +0 -0
  51. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_mount_s3.py +0 -0
  52. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_mount_webdav.py +0 -0
  53. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_obscure.py +0 -0
  54. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_remotes.py +0 -0
  55. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_serve_webdav.py +0 -0
  56. {rclone_api-1.0.26 → rclone_api-1.0.27}/tests/test_walk.py +0 -0
  57. {rclone_api-1.0.26 → rclone_api-1.0.27}/tox.ini +0 -0
  58. {rclone_api-1.0.26 → rclone_api-1.0.27}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.26
3
+ Version: 1.0.27
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -22,11 +22,11 @@ Dynamic: maintainer
22
22
  [![Ubuntu_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml)
23
23
  [![Win_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml)
24
24
 
25
- Api version of rclone. It's well tested. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done.
25
+ Api version of rclone. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done. Unit tests up the wazoo. S3 Mounts on windows/linux are heavily optimized.
26
26
 
27
27
  You will need to have rclone installed and on your path.
28
28
 
29
- One of the benefits of this api is that it does not use `shell=True`, which can keep `rclone` running in some instances even when try to kill the process.
29
+ One of the benefits of this api is that it does not use 'shell=True' so therefore ctrl-c will work well in gracefully shutting down
30
30
 
31
31
  # Install
32
32
 
@@ -5,11 +5,11 @@
5
5
  [![Ubuntu_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml)
6
6
  [![Win_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml)
7
7
 
8
- Api version of rclone. It's well tested. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done.
8
+ Api version of rclone. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done. Unit tests up the wazoo. S3 Mounts on windows/linux are heavily optimized.
9
9
 
10
10
  You will need to have rclone installed and on your path.
11
11
 
12
- One of the benefits of this api is that it does not use `shell=True`, which can keep `rclone` running in some instances even when try to kill the process.
12
+ One of the benefits of this api is that it does not use 'shell=True' so therefore ctrl-c will work well in gracefully shutting down
13
13
 
14
14
  # Install
15
15
 
@@ -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.26"
18
+ version = "1.0.27"
19
19
 
20
20
  [tool.setuptools]
21
21
  package-dir = {"" = "src"}
@@ -1,8 +1,22 @@
1
1
  import json
2
+ import warnings
2
3
 
3
4
  from rclone_api.rpath import RPath
4
5
 
5
6
 
7
+ def _dedupe(items: list[RPath]) -> list[RPath]:
8
+ """Remove duplicate items from a list of RPath objects."""
9
+ seen = set()
10
+ unique_items = []
11
+ for item in items:
12
+ if item not in seen:
13
+ seen.add(item)
14
+ unique_items.append(item)
15
+ else:
16
+ warnings.warn(f"Duplicate item found: {item}, filtered out.")
17
+ return unique_items
18
+
19
+
6
20
  class DirListing:
7
21
  """Remote file dataclass."""
8
22
 
@@ -10,6 +24,8 @@ class DirListing:
10
24
  from rclone_api.dir import Dir
11
25
  from rclone_api.file import File
12
26
 
27
+ dirs_and_files = _dedupe(dirs_and_files)
28
+
13
29
  self.dirs: list[Dir] = [Dir(d) for d in dirs_and_files if d.is_dir]
14
30
  self.files: list[File] = [File(f) for f in dirs_and_files if not f.is_dir]
15
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.26
3
+ Version: 1.0.27
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -22,11 +22,11 @@ Dynamic: maintainer
22
22
  [![Ubuntu_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_ubuntu.yml)
23
23
  [![Win_Tests](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml/badge.svg)](https://github.com/zackees/rclone-api/actions/workflows/push_win.yml)
24
24
 
25
- Api version of rclone. It's well tested. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done.
25
+ Api version of rclone. It's a pretty low level api without the bells and whistles of other apis, but it will get the job done. Unit tests up the wazoo. S3 Mounts on windows/linux are heavily optimized.
26
26
 
27
27
  You will need to have rclone installed and on your path.
28
28
 
29
- One of the benefits of this api is that it does not use `shell=True`, which can keep `rclone` running in some instances even when try to kill the process.
29
+ One of the benefits of this api is that it does not use 'shell=True' so therefore ctrl-c will work well in gracefully shutting down
30
30
 
31
31
  # Install
32
32
 
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