ap-client 0.5.3.dev6__tar.gz → 0.5.3.dev7__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 (23) hide show
  1. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/PKG-INFO +3 -1
  2. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/ossutil_commands.py +3 -0
  3. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/ossutil_io.py +12 -0
  4. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/pyproject.toml +3 -1
  5. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/__init__.py +0 -0
  6. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/akpool_commands.py +0 -0
  7. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/api.py +0 -0
  8. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/cli.py +0 -0
  9. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/config.py +0 -0
  10. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/dataset_commands.py +0 -0
  11. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/dataset_register.py +0 -0
  12. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/exporter.py +0 -0
  13. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/fs_commands.py +0 -0
  14. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/instance_commands.py +0 -0
  15. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/irepo_sdk.py +0 -0
  16. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/managed_ak.py +0 -0
  17. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/manifest_view.py +0 -0
  18. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/profile_commands.py +0 -0
  19. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/repo_read_guard.py +0 -0
  20. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/share_api.py +0 -0
  21. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/split_publish.py +0 -0
  22. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/tbb.py +0 -0
  23. {ap_client-0.5.3.dev6 → ap_client-0.5.3.dev7}/ap_client/waiter.py +0 -0
@@ -1,13 +1,15 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ap-client
3
- Version: 0.5.3.dev6
3
+ Version: 0.5.3.dev7
4
4
  Summary: Agent Platform API Client & CLI
5
5
  Requires-Python: >=3.10
6
+ Requires-Dist: click>=8.0.0
6
7
  Requires-Dist: irepo-artifact==0.2.1
7
8
  Requires-Dist: pyyaml>=6.0
8
9
  Requires-Dist: requests>=2.28.0
9
10
  Requires-Dist: rich>=13.0.0
10
11
  Requires-Dist: typer>=0.9.0
12
+ Requires-Dist: urllib3>=1.26
11
13
  Requires-Dist: websockets>=13.0
12
14
  Provides-Extra: all
13
15
  Requires-Dist: instance-repo[oss]<2.0.0,>=1.3.5.dev3; extra == 'all'
@@ -317,6 +317,9 @@ def _transfer(direction: str, src: str, dst: str, ctx: typer.Context) -> None:
317
317
  _require_remote(src, "SRC")
318
318
  _require_remote(dst, "DST")
319
319
  files = _files()
320
+ from .irepo_sdk import _is_verbose
321
+
322
+ files.verbose = _is_verbose()
320
323
  _configure(files, options.get("encoding_type"), options.get("payer"))
321
324
  files.disable_crc64 = disable_crc64
322
325
  files.disable_all_symlink = disable_all_symlink
@@ -245,6 +245,9 @@ class _RoutingBucket:
245
245
 
246
246
 
247
247
  def safe_error(exc: Exception) -> str:
248
+ if isinstance(exc, ImportError):
249
+ # ImportError messages only name the missing module; nothing sensitive is included.
250
+ return f"{type(exc).__name__}: {exc}"
248
251
  if isinstance(exc, (OssUsageError, OssOperationError, OSError)):
249
252
  return str(exc)
250
253
  # oss2 exceptions may stringify signed requests and arbitrary response payloads.
@@ -274,6 +277,7 @@ class OssFiles:
274
277
  self.write_headers: dict[str, str] = {}
275
278
  self.byte_range = None
276
279
  self.disable_all_symlink = False
280
+ self.verbose = False
277
281
  if oss_module is None:
278
282
  from instance_repo.store.oss import _import_oss2
279
283
 
@@ -997,6 +1001,14 @@ class OssFiles:
997
1001
  iter(items()), transfer, jobs if recursive else 1, stop_on_error
998
1002
  ):
999
1003
  if error:
1004
+ if self.verbose:
1005
+ # Frames only: exception text may embed signed URLs or STS material.
1006
+ import sys
1007
+ import traceback
1008
+
1009
+ sys.stderr.write("Traceback (most recent call last):\n")
1010
+ sys.stderr.writelines(traceback.format_tb(error.__traceback__))
1011
+ sys.stderr.write(f"error: {safe_error(error)}\n")
1000
1012
  failed.append({"path": name, "error": safe_error(error)})
1001
1013
  elif copied:
1002
1014
  completed.append(name)
@@ -4,12 +4,14 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ap-client"
7
- version = "0.5.3.dev6"
7
+ version = "0.5.3.dev7"
8
8
  description = "Agent Platform API Client & CLI"
9
9
  readme = { text = "A lightweight Python SDK and command line interface for Agent Platform. It provides helpers for configuring API access and managing templates, datasets, jobs, and groups.", content-type = "text/markdown" }
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
12
  "typer>=0.9.0",
13
+ "click>=8.0.0",
14
+ "urllib3>=1.26",
13
15
  "requests>=2.28.0",
14
16
  "rich>=13.0.0",
15
17
  "PyYAML>=6.0",