rclone-api 1.1.44__tar.gz → 1.1.45__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 (86) hide show
  1. {rclone_api-1.1.44 → rclone_api-1.1.45}/PKG-INFO +1 -1
  2. {rclone_api-1.1.44 → rclone_api-1.1.45}/pyproject.toml +1 -1
  3. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/mount.py +7 -1
  4. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/profile/mount_copy_bytes.py +15 -5
  5. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/rclone.py +5 -3
  6. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/PKG-INFO +1 -1
  7. {rclone_api-1.1.44 → rclone_api-1.1.45}/.aiderignore +0 -0
  8. {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/lint.yml +0 -0
  9. {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_macos.yml +0 -0
  10. {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_ubuntu.yml +0 -0
  11. {rclone_api-1.1.44 → rclone_api-1.1.45}/.github/workflows/push_win.yml +0 -0
  12. {rclone_api-1.1.44 → rclone_api-1.1.45}/.gitignore +0 -0
  13. {rclone_api-1.1.44 → rclone_api-1.1.45}/.pylintrc +0 -0
  14. {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/launch.json +0 -0
  15. {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/settings.json +0 -0
  16. {rclone_api-1.1.44 → rclone_api-1.1.45}/.vscode/tasks.json +0 -0
  17. {rclone_api-1.1.44 → rclone_api-1.1.45}/LICENSE +0 -0
  18. {rclone_api-1.1.44 → rclone_api-1.1.45}/MANIFEST.in +0 -0
  19. {rclone_api-1.1.44 → rclone_api-1.1.45}/README.md +0 -0
  20. {rclone_api-1.1.44 → rclone_api-1.1.45}/clean +0 -0
  21. {rclone_api-1.1.44 → rclone_api-1.1.45}/install +0 -0
  22. {rclone_api-1.1.44 → rclone_api-1.1.45}/lint +0 -0
  23. {rclone_api-1.1.44 → rclone_api-1.1.45}/requirements.testing.txt +0 -0
  24. {rclone_api-1.1.44 → rclone_api-1.1.45}/setup.cfg +0 -0
  25. {rclone_api-1.1.44 → rclone_api-1.1.45}/setup.py +0 -0
  26. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/__init__.py +0 -0
  27. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/assets/example.txt +0 -0
  28. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cli.py +0 -0
  29. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  30. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/cmd/list_files.py +0 -0
  31. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/completed_process.py +0 -0
  32. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/config.py +0 -0
  33. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/convert.py +0 -0
  34. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/deprecated.py +0 -0
  35. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/diff.py +0 -0
  36. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/dir.py +0 -0
  37. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/dir_listing.py +0 -0
  38. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/exec.py +0 -0
  39. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/experimental/flags.py +0 -0
  40. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/experimental/flags_base.py +0 -0
  41. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/file.py +0 -0
  42. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/filelist.py +0 -0
  43. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/group_files.py +0 -0
  44. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/process.py +0 -0
  45. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/remote.py +0 -0
  46. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/rpath.py +0 -0
  47. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/api.py +0 -0
  48. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/basic_ops.py +0 -0
  49. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/chunk_file.py +0 -0
  50. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/chunk_types.py +0 -0
  51. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/create.py +0 -0
  52. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/types.py +0 -0
  53. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/s3/upload_file_multipart.py +0 -0
  54. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/scan_missing_folders.py +0 -0
  55. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/types.py +0 -0
  56. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/util.py +0 -0
  57. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api/walk.py +0 -0
  58. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  59. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  60. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/entry_points.txt +0 -0
  61. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/requires.txt +0 -0
  62. {rclone_api-1.1.44 → rclone_api-1.1.45}/src/rclone_api.egg-info/top_level.txt +0 -0
  63. {rclone_api-1.1.44 → rclone_api-1.1.45}/test +0 -0
  64. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/archive/test_paramiko.py.disabled +0 -0
  65. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_cmd_list_files.py +0 -0
  66. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy.py +0 -0
  67. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_bytes.py +0 -0
  68. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_file_resumable_s3.py +0 -0
  69. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_copy_files.py +0 -0
  70. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_diff.py +0 -0
  71. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_group_files.py +0 -0
  72. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_is_synced.py +0 -0
  73. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_ls.py +0 -0
  74. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_mount.py +0 -0
  75. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_mount_s3.py +0 -0
  76. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_obscure.py +0 -0
  77. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_rclone_config.py +0 -0
  78. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_remote_control.py +0 -0
  79. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_remotes.py +0 -0
  80. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_s3.py +0 -0
  81. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_scan_missing_folders.py +0 -0
  82. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_size_files.py +0 -0
  83. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_size_suffix.py +0 -0
  84. {rclone_api-1.1.44 → rclone_api-1.1.45}/tests/test_walk.py +0 -0
  85. {rclone_api-1.1.44 → rclone_api-1.1.45}/tox.ini +0 -0
  86. {rclone_api-1.1.44 → rclone_api-1.1.45}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.44
3
+ Version: 1.1.45
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -23,7 +23,7 @@ dependencies = [
23
23
  ]
24
24
 
25
25
  # Change this with the version number bump.
26
- version = "1.1.44"
26
+ version = "1.1.45"
27
27
 
28
28
  [tool.setuptools]
29
29
  package-dir = {"" = "src"}
@@ -31,7 +31,13 @@ class Mount:
31
31
  if self._closed:
32
32
  return
33
33
  self._closed = True
34
- clean_mount(self, verbose=False)
34
+ clean_mount(self, verbose=False, wait=wait)
35
+
36
+ def __enter__(self) -> "Mount":
37
+ return self
38
+
39
+ def __exit__(self, exc_type, exc_value, traceback) -> None:
40
+ self.close(wait=True)
35
41
 
36
42
  def __del__(self):
37
43
  self.close(wait=False)
@@ -3,6 +3,7 @@ Unit test file.
3
3
  """
4
4
 
5
5
  import os
6
+ import shutil
6
7
  import time
7
8
  from dataclasses import dataclass
8
9
  from pathlib import Path
@@ -103,10 +104,11 @@ def _init() -> None:
103
104
  os.environ["RCLONE_API_VERBOSE"] = "1"
104
105
 
105
106
 
106
- def _run_profile(rclone: Rclone, src_file: str, transfers: int, size: int) -> None:
107
- mount_log = (
108
- Path("logs") / "mount" / f"mount_{SizeSuffix(size)}_threads_{transfers}.log"
109
- )
107
+ def _run_profile(
108
+ rclone: Rclone, src_file: str, transfers: int, size: int, log_dir: Path
109
+ ) -> None:
110
+
111
+ mount_log = log_dir / f"mount_{SizeSuffix(size)}_threads_{transfers}.log"
110
112
  print("\n\n")
111
113
  print("#" * 80)
112
114
  print(f"# Started test download of {SizeSuffix(size)} with {transfers} transfers")
@@ -177,10 +179,18 @@ def test_profile_copy_bytes() -> None:
177
179
  # sftp mount
178
180
  src_file = "src:aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst"
179
181
 
182
+ mount_root_path = Path("logs") / "mount"
183
+ if mount_root_path.exists():
184
+ shutil.rmtree(mount_root_path)
185
+
180
186
  for size in sizes:
181
187
  for transfers in transfer_list:
182
188
  _run_profile(
183
- rclone=rclone, src_file=src_file, transfers=transfers, size=size
189
+ rclone=rclone,
190
+ src_file=src_file,
191
+ transfers=transfers,
192
+ size=size,
193
+ log_dir=mount_root_path,
184
194
  )
185
195
  print("done")
186
196
 
@@ -931,6 +931,7 @@ class Rclone:
931
931
  vfs_cache_mode = vfs_cache_mode or "full"
932
932
  clean_mount(outdir, verbose=verbose)
933
933
  prepare_mount(outdir, verbose=verbose)
934
+ debug_fuse = log is not None
934
935
  src_str = convert_to_str(src)
935
936
  cmd_list: list[str] = ["mount", src_str, str(outdir)]
936
937
  if not allow_writes:
@@ -940,12 +941,14 @@ class Rclone:
940
941
  if vfs_cache_mode:
941
942
  cmd_list.append("--vfs-cache-mode")
942
943
  cmd_list.append(vfs_cache_mode)
944
+ if debug_fuse:
945
+ cmd_list.append("--debug-fuse")
943
946
  if verbose:
944
947
  cmd_list.append("-vvvv")
945
948
  if other_args:
946
949
  cmd_list += other_args
947
950
  proc = self._launch_process(cmd_list, log=log)
948
- mount_read_only = "--read-only" in cmd_list # hint to allow fast teardown
951
+ mount_read_only = not allow_writes
949
952
  mount: Mount = Mount(mount_path=outdir, process=proc, read_only=mount_read_only)
950
953
  return mount
951
954
 
@@ -963,7 +966,6 @@ class Rclone:
963
966
  ) -> Generator[Mount, None, None]:
964
967
  """Like mount, but can be used in a context manager."""
965
968
  error_happened = False
966
- verbose = get_verbose(verbose)
967
969
  mount: Mount = self.mount(
968
970
  src,
969
971
  outdir,
@@ -982,7 +984,7 @@ class Rclone:
982
984
  warnings.warn(f"Error in scoped_mount: {e}\n\nStack Trace:\n{stack_trace}")
983
985
  raise
984
986
  finally:
985
- if not error_happened:
987
+ if not error_happened or (not allow_writes):
986
988
  mount.close()
987
989
 
988
990
  # Settings optimized for s3.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.44
3
+ Version: 1.1.45
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