rclone-api 1.1.98__tar.gz → 1.2.0__tar.gz

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.
Files changed (86) hide show
  1. {rclone_api-1.1.98 → rclone_api-1.2.0}/PKG-INFO +1 -1
  2. {rclone_api-1.1.98 → rclone_api-1.2.0}/pyproject.toml +1 -1
  3. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/mount.py +5 -2
  4. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/chunk_file.py +2 -4
  5. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/PKG-INFO +1 -1
  6. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_s3.py +3 -4
  7. {rclone_api-1.1.98 → rclone_api-1.2.0}/.aiderignore +0 -0
  8. {rclone_api-1.1.98 → rclone_api-1.2.0}/.github/workflows/lint.yml +0 -0
  9. {rclone_api-1.1.98 → rclone_api-1.2.0}/.github/workflows/push_macos.yml +0 -0
  10. {rclone_api-1.1.98 → rclone_api-1.2.0}/.github/workflows/push_ubuntu.yml +0 -0
  11. {rclone_api-1.1.98 → rclone_api-1.2.0}/.github/workflows/push_win.yml +0 -0
  12. {rclone_api-1.1.98 → rclone_api-1.2.0}/.gitignore +0 -0
  13. {rclone_api-1.1.98 → rclone_api-1.2.0}/.pylintrc +0 -0
  14. {rclone_api-1.1.98 → rclone_api-1.2.0}/.vscode/launch.json +0 -0
  15. {rclone_api-1.1.98 → rclone_api-1.2.0}/.vscode/settings.json +0 -0
  16. {rclone_api-1.1.98 → rclone_api-1.2.0}/.vscode/tasks.json +0 -0
  17. {rclone_api-1.1.98 → rclone_api-1.2.0}/LICENSE +0 -0
  18. {rclone_api-1.1.98 → rclone_api-1.2.0}/MANIFEST.in +0 -0
  19. {rclone_api-1.1.98 → rclone_api-1.2.0}/README.md +0 -0
  20. {rclone_api-1.1.98 → rclone_api-1.2.0}/clean +0 -0
  21. {rclone_api-1.1.98 → rclone_api-1.2.0}/install +0 -0
  22. {rclone_api-1.1.98 → rclone_api-1.2.0}/lint +0 -0
  23. {rclone_api-1.1.98 → rclone_api-1.2.0}/requirements.testing.txt +0 -0
  24. {rclone_api-1.1.98 → rclone_api-1.2.0}/setup.cfg +0 -0
  25. {rclone_api-1.1.98 → rclone_api-1.2.0}/setup.py +0 -0
  26. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/__init__.py +0 -0
  27. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/assets/example.txt +0 -0
  28. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/cli.py +0 -0
  29. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  30. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/cmd/list_files.py +0 -0
  31. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/completed_process.py +0 -0
  32. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/config.py +0 -0
  33. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/convert.py +0 -0
  34. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/deprecated.py +0 -0
  35. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/diff.py +0 -0
  36. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/dir.py +0 -0
  37. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/dir_listing.py +0 -0
  38. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/exec.py +0 -0
  39. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/experimental/flags.py +0 -0
  40. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/experimental/flags_base.py +0 -0
  41. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/file.py +0 -0
  42. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/filelist.py +0 -0
  43. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/group_files.py +0 -0
  44. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/process.py +0 -0
  45. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/profile/mount_copy_bytes.py +0 -0
  46. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/rclone.py +0 -0
  47. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/remote.py +0 -0
  48. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/rpath.py +0 -0
  49. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/api.py +0 -0
  50. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/basic_ops.py +0 -0
  51. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/chunk_types.py +0 -0
  52. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/create.py +0 -0
  53. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/types.py +0 -0
  54. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/s3/upload_file_multipart.py +0 -0
  55. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/scan_missing_folders.py +0 -0
  56. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/types.py +0 -0
  57. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/util.py +0 -0
  58. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api/walk.py +0 -0
  59. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/SOURCES.txt +0 -0
  60. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  61. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/entry_points.txt +0 -0
  62. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/requires.txt +0 -0
  63. {rclone_api-1.1.98 → rclone_api-1.2.0}/src/rclone_api.egg-info/top_level.txt +0 -0
  64. {rclone_api-1.1.98 → rclone_api-1.2.0}/test +0 -0
  65. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/archive/test_paramiko.py.disabled +0 -0
  66. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_cmd_list_files.py +0 -0
  67. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_copy.py +0 -0
  68. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_copy_bytes.py +0 -0
  69. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_copy_file_resumable_s3.py +0 -0
  70. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_copy_files.py +0 -0
  71. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_diff.py +0 -0
  72. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_group_files.py +0 -0
  73. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_is_synced.py +0 -0
  74. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_ls.py +0 -0
  75. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_mount.py +0 -0
  76. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_mount_s3.py +0 -0
  77. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_obscure.py +0 -0
  78. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_rclone_config.py +0 -0
  79. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_remote_control.py +0 -0
  80. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_remotes.py +0 -0
  81. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_scan_missing_folders.py +0 -0
  82. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_size_files.py +0 -0
  83. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_size_suffix.py +0 -0
  84. {rclone_api-1.1.98 → rclone_api-1.2.0}/tests/test_walk.py +0 -0
  85. {rclone_api-1.1.98 → rclone_api-1.2.0}/tox.ini +0 -0
  86. {rclone_api-1.1.98 → rclone_api-1.2.0}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.98
3
+ Version: 1.2.0
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -23,7 +23,7 @@ dependencies = [
23
23
  ]
24
24
 
25
25
  # Change this with the version number bump.
26
- version = "1.1.98"
26
+ version = "1.2.0"
27
27
 
28
28
  [tool.setuptools]
29
29
  package-dir = {"" = "src"}
@@ -4,6 +4,7 @@ import platform
4
4
  import shutil
5
5
  import subprocess
6
6
  import time
7
+ import traceback
7
8
  import warnings
8
9
  import weakref
9
10
  from concurrent.futures import Future, ThreadPoolExecutor
@@ -366,8 +367,10 @@ class MultiMountFileChunker:
366
367
  _thread.interrupt_main()
367
368
  return Exception(e)
368
369
  except Exception as e:
369
- stack_trace = e.__traceback__
370
- warnings.warn(f"Error fetching file chunk: {e}\n{stack_trace}")
370
+ stack_trace = traceback.format_exc()
371
+ warnings.warn(
372
+ f"Error fetching file chunk at offset{offset} + {size}: {e}\n{stack_trace}"
373
+ )
371
374
  return e
372
375
  finally:
373
376
  with self.lock:
@@ -36,9 +36,6 @@ def file_chunker(
36
36
  ) -> None:
37
37
  count = 0
38
38
 
39
- if False:
40
- print(chunk_fetcher)
41
-
42
39
  def should_stop() -> bool:
43
40
  nonlocal count
44
41
 
@@ -128,7 +125,8 @@ def file_chunker(
128
125
  done_part_numbers.add(part_number)
129
126
  output.put(file_chunk)
130
127
 
131
- fut = chunk_fetcher(curr_parth_num, chunk_size)
128
+ offset = (curr_parth_num - 1) * chunk_size
129
+ fut = chunk_fetcher(offset, chunk_size)
132
130
  fut.add_done_callback(on_complete)
133
131
  # wait until the output queue can accept the next chunk
134
132
  while output.full():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.98
3
+ Version: 1.2.0
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -18,7 +18,7 @@ class RcloneS3Tester(unittest.TestCase):
18
18
  """Test rclone functionality."""
19
19
 
20
20
  # @unittest.skipIf(not _ENABLED, "Test not enabled")
21
- @unittest.skipIf(True, "Test not enabled")
21
+ # @unittest.skipIf(True, "Test not enabled")
22
22
  def test_upload_chunks(self) -> None:
23
23
  """Test basic Webdav serve functionality."""
24
24
 
@@ -67,14 +67,13 @@ class RcloneS3Tester(unittest.TestCase):
67
67
  state_json = Path(tempdir) / "state.json"
68
68
 
69
69
  def simple_fetcher(
70
- chunk_id: int, chunk_size: int
70
+ offset: int, chunk_size: int
71
71
  ) -> Future[bytes | Exception]:
72
72
  with ThreadPoolExecutor() as executor:
73
73
 
74
74
  def task() -> bytes | Exception:
75
75
  with open(str(tmpfile), "rb") as f:
76
- idx = (chunk_id - 1) * chunk_size
77
- f.seek(idx * chunk_size)
76
+ f.seek(offset)
78
77
  return f.read(chunk_size)
79
78
 
80
79
  fut = executor.submit(task)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes