rclone-api 1.5.22__py3-none-any.whl → 1.5.23__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/fs.py CHANGED
@@ -14,7 +14,7 @@ class FS(abc.ABC):
14
14
  pass
15
15
 
16
16
  @abc.abstractmethod
17
- def read_binary(self, path: Path | str) -> bytes:
17
+ def read_bytes(self, path: Path | str) -> bytes:
18
18
  pass
19
19
 
20
20
  @abc.abstractmethod
@@ -41,15 +41,6 @@ class FS(abc.ABC):
41
41
  def get_path(self, path: str) -> "FSPath":
42
42
  pass
43
43
 
44
- def read_text(self, path: Path | str) -> str:
45
- utf = self.read_binary(path)
46
- return utf.decode("utf-8")
47
-
48
- def write_text(self, path: Path | str, data: str, encoding: str | None) -> None:
49
- encoding = encoding or "utf-8"
50
- utf = data.encode(encoding)
51
- self.write_binary(path, utf)
52
-
53
44
 
54
45
  class RealFS(FS):
55
46
 
@@ -70,7 +61,7 @@ class RealFS(FS):
70
61
  def copy(self, src: Path | str, dest: Path | str) -> None:
71
62
  shutil.copy(str(src), str(dest))
72
63
 
73
- def read_binary(self, path: Path | str) -> bytes:
64
+ def read_bytes(self, path: Path | str) -> bytes:
74
65
  with open(path, "rb") as f:
75
66
  return f.read()
76
67
 
@@ -115,7 +106,7 @@ class RemoteFS(FS):
115
106
  self.shutdown = False
116
107
 
117
108
  def root(self) -> "FSPath":
118
- return FSPath(self, self.src)
109
+ return FSPath(self, "")
119
110
 
120
111
  def cwd(self) -> "FSPath":
121
112
  return self.root()
@@ -130,7 +121,7 @@ class RemoteFS(FS):
130
121
  dest = self._to_str(dest)
131
122
  self.rclone.copy(src, dest)
132
123
 
133
- def read_binary(self, path: Path | str) -> bytes:
124
+ def read_bytes(self, path: Path | str) -> bytes:
134
125
  path = self._to_str(path)
135
126
  err = self.rclone.read_bytes(path)
136
127
  if isinstance(err, Exception):
@@ -148,6 +139,7 @@ class RemoteFS(FS):
148
139
  def mkdir(self, path: str, parents=True, exist_ok=True) -> None:
149
140
  # Ignore mkdir for remote backend, it will be made when file is written.
150
141
  import warnings
142
+
151
143
  warnings.warn("mkdir is not supported for remote backend", stacklevel=2)
152
144
  return None
153
145
 
@@ -188,10 +180,16 @@ class FSPath:
188
180
  self.path = path
189
181
 
190
182
  def read_text(self) -> str:
191
- return self.fs.read_text(self.path)
183
+ data = self.read_bytes()
184
+ return data.decode("utf-8")
192
185
 
193
- def read_binary(self) -> bytes:
194
- return self.fs.read_binary(self.path)
186
+ def read_bytes(self) -> bytes:
187
+ data: bytes | None = None
188
+ try:
189
+ data = self.fs.read_bytes(self.path)
190
+ return data
191
+ except Exception as e:
192
+ raise FileNotFoundError(f"File not found: {self.path}, because of {e}")
195
193
 
196
194
  def exists(self) -> bool:
197
195
  return self.fs.exists(self.path)
@@ -206,7 +204,12 @@ class FSPath:
206
204
  self.fs.mkdir(self.path, parents=parents, exist_ok=exist_ok)
207
205
 
208
206
  def write_text(self, data: str, encoding: str | None = None) -> None:
209
- self.fs.write_text(self.path, data, encoding=encoding)
207
+ if encoding is None:
208
+ encoding = "utf-8"
209
+ self.write_bytes(data.encode(encoding))
210
+
211
+ def write_bytes(self, data: bytes) -> None:
212
+ self.fs.write_binary(self.path, data)
210
213
 
211
214
  def rmtree(self, ignore_errors=False) -> None:
212
215
  assert self.exists(), f"Path does not exist: {self.path}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rclone_api
3
- Version: 1.5.22
3
+ Version: 1.5.23
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -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/fs.py,sha256=1hdRw-7NQnWJSmq6U2d9p2S9UNcND3cJIlDIFfyhQ1o,6898
16
+ rclone_api/fs.py,sha256=q0oOjhhAzC5ZmHk9TH6X0FpEL5SPP2Ow3hjHbuOpufs,6922
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
@@ -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.22.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
58
- rclone_api-1.5.22.dist-info/METADATA,sha256=9bBj235dgclFZikP1fwFFsVKrKz2yYqczJlBJoA4H-o,37155
59
- rclone_api-1.5.22.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
60
- rclone_api-1.5.22.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
61
- rclone_api-1.5.22.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
62
- rclone_api-1.5.22.dist-info/RECORD,,
57
+ rclone_api-1.5.23.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
58
+ rclone_api-1.5.23.dist-info/METADATA,sha256=_9tLRiVqSoRBZJTrv3FWeNH3RvGclM232IrtUpAQf4w,37155
59
+ rclone_api-1.5.23.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
60
+ rclone_api-1.5.23.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
61
+ rclone_api-1.5.23.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
62
+ rclone_api-1.5.23.dist-info/RECORD,,