rclone-api 1.3.25__py2.py3-none-any.whl → 1.3.26__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/types.py CHANGED
@@ -290,6 +290,18 @@ atexit.register(_on_exit_cleanup)
290
290
 
291
291
  _FILEPARTS: list["FilePart"] = []
292
292
 
293
+ _FILEPARTS_LOCK = Lock()
294
+ def _add_filepart(part: "FilePart") -> None:
295
+ with _FILEPARTS_LOCK:
296
+ if part not in _FILEPARTS:
297
+ _FILEPARTS.append(part)
298
+
299
+ def _remove_filepart(part: "FilePart") -> None:
300
+ with _FILEPARTS_LOCK:
301
+ if part in _FILEPARTS:
302
+ _FILEPARTS.remove(part)
303
+
304
+
293
305
 
294
306
  class ListFileParts(Thread):
295
307
  def __init__(self):
@@ -317,8 +329,10 @@ class FilePart:
317
329
  from rclone_api.util import random_str
318
330
 
319
331
  stacktrace = traceback.format_stack()
320
- self.stacktrace = stacktrace
321
- _FILEPARTS.append(self)
332
+ stacktrace_str = "".join(stacktrace)
333
+ self.stacktrace = stacktrace_str
334
+ # _FILEPARTS.append(self)
335
+ _add_filepart(self)
322
336
 
323
337
  self.extra = extra
324
338
  self._lock = Lock()
@@ -375,7 +389,8 @@ class FilePart:
375
389
  return isinstance(self.payload, Exception)
376
390
 
377
391
  def dispose(self) -> None:
378
- _FILEPARTS.remove(self)
392
+ # _FILEPARTS.remove(self)
393
+ _remove_filepart(self)
379
394
  print("Disposing file part")
380
395
  with self._lock:
381
396
  if isinstance(self.payload, Exception):
@@ -399,3 +414,7 @@ class FilePart:
399
414
 
400
415
  def __del__(self):
401
416
  self.dispose()
417
+
418
+ def __repr__(self):
419
+ payload_str = "err" if self.is_error() else f"{SizeSuffix(self.n_bytes())}"
420
+ return f"FilePart(payload={payload_str}, extra={self.extra})"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.3.25
3
+ Version: 1.3.26
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -21,7 +21,7 @@ rclone_api/rclone.py,sha256=yRhQoCBJI-tfhxySR17a-vSEhWw5cMbk8_WbYs5WqRc,54117
21
21
  rclone_api/remote.py,sha256=jq3dPbAGvYZFW5cTviqxT2w6_jG2LLfS1RIcYSmMsQQ,503
22
22
  rclone_api/rpath.py,sha256=8ZA_1wxWtskwcy0I8V2VbjKDmzPkiWd8Q2JQSvh-sYE,2586
23
23
  rclone_api/scan_missing_folders.py,sha256=Kulca2Q6WZodt00ATFHkmqqInuoPvBkhTcS9703y6po,4740
24
- rclone_api/types.py,sha256=ywPapK0Mw9inphdsxnxQwodyA2hCEfblwG7Pz1mvl3E,11792
24
+ rclone_api/types.py,sha256=oB5ocftpfD0QBTvrgjyE2XWOW7BYcMz5qqUmY7VVep8,12394
25
25
  rclone_api/util.py,sha256=F9Q3zbWRsgPF4NG6OWB63cZ7GVq82lsraP47gmmDohU,5416
26
26
  rclone_api/walk.py,sha256=-54NVE8EJcCstwDoaC_UtHm73R2HrZwVwQmsnv55xNU,3369
27
27
  rclone_api/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8,54
@@ -42,9 +42,9 @@ rclone_api/s3/chunk_types.py,sha256=oSWv8No9V3BeM7IcGnowyR2a7YrszdAXzEJlxaeZcp0,
42
42
  rclone_api/s3/create.py,sha256=wgfkapv_j904CfKuWyiBIWJVxfAx_ftemFSUV14aT68,3149
43
43
  rclone_api/s3/types.py,sha256=Elmh__gvZJyJyElYwMmvYZIBIunDJiTRAbEg21GmsRU,1604
44
44
  rclone_api/s3/upload_file_multipart.py,sha256=bxAB_SFkyydBBzC_cAv7gShe93nBkFVS-TXwM2Xttfk,12425
45
- rclone_api-1.3.25.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
46
- rclone_api-1.3.25.dist-info/METADATA,sha256=Pq7IVLcxa50RVNbvCcqG3yGkL2QN9mgb9t_aCA-9sn0,4628
47
- rclone_api-1.3.25.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
48
- rclone_api-1.3.25.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
49
- rclone_api-1.3.25.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
50
- rclone_api-1.3.25.dist-info/RECORD,,
45
+ rclone_api-1.3.26.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
46
+ rclone_api-1.3.26.dist-info/METADATA,sha256=KDIzU1lLhJFRMeGJiJ3CQS-fvB9qa5ulgrA8N9P0IsY,4628
47
+ rclone_api-1.3.26.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
48
+ rclone_api-1.3.26.dist-info/entry_points.txt,sha256=fJteOlYVwgX3UbNuL9jJ0zUTuX2O79JFAeNgK7Sw7EQ,255
49
+ rclone_api-1.3.26.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
50
+ rclone_api-1.3.26.dist-info/RECORD,,