rclone-api 1.0.94__py2.py3-none-any.whl → 1.0.96__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.
@@ -73,6 +73,7 @@ def main() -> int:
73
73
  concurrent_chunks=args.read_concurrent_chunks,
74
74
  retries=args.retries,
75
75
  save_state_json=args.save_state_json,
76
+ verbose=True,
76
77
  )
77
78
  print(rslt)
78
79
  return 0
rclone_api/rclone.py CHANGED
@@ -678,6 +678,7 @@ class Rclone:
678
678
  * 1024, # This setting will scale the performance of the upload
679
679
  concurrent_chunks: int = 4, # This setting will scale the performance of the upload
680
680
  retries: int = 3,
681
+ verbose: bool | None = None,
681
682
  max_chunks_before_suspension: int | None = None,
682
683
  mount_path: Path | None = None,
683
684
  ) -> MultiUploadResult:
@@ -710,6 +711,7 @@ class Rclone:
710
711
  mount_path,
711
712
  use_links=True,
712
713
  vfs_cache_mode="minimal",
714
+ verbose=verbose,
713
715
  other_args=other_args,
714
716
  ):
715
717
  # raise NotImplementedError("Not implemented yet")
@@ -743,7 +745,15 @@ class Rclone:
743
745
  raise ValueError(f"Remote {remote} is not an S3 remote")
744
746
  return S3Provider.S3.value
745
747
 
746
- provider: str = get_provider_str() or S3Provider.S3.value
748
+ provider: str
749
+ if provided_provider_str := get_provider_str():
750
+ if verbose:
751
+ print(f"Using provided provider: {provided_provider_str}")
752
+ provider = provided_provider_str
753
+ else:
754
+ if verbose:
755
+ print(f"Using default provider: {S3Provider.S3.value}")
756
+ provider = S3Provider.S3.value
747
757
  provider_enum = S3Provider.from_str(provider)
748
758
 
749
759
  s3_creds: S3Credentials = S3Credentials(
@@ -820,6 +830,7 @@ class Rclone:
820
830
  allow_writes: bool | None = False,
821
831
  use_links: bool | None = None,
822
832
  vfs_cache_mode: str | None = None,
833
+ verbose: bool | None = None,
823
834
  other_args: list[str] | None = None,
824
835
  ) -> Process:
825
836
  """Mount a remote or directory to a local path.
@@ -836,6 +847,7 @@ class Rclone:
836
847
  """
837
848
  allow_writes = allow_writes or False
838
849
  use_links = use_links or True
850
+ verbose = get_verbose(verbose)
839
851
  vfs_cache_mode = vfs_cache_mode or "full"
840
852
  if outdir.exists():
841
853
  is_empty = not list(outdir.iterdir())
@@ -860,6 +872,8 @@ class Rclone:
860
872
  if vfs_cache_mode:
861
873
  cmd_list.append("--vfs-cache-mode")
862
874
  cmd_list.append(vfs_cache_mode)
875
+ if verbose:
876
+ cmd_list.append("-vvvv")
863
877
  if other_args:
864
878
  cmd_list += other_args
865
879
  proc = self._launch_process(cmd_list)
@@ -874,6 +888,7 @@ class Rclone:
874
888
  allow_writes: bool | None = None,
875
889
  use_links: bool | None = None,
876
890
  vfs_cache_mode: str | None = None,
891
+ verbose: bool | None = None,
877
892
  other_args: list[str] | None = None,
878
893
  ) -> Generator[Process, None, None]:
879
894
  """Like mount, but can be used in a context manager."""
@@ -884,6 +899,7 @@ class Rclone:
884
899
  allow_writes=allow_writes,
885
900
  use_links=use_links,
886
901
  vfs_cache_mode=vfs_cache_mode,
902
+ verbose=verbose,
887
903
  other_args=other_args,
888
904
  )
889
905
  try:
rclone_api/s3/api.py CHANGED
@@ -17,9 +17,10 @@ _MIN_THRESHOLD_FOR_CHUNKING = 5 * 1024 * 1024
17
17
 
18
18
 
19
19
  class S3Client:
20
- def __init__(self, credentials: S3Credentials):
20
+ def __init__(self, credentials: S3Credentials, verbose: bool = False) -> None:
21
+ self.verbose = verbose
21
22
  self.credentials: S3Credentials = credentials
22
- self.client: BaseClient = create_s3_client(credentials)
23
+ self.client: BaseClient = create_s3_client(credentials, verbose=verbose)
23
24
 
24
25
  def list_bucket_contents(self, bucket_name: str) -> None:
25
26
  list_bucket_contents(self.client, bucket_name)
@@ -83,6 +84,7 @@ class S3Client:
83
84
  provider = self.credentials.provider.value
84
85
  region_name = self.credentials.region_name
85
86
  info_json = {
87
+ "bucket": bucket_name,
86
88
  "key": key,
87
89
  "access_key_id": access_key_id[:4] + "...",
88
90
  "secret": secret[:4] + "...",
rclone_api/s3/create.py CHANGED
@@ -6,18 +6,19 @@ from botocore.config import Config
6
6
 
7
7
  from rclone_api.s3.types import S3Credentials, S3Provider
8
8
 
9
+ _DEFAULT_BACKBLAZE_ENDPOINT = "https://s3.us-west-002.backblazeb2.com"
10
+
9
11
 
10
12
  # Create a Boto3 session and S3 client, this is back blaze specific.
11
13
  # Add a function if you want to use a different S3 provider.
12
14
  # If AWS support is added in a fork then please merge it back here.
13
- def _create_backblaze_s3_client(creds: S3Credentials) -> BaseClient:
15
+ def _create_backblaze_s3_client(creds: S3Credentials, verbose: bool) -> BaseClient:
14
16
  """Create and return an S3 client."""
15
17
  region_name = creds.region_name
16
18
  access_key = creds.access_key_id
17
19
  secret_key = creds.secret_access_key
18
20
  endpoint_url = creds.endpoint_url
19
- region_name = region_name or "https://s3.us-west-002.backblazeb2.com"
20
-
21
+ endpoint_url = endpoint_url or _DEFAULT_BACKBLAZE_ENDPOINT
21
22
  session = boto3.session.Session() # type: ignore
22
23
  return session.client(
23
24
  service_name="s3",
@@ -26,6 +27,7 @@ def _create_backblaze_s3_client(creds: S3Credentials) -> BaseClient:
26
27
  endpoint_url=endpoint_url,
27
28
  config=Config(
28
29
  signature_version="s3v4",
30
+ region_name=region_name,
29
31
  # Note that BackBlase has a boko3 bug where it doesn't support the new
30
32
  # checksum header, the following line was an attempt of fix it on the newest
31
33
  # version of boto3, but it didn't work.
@@ -34,13 +36,16 @@ def _create_backblaze_s3_client(creds: S3Credentials) -> BaseClient:
34
36
  )
35
37
 
36
38
 
37
- def _create_unknown_s3_client(creds: S3Credentials) -> BaseClient:
39
+ def _create_unknown_s3_client(creds: S3Credentials, verbose: bool) -> BaseClient:
38
40
  """Create and return an S3 client."""
39
41
  access_key = creds.access_key_id
40
42
  secret_key = creds.secret_access_key
41
43
  endpoint_url = creds.endpoint_url
42
44
  if (endpoint_url is not None) and not (endpoint_url.startswith("http")):
43
- warnings.warn(f"Endpoint URL is schema niaive: {endpoint_url}, assuming HTTPS")
45
+ if verbose:
46
+ warnings.warn(
47
+ f"Endpoint URL is schema naive: {endpoint_url}, assuming HTTPS"
48
+ )
44
49
  endpoint_url = f"https://{endpoint_url}"
45
50
 
46
51
  session = boto3.session.Session() # type: ignore
@@ -60,10 +65,14 @@ def _create_unknown_s3_client(creds: S3Credentials) -> BaseClient:
60
65
  )
61
66
 
62
67
 
63
- def create_s3_client(credentials: S3Credentials) -> BaseClient:
68
+ def create_s3_client(credentials: S3Credentials, verbose=False) -> BaseClient:
64
69
  """Create and return an S3 client."""
65
70
  provider = credentials.provider
66
71
  if provider == S3Provider.BACKBLAZE:
67
- return _create_backblaze_s3_client(credentials)
72
+ if verbose:
73
+ print("Creating BackBlaze S3 client")
74
+ return _create_backblaze_s3_client(creds=credentials, verbose=verbose)
68
75
  else:
69
- return _create_unknown_s3_client(credentials)
76
+ if verbose:
77
+ print("Creating generic/unknown S3 client")
78
+ return _create_unknown_s3_client(creds=credentials, verbose=verbose)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.94
3
+ Version: 1.0.96
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -12,7 +12,7 @@ rclone_api/file.py,sha256=EP5yT2dZ0H2p7CY5n0y5k5pHhIliV25pm8KOwBklUTk,1863
12
12
  rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
13
13
  rclone_api/group_files.py,sha256=H92xPW9lQnbNw5KbtZCl00bD6iRh9yRbCuxku4j_3dg,8036
14
14
  rclone_api/process.py,sha256=RrMfTe0bndmJ6gBK67ioqNvCstJ8aTC8RlGX1XBLlcw,4191
15
- rclone_api/rclone.py,sha256=tXVZv9N83DVVxVwevOo7FyzHCuUGjWx_KP51VwQ0QIY,42246
15
+ rclone_api/rclone.py,sha256=RTMvOH93kAiOmWifHt0P9tET9nLGZWam73aB-dMkjWI,42852
16
16
  rclone_api/remote.py,sha256=O9WDUFQy9f6oT1HdUbTixK2eg0xtBBm8k4Xl6aa6K00,431
17
17
  rclone_api/rpath.py,sha256=8ZA_1wxWtskwcy0I8V2VbjKDmzPkiWd8Q2JQSvh-sYE,2586
18
18
  rclone_api/scan_missing_folders.py,sha256=Kulca2Q6WZodt00ATFHkmqqInuoPvBkhTcS9703y6po,4740
@@ -20,16 +20,16 @@ rclone_api/types.py,sha256=NC3e78aXCx-sEQ-FqEaC9KzaJDdJhJrKa4Nwum_-Db0,563
20
20
  rclone_api/util.py,sha256=efck9W0rw5wfeRI35iiEz4dy2cMkNpVXrQ9zzynkBks,5185
21
21
  rclone_api/walk.py,sha256=-54NVE8EJcCstwDoaC_UtHm73R2HrZwVwQmsnv55xNU,3369
22
22
  rclone_api/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8,54
23
- rclone_api/cmd/copy_large_s3.py,sha256=FPU0S1Y9pApVLmWcdMT_3llywjEtOtwobXTnMXE-FhY,2690
23
+ rclone_api/cmd/copy_large_s3.py,sha256=b0tSy4cWTyAYu-d0xjuFj5nbJIwnfeOV8e-S7A4rSVI,2712
24
24
  rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
25
- rclone_api/s3/api.py,sha256=012JNqXna5t-XR2QML6ybHf7g0zkrX5GuRQzhT2U1B8,3645
25
+ rclone_api/s3/api.py,sha256=VstlaEnBjO2JDQuCRLdTfUGvQLbfshlXXhAzimFv4Vc,3763
26
26
  rclone_api/s3/basic_ops.py,sha256=hK3366xhVEzEcjz9Gk_8lFx6MRceAk72cax6mUrr6ko,2104
27
27
  rclone_api/s3/chunk_uploader.py,sha256=Wcm4h_A6ORaJvT9P9qSeknbJYch22RKZ4FGo1iePlAw,17385
28
- rclone_api/s3/create.py,sha256=X4mgjekgAoyHNeXnznHNS63DFViAhI0p7-fXDxml0y4,2701
28
+ rclone_api/s3/create.py,sha256=SK3IGHZwsSkoG4Zb4NCphcVg9_f7VifDKng-tExMS2s,3088
29
29
  rclone_api/s3/types.py,sha256=81_3jwg6MGIxC-GxL-6zANzKO6au9C0BWvAqRyODxOM,1361
30
- rclone_api-1.0.94.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
31
- rclone_api-1.0.94.dist-info/METADATA,sha256=uyoI57VyEjtHhdYuod_jCtwl-KcKVPoh6RIY6r6LlLo,4479
32
- rclone_api-1.0.94.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
33
- rclone_api-1.0.94.dist-info/entry_points.txt,sha256=6eNqTRXKhVf8CpWNjXiOa_0Du9tHiW_HD2iQSXRsUg8,132
34
- rclone_api-1.0.94.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
35
- rclone_api-1.0.94.dist-info/RECORD,,
30
+ rclone_api-1.0.96.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
31
+ rclone_api-1.0.96.dist-info/METADATA,sha256=WBLngFsHgInvzEL57OdATG4I0Ht_pUmYCAT1BoMN5O0,4479
32
+ rclone_api-1.0.96.dist-info/WHEEL,sha256=rF4EZyR2XVS6irmOHQIJx2SUqXLZKRMUrjsg8UwN-XQ,109
33
+ rclone_api-1.0.96.dist-info/entry_points.txt,sha256=6eNqTRXKhVf8CpWNjXiOa_0Du9tHiW_HD2iQSXRsUg8,132
34
+ rclone_api-1.0.96.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
35
+ rclone_api-1.0.96.dist-info/RECORD,,