rclone-api 1.1.23__tar.gz → 1.1.25__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 (84) hide show
  1. {rclone_api-1.1.23 → rclone_api-1.1.25}/PKG-INFO +1 -1
  2. {rclone_api-1.1.23 → rclone_api-1.1.25}/pyproject.toml +1 -1
  3. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/cmd/copy_large_s3.py +2 -2
  4. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/types.py +20 -11
  5. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/PKG-INFO +1 -1
  6. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/SOURCES.txt +1 -1
  7. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_size_suffix.py +4 -1
  8. {rclone_api-1.1.23 → rclone_api-1.1.25}/.aiderignore +0 -0
  9. {rclone_api-1.1.23 → rclone_api-1.1.25}/.github/workflows/lint.yml +0 -0
  10. {rclone_api-1.1.23 → rclone_api-1.1.25}/.github/workflows/push_macos.yml +0 -0
  11. {rclone_api-1.1.23 → rclone_api-1.1.25}/.github/workflows/push_ubuntu.yml +0 -0
  12. {rclone_api-1.1.23 → rclone_api-1.1.25}/.github/workflows/push_win.yml +0 -0
  13. {rclone_api-1.1.23 → rclone_api-1.1.25}/.gitignore +0 -0
  14. {rclone_api-1.1.23 → rclone_api-1.1.25}/.pylintrc +0 -0
  15. {rclone_api-1.1.23 → rclone_api-1.1.25}/.vscode/launch.json +0 -0
  16. {rclone_api-1.1.23 → rclone_api-1.1.25}/.vscode/settings.json +0 -0
  17. {rclone_api-1.1.23 → rclone_api-1.1.25}/.vscode/tasks.json +0 -0
  18. {rclone_api-1.1.23 → rclone_api-1.1.25}/LICENSE +0 -0
  19. {rclone_api-1.1.23 → rclone_api-1.1.25}/MANIFEST.in +0 -0
  20. {rclone_api-1.1.23 → rclone_api-1.1.25}/README.md +0 -0
  21. {rclone_api-1.1.23 → rclone_api-1.1.25}/clean +0 -0
  22. {rclone_api-1.1.23 → rclone_api-1.1.25}/install +0 -0
  23. {rclone_api-1.1.23 → rclone_api-1.1.25}/lint +0 -0
  24. {rclone_api-1.1.23 → rclone_api-1.1.25}/requirements.testing.txt +0 -0
  25. {rclone_api-1.1.23 → rclone_api-1.1.25}/setup.cfg +0 -0
  26. {rclone_api-1.1.23 → rclone_api-1.1.25}/setup.py +0 -0
  27. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/__init__.py +0 -0
  28. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/assets/example.txt +0 -0
  29. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/cli.py +0 -0
  30. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/cmd/list_files.py +0 -0
  31. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/completed_process.py +0 -0
  32. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/config.py +0 -0
  33. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/convert.py +0 -0
  34. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/deprecated.py +0 -0
  35. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/diff.py +0 -0
  36. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/dir.py +0 -0
  37. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/dir_listing.py +0 -0
  38. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/exec.py +0 -0
  39. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/experimental/flags.py +0 -0
  40. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/experimental/flags_base.py +0 -0
  41. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/file.py +0 -0
  42. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/filelist.py +0 -0
  43. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/group_files.py +0 -0
  44. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/mount.py +0 -0
  45. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/process.py +0 -0
  46. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/rclone.py +0 -0
  47. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/remote.py +0 -0
  48. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/rpath.py +0 -0
  49. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/api.py +0 -0
  50. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/basic_ops.py +0 -0
  51. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/chunk_file.py +0 -0
  52. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/chunk_types.py +0 -0
  53. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/chunk_uploader.py +0 -0
  54. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/create.py +0 -0
  55. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/s3/types.py +0 -0
  56. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/scan_missing_folders.py +0 -0
  57. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/util.py +0 -0
  58. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api/walk.py +0 -0
  59. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  60. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/entry_points.txt +0 -0
  61. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/requires.txt +0 -0
  62. {rclone_api-1.1.23 → rclone_api-1.1.25}/src/rclone_api.egg-info/top_level.txt +0 -0
  63. {rclone_api-1.1.23 → rclone_api-1.1.25}/test +0 -0
  64. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/archive/test_paramiko.py.disabled +0 -0
  65. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_cmd_list_files.py +0 -0
  66. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_copy.py +0 -0
  67. /rclone_api-1.1.23/tests/test_mounted_ranged_download.py → /rclone_api-1.1.25/tests/test_copy_file_resumable_s3.py +0 -0
  68. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_copy_files.py +0 -0
  69. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_diff.py +0 -0
  70. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_group_files.py +0 -0
  71. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_is_synced.py +0 -0
  72. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_ls.py +0 -0
  73. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_mount.py +0 -0
  74. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_mount_s3.py +0 -0
  75. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_obscure.py +0 -0
  76. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_rclone_config.py +0 -0
  77. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_remote_control.py +0 -0
  78. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_remotes.py +0 -0
  79. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_s3.py +0 -0
  80. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_scan_missing_folders.py +0 -0
  81. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_size_files.py +0 -0
  82. {rclone_api-1.1.23 → rclone_api-1.1.25}/tests/test_walk.py +0 -0
  83. {rclone_api-1.1.23 → rclone_api-1.1.25}/tox.ini +0 -0
  84. {rclone_api-1.1.23 → rclone_api-1.1.25}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.23
3
+ Version: 1.1.25
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -22,7 +22,7 @@ dependencies = [
22
22
  ]
23
23
 
24
24
  # Change this with the version number bump.
25
- version = "1.1.23"
25
+ version = "1.1.25"
26
26
 
27
27
  [tool.setuptools]
28
28
  package-dir = {"" = "src"}
@@ -39,13 +39,13 @@ def _parse_args() -> Args:
39
39
  "--chunk-size",
40
40
  help="Chunk size that will be read and uploaded in in SizeSuffix (i.e. 128M = 128 megabytes) form",
41
41
  type=str,
42
- default="256MB",
42
+ default="64MB",
43
43
  )
44
44
  parser.add_argument(
45
45
  "--threads",
46
46
  help="Number of threads to use per chunk",
47
47
  type=int,
48
- default=32,
48
+ default=8,
49
49
  )
50
50
  parser.add_argument(
51
51
  "--write-threads",
@@ -39,17 +39,26 @@ class SizeResult:
39
39
  def _to_size_suffix(size: int) -> str:
40
40
  if size < 1024:
41
41
  return f"{size}B"
42
- if size < 1024 * 1024:
43
- return f"{size // 1024}K"
44
- if size < 1024 * 1024 * 1024:
45
- return f"{size // (1024 * 1024)}M"
46
- if size < 1024 * 1024 * 1024 * 1024:
47
- return f"{size // (1024 * 1024 * 1024)}G"
48
- if size < 1024 * 1024 * 1024 * 1024 * 1024:
49
- return f"{size // (1024 * 1024 * 1024 * 1024)}T"
50
- if size < 1024 * 1024 * 1024 * 1024 * 1024 * 1024:
51
- return f"{size // (1024 * 1024 * 1024 * 1024 * 1024)}P"
52
- raise ValueError(f"Invalid size: {size}")
42
+ elif size < 1024**2:
43
+ val = size / 1024
44
+ unit = "K"
45
+ elif size < 1024**3:
46
+ val = size / (1024**2)
47
+ unit = "M"
48
+ elif size < 1024**4:
49
+ val = size / (1024**3)
50
+ unit = "G"
51
+ elif size < 1024**5:
52
+ val = size / (1024**4)
53
+ unit = "T"
54
+ elif size < 1024**6:
55
+ val = size / (1024**5)
56
+ unit = "P"
57
+ else:
58
+ raise ValueError(f"Invalid size: {size}")
59
+
60
+ # If the float is an integer, drop the decimal, otherwise format with one decimal.
61
+ return f"{int(val) if val.is_integer() else f'{val:.1f}'}{unit}"
53
62
 
54
63
 
55
64
  # Update regex to allow decimals (e.g., 16.5MB)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.23
3
+ Version: 1.1.25
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -62,6 +62,7 @@ src/rclone_api/s3/create.py
62
62
  src/rclone_api/s3/types.py
63
63
  tests/test_cmd_list_files.py
64
64
  tests/test_copy.py
65
+ tests/test_copy_file_resumable_s3.py
65
66
  tests/test_copy_files.py
66
67
  tests/test_diff.py
67
68
  tests/test_group_files.py
@@ -69,7 +70,6 @@ tests/test_is_synced.py
69
70
  tests/test_ls.py
70
71
  tests/test_mount.py
71
72
  tests/test_mount_s3.py
72
- tests/test_mounted_ranged_download.py
73
73
  tests/test_obscure.py
74
74
  tests/test_rclone_config.py
75
75
  tests/test_remote_control.py
@@ -17,9 +17,12 @@ class RcloneSuffixSize(unittest.TestCase):
17
17
  self.assertEqual(size_int, 16 * 1024 * 1024)
18
18
 
19
19
  def test_float_suffix(self) -> None:
20
- size_suffix = SizeSuffix("16.5MB")
20
+ size_suffix = SizeSuffix("16.5M")
21
21
  size_int = size_suffix.as_int()
22
22
  self.assertEqual(size_int, int(16.5 * 1024 * 1024))
23
+ # now assert that the string value is the same as the input
24
+ out_str = str(size_suffix)
25
+ self.assertEqual(out_str, "16.5M")
23
26
 
24
27
 
25
28
  if __name__ == "__main__":
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