rclone-api 1.1.46__py2.py3-none-any.whl → 1.1.48__py2.py3-none-any.whl
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.
- rclone_api/mount.py +6 -6
- rclone_api/profile/mount_copy_bytes.py +25 -5
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/METADATA +1 -1
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/RECORD +8 -8
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/LICENSE +0 -0
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/WHEEL +0 -0
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/entry_points.txt +0 -0
- {rclone_api-1.1.46.dist-info → rclone_api-1.1.48.dist-info}/top_level.txt +0 -0
rclone_api/mount.py
CHANGED
|
@@ -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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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,
|
|
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=
|
|
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("
|
|
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
|
-
|
|
220
|
+
args = _parse_args()
|
|
221
|
+
test_profile_copy_bytes(args)
|
|
202
222
|
|
|
203
223
|
|
|
204
224
|
if __name__ == "__main__":
|
|
@@ -11,7 +11,7 @@ rclone_api/exec.py,sha256=Pd7pUBd8ib5MzqvMybG2DQISPRbDRu20VjVRL2mLAVY,1076
|
|
|
11
11
|
rclone_api/file.py,sha256=EP5yT2dZ0H2p7CY5n0y5k5pHhIliV25pm8KOwBklUTk,1863
|
|
12
12
|
rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
|
|
13
13
|
rclone_api/group_files.py,sha256=H92xPW9lQnbNw5KbtZCl00bD6iRh9yRbCuxku4j_3dg,8036
|
|
14
|
-
rclone_api/mount.py,sha256=
|
|
14
|
+
rclone_api/mount.py,sha256=dTpF3QbPHF68qQcE_csY8n66oY_mai0h3mm6yUuvRrs,6742
|
|
15
15
|
rclone_api/process.py,sha256=rBj_S86jC6nqCYop-jq8r9eMSteKeObxUrJMgH8LZvI,5084
|
|
16
16
|
rclone_api/rclone.py,sha256=ODHPq1OKKzOUgi7QPDc1UZHZLSoG9SkxnT1MXpoggx4,43823
|
|
17
17
|
rclone_api/remote.py,sha256=O9WDUFQy9f6oT1HdUbTixK2eg0xtBBm8k4Xl6aa6K00,431
|
|
@@ -25,7 +25,7 @@ rclone_api/cmd/copy_large_s3.py,sha256=-rfedi-ZzPUdCSP8ai9LRL0y1xVkvN-viQQlk8HVU
|
|
|
25
25
|
rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
|
|
26
26
|
rclone_api/experimental/flags.py,sha256=qCVD--fSTmzlk9hloRLr0q9elzAOFzPsvVpKM3aB1Mk,2739
|
|
27
27
|
rclone_api/experimental/flags_base.py,sha256=ajU_czkTcAxXYU-SlmiCfHY7aCQGHvpCLqJ-Z8uZLk0,2102
|
|
28
|
-
rclone_api/profile/mount_copy_bytes.py,sha256=
|
|
28
|
+
rclone_api/profile/mount_copy_bytes.py,sha256=Jc7AKjX37W6S7ramFFKdcA0l6oeuK2mJi00w50rERew,6351
|
|
29
29
|
rclone_api/s3/api.py,sha256=qxtRDUpHYqJ7StJRtP8U_PbF_BvYRg705568SyvF-R0,3770
|
|
30
30
|
rclone_api/s3/basic_ops.py,sha256=hK3366xhVEzEcjz9Gk_8lFx6MRceAk72cax6mUrr6ko,2104
|
|
31
31
|
rclone_api/s3/chunk_file.py,sha256=D6wM9Nuu73LNGC8JCCfevqjF3qdZ21mQxYQClFLZLMU,3726
|
|
@@ -33,9 +33,9 @@ rclone_api/s3/chunk_types.py,sha256=LbXayXY1KgVU1LkdbASD_BQ7TpVpwVnzMjtz--8LBaE,
|
|
|
33
33
|
rclone_api/s3/create.py,sha256=wgfkapv_j904CfKuWyiBIWJVxfAx_ftemFSUV14aT68,3149
|
|
34
34
|
rclone_api/s3/types.py,sha256=yBnJ38Tjk6RlydJ-sqZ7DSfyFloy8KDYJ0mv3vlOzLE,1388
|
|
35
35
|
rclone_api/s3/upload_file_multipart.py,sha256=y9azNAU8QH5Ovwz33V2HZwNmJdlFjJg-jrXLZ1gtMds,10364
|
|
36
|
-
rclone_api-1.1.
|
|
37
|
-
rclone_api-1.1.
|
|
38
|
-
rclone_api-1.1.
|
|
39
|
-
rclone_api-1.1.
|
|
40
|
-
rclone_api-1.1.
|
|
41
|
-
rclone_api-1.1.
|
|
36
|
+
rclone_api-1.1.48.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
|
|
37
|
+
rclone_api-1.1.48.dist-info/METADATA,sha256=ksRD9o_XfXR406tZnoT7E4rN44XpgGyhuQH09T1V9JU,4537
|
|
38
|
+
rclone_api-1.1.48.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
|
|
39
|
+
rclone_api-1.1.48.dist-info/entry_points.txt,sha256=TV8kwP3FRzYwUEr0RLC7aJh0W03SAefIJNXTJ-FdMIQ,200
|
|
40
|
+
rclone_api-1.1.48.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
|
|
41
|
+
rclone_api-1.1.48.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|