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 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 FileSystem(abc.ABC):
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(FileSystem):
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(FileSystem):
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: FileSystem, path: str) -> None:
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.filesystem import RemoteFS
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rclone_api
3
- Version: 1.5.18
3
+ Version: 1.5.20
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -1,4 +1,4 @@
1
- rclone_api/__init__.py,sha256=tzjjY0b-VfJ8BFYs15S3OApVwd7S1JEYbv0gUz-13aE,32421
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/filesystem.py,sha256=htF2dF6v-tkiqyTj4BnDm3Ctn5seXZ2tiUFjSrMLOq8,6272
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=qIvd9qcKsdD7l9_d3Thy5nJUD9xX4MAlOMekWb1NPhg,46665
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.18.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
58
- rclone_api-1.5.18.dist-info/METADATA,sha256=u0TSArQPF3xtUyFdUbZ84vfgNoaZxv3Bx-RklZlvi9g,32696
59
- rclone_api-1.5.18.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
60
- rclone_api-1.5.18.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
61
- rclone_api-1.5.18.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
62
- rclone_api-1.5.18.dist-info/RECORD,,
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,,