rclone-api 1.1.33__tar.gz → 1.1.37__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.33 → rclone_api-1.1.37}/PKG-INFO +1 -1
  2. {rclone_api-1.1.33 → rclone_api-1.1.37}/pyproject.toml +3 -2
  3. {rclone_api-1.1.33/src/rclone_api/profiling → rclone_api-1.1.37/src/rclone_api/profile}/mount_copy_bytes.py +42 -4
  4. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/PKG-INFO +1 -1
  5. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/SOURCES.txt +1 -1
  6. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/entry_points.txt +1 -0
  7. {rclone_api-1.1.33 → rclone_api-1.1.37}/.aiderignore +0 -0
  8. {rclone_api-1.1.33 → rclone_api-1.1.37}/.github/workflows/lint.yml +0 -0
  9. {rclone_api-1.1.33 → rclone_api-1.1.37}/.github/workflows/push_macos.yml +0 -0
  10. {rclone_api-1.1.33 → rclone_api-1.1.37}/.github/workflows/push_ubuntu.yml +0 -0
  11. {rclone_api-1.1.33 → rclone_api-1.1.37}/.github/workflows/push_win.yml +0 -0
  12. {rclone_api-1.1.33 → rclone_api-1.1.37}/.gitignore +0 -0
  13. {rclone_api-1.1.33 → rclone_api-1.1.37}/.pylintrc +0 -0
  14. {rclone_api-1.1.33 → rclone_api-1.1.37}/.vscode/launch.json +0 -0
  15. {rclone_api-1.1.33 → rclone_api-1.1.37}/.vscode/settings.json +0 -0
  16. {rclone_api-1.1.33 → rclone_api-1.1.37}/.vscode/tasks.json +0 -0
  17. {rclone_api-1.1.33 → rclone_api-1.1.37}/LICENSE +0 -0
  18. {rclone_api-1.1.33 → rclone_api-1.1.37}/MANIFEST.in +0 -0
  19. {rclone_api-1.1.33 → rclone_api-1.1.37}/README.md +0 -0
  20. {rclone_api-1.1.33 → rclone_api-1.1.37}/clean +0 -0
  21. {rclone_api-1.1.33 → rclone_api-1.1.37}/install +0 -0
  22. {rclone_api-1.1.33 → rclone_api-1.1.37}/lint +0 -0
  23. {rclone_api-1.1.33 → rclone_api-1.1.37}/requirements.testing.txt +0 -0
  24. {rclone_api-1.1.33 → rclone_api-1.1.37}/setup.cfg +0 -0
  25. {rclone_api-1.1.33 → rclone_api-1.1.37}/setup.py +0 -0
  26. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/__init__.py +0 -0
  27. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/assets/example.txt +0 -0
  28. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/cli.py +0 -0
  29. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/cmd/copy_large_s3.py +0 -0
  30. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/cmd/list_files.py +0 -0
  31. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/completed_process.py +0 -0
  32. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/config.py +0 -0
  33. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/convert.py +0 -0
  34. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/deprecated.py +0 -0
  35. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/diff.py +0 -0
  36. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/dir.py +0 -0
  37. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/dir_listing.py +0 -0
  38. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/exec.py +0 -0
  39. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/experimental/flags.py +0 -0
  40. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/experimental/flags_base.py +0 -0
  41. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/file.py +0 -0
  42. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/filelist.py +0 -0
  43. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/group_files.py +0 -0
  44. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/mount.py +0 -0
  45. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/process.py +0 -0
  46. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/rclone.py +0 -0
  47. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/remote.py +0 -0
  48. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/rpath.py +0 -0
  49. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/api.py +0 -0
  50. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/basic_ops.py +0 -0
  51. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/chunk_file.py +0 -0
  52. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/chunk_types.py +0 -0
  53. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/create.py +0 -0
  54. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/types.py +0 -0
  55. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/s3/upload_file_multipart.py +0 -0
  56. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/scan_missing_folders.py +0 -0
  57. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/types.py +0 -0
  58. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/util.py +0 -0
  59. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api/walk.py +0 -0
  60. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/dependency_links.txt +0 -0
  61. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/requires.txt +0 -0
  62. {rclone_api-1.1.33 → rclone_api-1.1.37}/src/rclone_api.egg-info/top_level.txt +0 -0
  63. {rclone_api-1.1.33 → rclone_api-1.1.37}/test +0 -0
  64. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/archive/test_paramiko.py.disabled +0 -0
  65. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_cmd_list_files.py +0 -0
  66. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_copy.py +0 -0
  67. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_copy_bytes.py +0 -0
  68. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_copy_file_resumable_s3.py +0 -0
  69. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_copy_files.py +0 -0
  70. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_diff.py +0 -0
  71. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_group_files.py +0 -0
  72. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_is_synced.py +0 -0
  73. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_ls.py +0 -0
  74. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_mount.py +0 -0
  75. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_mount_s3.py +0 -0
  76. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_obscure.py +0 -0
  77. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_rclone_config.py +0 -0
  78. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_remote_control.py +0 -0
  79. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_remotes.py +0 -0
  80. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_s3.py +0 -0
  81. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_scan_missing_folders.py +0 -0
  82. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_size_files.py +0 -0
  83. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_size_suffix.py +0 -0
  84. {rclone_api-1.1.33 → rclone_api-1.1.37}/tests/test_walk.py +0 -0
  85. {rclone_api-1.1.33 → rclone_api-1.1.37}/tox.ini +0 -0
  86. {rclone_api-1.1.33 → rclone_api-1.1.37}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.33
3
+ Version: 1.1.37
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.33"
26
+ version = "1.1.37"
27
27
 
28
28
  [tool.setuptools]
29
29
  package-dir = {"" = "src"}
@@ -54,4 +54,5 @@ disable_error_code = ["import-untyped"]
54
54
 
55
55
  [project.scripts]
56
56
  rclone-api-listfiles = "rclone_api.cmd.list_files:main"
57
- rclone-api-copylarge-s3 = "rclone_api.cmd.copy_large_s3:main"
57
+ rclone-api-copylarge-s3 = "rclone_api.cmd.copy_large_s3:main"
58
+ rclone-api-profile-mount = "rclone_api.profile.mount_copy_bytes:main"
@@ -4,6 +4,8 @@ Unit test file.
4
4
 
5
5
  import os
6
6
  import time
7
+ from dataclasses import dataclass
8
+ from pathlib import Path
7
9
 
8
10
  import psutil
9
11
  from dotenv import load_dotenv
@@ -15,7 +17,21 @@ load_dotenv()
15
17
  BUCKET_NAME = os.getenv("BUCKET_NAME") # Default if not in .env
16
18
 
17
19
 
18
- def _generate_rclone_config() -> Config:
20
+ @dataclass
21
+ class Credentials:
22
+ BUCKET_KEY_SECRET: str
23
+ BUCKET_KEY_PUBLIC: str
24
+ SRC_SFTP_HOST: str
25
+ SRC_SFTP_USER: str
26
+ SRC_SFTP_PORT: str
27
+ SRC_SFTP_PASS: str
28
+ BUCKET_URL: str
29
+
30
+
31
+ def _generate_rclone_config() -> tuple[Config, Credentials]:
32
+
33
+ cwd = Path.cwd()
34
+ print(f"Current working directory: {cwd}")
19
35
 
20
36
  # assert that .env exists for this test
21
37
  assert os.path.exists(
@@ -51,9 +67,22 @@ port = {SRC_SFTP_PORT}
51
67
  pass = {SRC_SFTP_PASS}
52
68
 
53
69
  """
70
+ print("Config text:")
71
+ print(config_text)
54
72
  # _CONFIG_PATH.write_text(config_text, encoding="utf-8")
55
73
  # print(f"Config file written to: {_CONFIG_PATH}")
56
- return Config(config_text)
74
+
75
+ creds = Credentials(
76
+ BUCKET_KEY_SECRET=str(BUCKET_KEY_SECRET),
77
+ BUCKET_KEY_PUBLIC=str(BUCKET_KEY_PUBLIC),
78
+ SRC_SFTP_HOST=str(SRC_SFTP_HOST),
79
+ SRC_SFTP_USER=str(SRC_SFTP_USER),
80
+ SRC_SFTP_PORT=str(SRC_SFTP_PORT),
81
+ SRC_SFTP_PASS=str(SRC_SFTP_PASS),
82
+ BUCKET_URL=str(BUCKET_URL),
83
+ )
84
+
85
+ return Config(config_text), creds
57
86
 
58
87
 
59
88
  def _init() -> None:
@@ -72,7 +101,13 @@ def _init() -> None:
72
101
 
73
102
  def test_profile_copy_bytes() -> None:
74
103
  print("Running test_profile_copy_bytes")
75
- rclone = Rclone(_generate_rclone_config())
104
+ config, creds = _generate_rclone_config()
105
+ print("Config:")
106
+ print(config)
107
+ print("Credentials:")
108
+ print(creds)
109
+ rclone = Rclone(config)
110
+
76
111
  sizes = [
77
112
  1024 * 1024 * 1,
78
113
  1024 * 1024 * 2,
@@ -91,6 +126,7 @@ def test_profile_copy_bytes() -> None:
91
126
 
92
127
  for size in sizes:
93
128
  for transfers in transfer_list:
129
+ mount_log = Path("logs") / "mount" / f"mount_{size}_{transfers}.log"
94
130
  print("\n\n")
95
131
  print("#" * 80)
96
132
  print(
@@ -105,12 +141,14 @@ def test_profile_copy_bytes() -> None:
105
141
  length=size,
106
142
  direct_io=True,
107
143
  transfers=transfers,
144
+ mount_log=mount_log,
108
145
  )
109
146
  diff = time.time() - start
110
147
  net_io_end = psutil.net_io_counters()
111
148
  if isinstance(bytes_or_err, Exception):
112
149
  print(bytes_or_err)
113
- assert False, f"Error: {bytes_or_err}"
150
+ stack_trace = bytes_or_err.__traceback__
151
+ assert False, f"Error: {bytes_or_err}\nStack trace:\n{stack_trace}"
114
152
  assert isinstance(bytes_or_err, bytes)
115
153
  # self.assertEqual(len(bytes_or_err), size)
116
154
  assert len(bytes_or_err) == size, f"Length: {len(bytes_or_err)} != {size}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.1.33
3
+ Version: 1.1.37
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -53,7 +53,7 @@ src/rclone_api/cmd/copy_large_s3.py
53
53
  src/rclone_api/cmd/list_files.py
54
54
  src/rclone_api/experimental/flags.py
55
55
  src/rclone_api/experimental/flags_base.py
56
- src/rclone_api/profiling/mount_copy_bytes.py
56
+ src/rclone_api/profile/mount_copy_bytes.py
57
57
  src/rclone_api/s3/api.py
58
58
  src/rclone_api/s3/basic_ops.py
59
59
  src/rclone_api/s3/chunk_file.py
@@ -1,3 +1,4 @@
1
1
  [console_scripts]
2
2
  rclone-api-copylarge-s3 = rclone_api.cmd.copy_large_s3:main
3
3
  rclone-api-listfiles = rclone_api.cmd.list_files:main
4
+ rclone-api-profile-mount = rclone_api.profile.mount_copy_bytes: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