rclone-api 1.1.46__tar.gz → 1.1.48__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.46 → rclone_api-1.1.48}/PKG-INFO +1 -1
  2. {rclone_api-1.1.46 → rclone_api-1.1.48}/pyproject.toml +1 -1
  3. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/mount.py +6 -6
  4. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/profile/mount_copy_bytes.py +25 -5
  5. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/PKG-INFO +1 -1
  6. {rclone_api-1.1.46 → rclone_api-1.1.48}/.aiderignore +0 -0
  7. {rclone_api-1.1.46 → rclone_api-1.1.48}/.github/workflows/lint.yml +0 -0
  8. {rclone_api-1.1.46 → rclone_api-1.1.48}/.github/workflows/push_macos.yml +0 -0
  9. {rclone_api-1.1.46 → rclone_api-1.1.48}/.github/workflows/push_ubuntu.yml +0 -0
  10. {rclone_api-1.1.46 → rclone_api-1.1.48}/.github/workflows/push_win.yml +0 -0
  11. {rclone_api-1.1.46 → rclone_api-1.1.48}/.gitignore +0 -0
  12. {rclone_api-1.1.46 → rclone_api-1.1.48}/.pylintrc +0 -0
  13. {rclone_api-1.1.46 → rclone_api-1.1.48}/.vscode/launch.json +0 -0
  14. {rclone_api-1.1.46 → rclone_api-1.1.48}/.vscode/settings.json +0 -0
  15. {rclone_api-1.1.46 → rclone_api-1.1.48}/.vscode/tasks.json +0 -0
  16. {rclone_api-1.1.46 → rclone_api-1.1.48}/LICENSE +0 -0
  17. {rclone_api-1.1.46 → rclone_api-1.1.48}/MANIFEST.in +0 -0
  18. {rclone_api-1.1.46 → rclone_api-1.1.48}/README.md +0 -0
  19. {rclone_api-1.1.46 → rclone_api-1.1.48}/clean +0 -0
  20. {rclone_api-1.1.46 → rclone_api-1.1.48}/install +0 -0
  21. {rclone_api-1.1.46 → rclone_api-1.1.48}/lint +0 -0
  22. {rclone_api-1.1.46 → rclone_api-1.1.48}/requirements.testing.txt +0 -0
  23. {rclone_api-1.1.46 → rclone_api-1.1.48}/setup.cfg +0 -0
  24. {rclone_api-1.1.46 → rclone_api-1.1.48}/setup.py +0 -0
  25. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/__init__.py +0 -0
  26. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/assets/example.txt +0 -0
  27. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/cli.py +0 -0
  28. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  29. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/cmd/list_files.py +0 -0
  30. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/completed_process.py +0 -0
  31. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/config.py +0 -0
  32. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/convert.py +0 -0
  33. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/deprecated.py +0 -0
  34. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/diff.py +0 -0
  35. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/dir.py +0 -0
  36. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/dir_listing.py +0 -0
  37. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/exec.py +0 -0
  38. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/experimental/flags.py +0 -0
  39. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/experimental/flags_base.py +0 -0
  40. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/file.py +0 -0
  41. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/filelist.py +0 -0
  42. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/group_files.py +0 -0
  43. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/process.py +0 -0
  44. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/rclone.py +0 -0
  45. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/remote.py +0 -0
  46. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/rpath.py +0 -0
  47. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/api.py +0 -0
  48. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/basic_ops.py +0 -0
  49. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/chunk_file.py +0 -0
  50. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/chunk_types.py +0 -0
  51. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/create.py +0 -0
  52. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/types.py +0 -0
  53. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/s3/upload_file_multipart.py +0 -0
  54. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/scan_missing_folders.py +0 -0
  55. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/types.py +0 -0
  56. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/util.py +0 -0
  57. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api/walk.py +0 -0
  58. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  59. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  60. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/entry_points.txt +0 -0
  61. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/requires.txt +0 -0
  62. {rclone_api-1.1.46 → rclone_api-1.1.48}/src/rclone_api.egg-info/top_level.txt +0 -0
  63. {rclone_api-1.1.46 → rclone_api-1.1.48}/test +0 -0
  64. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/archive/test_paramiko.py.disabled +0 -0
  65. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_cmd_list_files.py +0 -0
  66. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_copy.py +0 -0
  67. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_copy_bytes.py +0 -0
  68. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_copy_file_resumable_s3.py +0 -0
  69. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_copy_files.py +0 -0
  70. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_diff.py +0 -0
  71. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_group_files.py +0 -0
  72. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_is_synced.py +0 -0
  73. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_ls.py +0 -0
  74. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_mount.py +0 -0
  75. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_mount_s3.py +0 -0
  76. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_obscure.py +0 -0
  77. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_rclone_config.py +0 -0
  78. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_remote_control.py +0 -0
  79. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_remotes.py +0 -0
  80. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_s3.py +0 -0
  81. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_scan_missing_folders.py +0 -0
  82. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_size_files.py +0 -0
  83. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_size_suffix.py +0 -0
  84. {rclone_api-1.1.46 → rclone_api-1.1.48}/tests/test_walk.py +0 -0
  85. {rclone_api-1.1.46 → rclone_api-1.1.48}/tox.ini +0 -0
  86. {rclone_api-1.1.46 → rclone_api-1.1.48}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.46
3
+ Version: 1.1.48
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.46"
26
+ version = "1.1.48"
27
27
 
28
28
  [tool.setuptools]
29
29
  package-dir = {"" = "src"}
@@ -1,4 +1,3 @@
1
- import os
2
1
  import platform
3
2
  import shutil
4
3
  import subprocess
@@ -88,12 +87,13 @@ def wait_for_mount(path: Path, mount_process: Any, timeout: int = 10) -> None:
88
87
  cmd_str = subprocess.list2cmdline(mount_process.cmd)
89
88
  raise subprocess.CalledProcessError(rtn, cmd_str)
90
89
  if path.exists():
90
+ return
91
91
  # how many files?
92
- dircontents = os.listdir(str(path))
93
- if len(dircontents) > 0:
94
- print(f"Mount point {path}, waiting 5 seconds for files to appear.")
95
- time.sleep(5)
96
- return
92
+ # dircontents = os.listdir(str(path))
93
+ # if len(dircontents) > 0:
94
+ # print(f"Mount point {path}, waiting 5 seconds for files to appear.")
95
+ # time.sleep(5)
96
+ # return
97
97
  time.sleep(1)
98
98
 
99
99
 
@@ -2,6 +2,7 @@
2
2
  Unit test file.
3
3
  """
4
4
 
5
+ import argparse
5
6
  import os
6
7
  import shutil
7
8
  import time
@@ -14,6 +15,11 @@ from dotenv import load_dotenv
14
15
  from rclone_api import Config, Rclone, SizeSuffix
15
16
 
16
17
 
18
+ @dataclass
19
+ class Args:
20
+ direct_io: bool
21
+
22
+
17
23
  @dataclass
18
24
  class Credentials:
19
25
  BUCKET_KEY_SECRET: str
@@ -105,7 +111,12 @@ def _init() -> None:
105
111
 
106
112
 
107
113
  def _run_profile(
108
- rclone: Rclone, src_file: str, transfers: int, size: int, log_dir: Path
114
+ rclone: Rclone,
115
+ src_file: str,
116
+ transfers: int,
117
+ size: int,
118
+ log_dir: Path,
119
+ direct_io: bool = True,
109
120
  ) -> None:
110
121
 
111
122
  mount_log = log_dir / f"mount_{SizeSuffix(size)}_threads_{transfers}.log"
@@ -119,7 +130,7 @@ def _run_profile(
119
130
  src=src_file,
120
131
  offset=0,
121
132
  length=size,
122
- direct_io=True,
133
+ direct_io=direct_io,
123
134
  transfers=transfers,
124
135
  mount_log=mount_log,
125
136
  )
@@ -154,7 +165,7 @@ def _run_profile(
154
165
  print(f"Time: {diff:.1f} seconds")
155
166
 
156
167
 
157
- def test_profile_copy_bytes() -> None:
168
+ def test_profile_copy_bytes(args: Args) -> None:
158
169
  print("Running test_profile_copy_bytes")
159
170
  config, creds = _generate_rclone_config()
160
171
  print("Config:")
@@ -179,7 +190,7 @@ def test_profile_copy_bytes() -> None:
179
190
  # sftp mount
180
191
  src_file = "src:aa_misc_data/aa_misc_data/world_lending_library_2024_11.tar.zst"
181
192
 
182
- mount_root_path = Path("logs") / "mount"
193
+ mount_root_path = Path("rclone_logs") / "mount"
183
194
  if mount_root_path.exists():
184
195
  shutil.rmtree(mount_root_path)
185
196
 
@@ -190,15 +201,24 @@ def test_profile_copy_bytes() -> None:
190
201
  src_file=src_file,
191
202
  transfers=transfers,
192
203
  size=size,
204
+ direct_io=args.direct_io,
193
205
  log_dir=mount_root_path,
194
206
  )
195
207
  print("done")
196
208
 
197
209
 
210
+ def _parse_args() -> Args:
211
+ parser = argparse.ArgumentParser(description="Profile copy_bytes")
212
+ parser.add_argument("--direct-io", help="Use direct IO", action="store_true")
213
+ args = parser.parse_args()
214
+ return Args(direct_io=args.direct_io)
215
+
216
+
198
217
  def main() -> None:
199
218
  """Main entry point."""
200
219
  _init()
201
- test_profile_copy_bytes()
220
+ args = _parse_args()
221
+ test_profile_copy_bytes(args)
202
222
 
203
223
 
204
224
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.46
3
+ Version: 1.1.48
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