rclone-api 1.5.18__py3-none-any.whl → 1.5.20__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/__init__.py +22 -0
- rclone_api/{filesystem.py → fs.py} +6 -5
- rclone_api/rclone_impl.py +4 -1
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/METADATA +1 -1
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/RECORD +9 -9
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/WHEEL +0 -0
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/entry_points.txt +0 -0
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/licenses/LICENSE +0 -0
- {rclone_api-1.5.18.dist-info → rclone_api-1.5.20.dist-info}/top_level.txt +0 -0
rclone_api/__init__.py
CHANGED
@@ -24,6 +24,7 @@ from .dir_listing import DirListing # Directory contents representation
|
|
24
24
|
from .file import File, FileItem # File representation
|
25
25
|
from .file_stream import FilesStream # Streaming file listings
|
26
26
|
from .filelist import FileList # File list utilities
|
27
|
+
from .fs import FSPath, RemoteFS # Filesystem utilities
|
27
28
|
from .http_server import HttpFetcher, HttpServer, Range # HTTP serving capabilities
|
28
29
|
|
29
30
|
# Import logging configuration utilities
|
@@ -119,6 +120,27 @@ class Rclone:
|
|
119
120
|
"""
|
120
121
|
return self.impl.webgui(other_args=other_args)
|
121
122
|
|
123
|
+
def filesystem(self, src: str) -> RemoteFS:
|
124
|
+
"""
|
125
|
+
Get a RealFS object for interacting with the local filesystem.
|
126
|
+
|
127
|
+
Returns:
|
128
|
+
RealFS object for local filesystem operations
|
129
|
+
"""
|
130
|
+
return self.impl.filesystem(src=src)
|
131
|
+
|
132
|
+
def cwd(self, src: str) -> FSPath:
|
133
|
+
"""
|
134
|
+
Get the local root path for a filesystem.
|
135
|
+
|
136
|
+
Args:
|
137
|
+
src: Source path for the filesystem
|
138
|
+
|
139
|
+
Returns:
|
140
|
+
FSPath object representing the root of the filesystem
|
141
|
+
"""
|
142
|
+
return self.impl.cwd(src=src)
|
143
|
+
|
122
144
|
def launch_server(
|
123
145
|
self,
|
124
146
|
addr: str,
|
@@ -5,7 +5,7 @@ from pathlib import Path
|
|
5
5
|
from rclone_api.config import Config
|
6
6
|
|
7
7
|
|
8
|
-
class
|
8
|
+
class FS(abc.ABC):
|
9
9
|
def __init__(self) -> None:
|
10
10
|
pass
|
11
11
|
|
@@ -51,7 +51,7 @@ class FileSystem(abc.ABC):
|
|
51
51
|
self.write_binary(path, utf)
|
52
52
|
|
53
53
|
|
54
|
-
class RealFS(
|
54
|
+
class RealFS(FS):
|
55
55
|
|
56
56
|
@staticmethod
|
57
57
|
def from_path(path: Path | str) -> "FSPath":
|
@@ -88,18 +88,19 @@ class RealFS(FileSystem):
|
|
88
88
|
return FSPath(self, path)
|
89
89
|
|
90
90
|
|
91
|
-
class RemoteFS(
|
91
|
+
class RemoteFS(FS):
|
92
92
|
def __init__(self, rclone_conf: Path | Config, src: str) -> None:
|
93
93
|
from rclone_api import HttpServer, Rclone
|
94
94
|
|
95
95
|
super().__init__()
|
96
|
+
self.src = src
|
96
97
|
self.rclone_conf = rclone_conf
|
97
98
|
self.rclone: Rclone = Rclone(rclone_conf)
|
98
99
|
self.server: HttpServer = self.rclone.serve_http(src=src)
|
99
100
|
self.shutdown = False
|
100
101
|
|
101
102
|
def root(self) -> "FSPath":
|
102
|
-
return FSPath(self,
|
103
|
+
return FSPath(self, self.src)
|
103
104
|
|
104
105
|
def cwd(self) -> "FSPath":
|
105
106
|
return self.root()
|
@@ -164,7 +165,7 @@ class RemoteFS(FileSystem):
|
|
164
165
|
|
165
166
|
|
166
167
|
class FSPath:
|
167
|
-
def __init__(self, fs:
|
168
|
+
def __init__(self, fs: FS, path: str) -> None:
|
168
169
|
self.fs = fs
|
169
170
|
self.path = path
|
170
171
|
|
rclone_api/rclone_impl.py
CHANGED
@@ -26,7 +26,7 @@ from rclone_api.dir_listing import DirListing
|
|
26
26
|
from rclone_api.exec import RcloneExec
|
27
27
|
from rclone_api.file import File
|
28
28
|
from rclone_api.file_stream import FilesStream
|
29
|
-
from rclone_api.
|
29
|
+
from rclone_api.fs import FSPath, RemoteFS
|
30
30
|
from rclone_api.group_files import group_files
|
31
31
|
from rclone_api.http_server import HttpServer
|
32
32
|
from rclone_api.mount import Mount
|
@@ -107,6 +107,9 @@ class RcloneImpl:
|
|
107
107
|
def filesystem(self, src: str) -> RemoteFS:
|
108
108
|
return RemoteFS(self.config, src)
|
109
109
|
|
110
|
+
def cwd(self, src: str) -> FSPath:
|
111
|
+
return self.filesystem(src).cwd()
|
112
|
+
|
110
113
|
def launch_server(
|
111
114
|
self,
|
112
115
|
addr: str,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
rclone_api/__init__.py,sha256=
|
1
|
+
rclone_api/__init__.py,sha256=2B3NUnmPmEfV3f6hLKqMxioJIIB4Ry7jxpPjvA1JxLo,33064
|
2
2
|
rclone_api/cli.py,sha256=dibfAZIh0kXWsBbfp3onKLjyZXo54mTzDjUdzJlDlWo,231
|
3
3
|
rclone_api/completed_process.py,sha256=_IZ8IWK7DM1_tsbDEkH6wPZ-bbcrgf7A7smls854pmg,1775
|
4
4
|
rclone_api/config.py,sha256=f6jEAxVorGFr31oHfcsu5AJTtOJj2wR5tTSsbGGZuIw,2558
|
@@ -13,7 +13,7 @@ rclone_api/file_item.py,sha256=cH-AQYsxedhNPp4c8NHY1ad4Z7St4yf_VGbmiGD59no,1770
|
|
13
13
|
rclone_api/file_part.py,sha256=i6ByS5_sae8Eba-4imBVTxd-xKC8ExWy7NR8QGr0ors,6155
|
14
14
|
rclone_api/file_stream.py,sha256=_W3qnwCuigqA0hzXl2q5pAxSZDRaUSwet4BkT0lpnzs,1431
|
15
15
|
rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
|
16
|
-
rclone_api/
|
16
|
+
rclone_api/fs.py,sha256=17sBC6WMBrZ-daoVs-9fZMr7xjnw3TnyjXTxS5SPBv8,6269
|
17
17
|
rclone_api/group_files.py,sha256=H92xPW9lQnbNw5KbtZCl00bD6iRh9yRbCuxku4j_3dg,8036
|
18
18
|
rclone_api/http_server.py,sha256=ZdL-rGaq0zIjcaIiRIbPBQ4OIWZ7dCu71aq0nRlKtY4,11686
|
19
19
|
rclone_api/install.py,sha256=Xb1BRn8rQcSpSd4dzmvIOELP2zM2DytUeIZ6jzv738A,2893
|
@@ -21,7 +21,7 @@ rclone_api/log.py,sha256=VZHM7pNSXip2ZLBKMP7M1u-rp_F7zoafFDuR8CPUoKI,1271
|
|
21
21
|
rclone_api/mount.py,sha256=LZqEhuKZunbWVqmsOIqkkCotaxWJpdFRS1InXveoU5E,1428
|
22
22
|
rclone_api/mount_util.py,sha256=jqhJEVTHV6c6lOOzUYb4FLMbqDMHdz7-QRcdH-IobFc,10154
|
23
23
|
rclone_api/process.py,sha256=MeWiN-TrrN0HmtWexBPxGwf84z6f-_E5yaXE-YtLYpY,5879
|
24
|
-
rclone_api/rclone_impl.py,sha256=
|
24
|
+
rclone_api/rclone_impl.py,sha256=tIoNJtjMYIKTp9SVpH878pd7tFW3v1APO4FuU2RnJTk,46747
|
25
25
|
rclone_api/remote.py,sha256=mTgMTQTwxUmbLjTpr-AGTId2ycXKI9mLX5L7PPpDIoc,520
|
26
26
|
rclone_api/rpath.py,sha256=Y1JjQWcie39EgQrq-UtbfDz5yDLCwwfu27W7AQXllSE,2860
|
27
27
|
rclone_api/scan_missing_folders.py,sha256=-8NCwpCaHeHrX-IepCoAEsX1rl8S-GOCxcIhTr_w3gA,4747
|
@@ -54,9 +54,9 @@ rclone_api/s3/multipart/upload_parts_inline.py,sha256=V7syKjFyVIe4U9Ahl5XgqVTzt9
|
|
54
54
|
rclone_api/s3/multipart/upload_parts_resumable.py,sha256=6-nlMclS8jyVvMvFbQDcZOX9MY1WbCcKA_s9bwuYxnk,9793
|
55
55
|
rclone_api/s3/multipart/upload_parts_server_side_merge.py,sha256=Fp2pdrs5dONQI9LkfNolgAGj1-Z2V1SsRd0r0sreuXI,18040
|
56
56
|
rclone_api/s3/multipart/upload_state.py,sha256=f-Aq2NqtAaMUMhYitlICSNIxCKurWAl2gDEUVizLIqw,6019
|
57
|
-
rclone_api-1.5.
|
58
|
-
rclone_api-1.5.
|
59
|
-
rclone_api-1.5.
|
60
|
-
rclone_api-1.5.
|
61
|
-
rclone_api-1.5.
|
62
|
-
rclone_api-1.5.
|
57
|
+
rclone_api-1.5.20.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
|
58
|
+
rclone_api-1.5.20.dist-info/METADATA,sha256=Y9h8Sh3rUSD4vDUIFG_itPAM7hw6SPfKhug8loC0D98,32696
|
59
|
+
rclone_api-1.5.20.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
60
|
+
rclone_api-1.5.20.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
|
61
|
+
rclone_api-1.5.20.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
|
62
|
+
rclone_api-1.5.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|