shared-tensor 0.2.15__tar.gz → 0.2.16__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shared-tensor
3
- Version: 0.2.15
3
+ Version: 0.2.16
4
4
  Summary: Native PyTorch CUDA IPC over Unix Domain Socket for same-host process separation
5
5
  Author-email: Athena Team <contact@world-sim-dev.org>
6
6
  Maintainer-email: Athena Team <contact@world-sim-dev.org>
@@ -403,6 +403,15 @@ info = provider.get_runtime_info()
403
403
  # execution_mode, server_socket_path, server_running, server_ready, server_info...
404
404
  ```
405
405
 
406
+ ## Logging
407
+
408
+ `shared_tensor` now installs a default package logger on import and enables detailed logs by default.
409
+
410
+ - default level: `INFO`
411
+ - logger name: `shared_tensor`
412
+ - override level with `SHARED_TENSOR_LOG_LEVEL`, for example `INFO`, `WARNING`, or `ERROR`
413
+ - pass `verbose_debug=False` to `SharedTensorProvider`, `SharedTensorClient`, `AsyncSharedTensorClient`, or `SharedTensorServer` if you want to suppress detailed request-level logs
414
+
406
415
  ## Client Retry And Timeout Defaults
407
416
 
408
417
  The client now retries initial connection setup for up to `60s` when the server socket is not ready yet, covering the common server-startup race where the client starts slightly earlier.
@@ -351,6 +351,15 @@ info = provider.get_runtime_info()
351
351
  # execution_mode, server_socket_path, server_running, server_ready, server_info...
352
352
  ```
353
353
 
354
+ ## Logging
355
+
356
+ `shared_tensor` now installs a default package logger on import and enables detailed logs by default.
357
+
358
+ - default level: `INFO`
359
+ - logger name: `shared_tensor`
360
+ - override level with `SHARED_TENSOR_LOG_LEVEL`, for example `INFO`, `WARNING`, or `ERROR`
361
+ - pass `verbose_debug=False` to `SharedTensorProvider`, `SharedTensorClient`, `AsyncSharedTensorClient`, or `SharedTensorServer` if you want to suppress detailed request-level logs
362
+
354
363
  ## Client Retry And Timeout Defaults
355
364
 
356
365
  The client now retries initial connection setup for up to `60s` when the server socket is not ready yet, covering the common server-startup race where the client starts slightly earlier.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "shared-tensor"
7
- version = "0.2.15"
7
+ version = "0.2.16"
8
8
  description = "Native PyTorch CUDA IPC over Unix Domain Socket for same-host process separation"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -0,0 +1,51 @@
1
+ """shared_tensor: same-host same-GPU PyTorch CUDA IPC over local UDS RPC."""
2
+
3
+ import logging
4
+ import os
5
+
6
+
7
+ class _SafeStreamHandler(logging.StreamHandler):
8
+ def emit(self, record: logging.LogRecord) -> None:
9
+ stream = self.stream
10
+ if stream is None or getattr(stream, "closed", False):
11
+ return
12
+ try:
13
+ super().emit(record)
14
+ except ValueError:
15
+ return
16
+
17
+
18
+ def _configure_default_logging() -> None:
19
+ logger = logging.getLogger("shared_tensor")
20
+ if logger.handlers:
21
+ return
22
+ level_name = os.getenv("SHARED_TENSOR_LOG_LEVEL", "INFO").strip().upper() or "INFO"
23
+ level = getattr(logging, level_name, logging.INFO)
24
+ handler = _SafeStreamHandler()
25
+ handler.setFormatter(logging.Formatter("[shared_tensor] %(levelname)s %(name)s: %(message)s"))
26
+ logger.addHandler(handler)
27
+ logger.setLevel(level)
28
+ logger.propagate = False
29
+
30
+ _configure_default_logging()
31
+
32
+ from shared_tensor.async_client import AsyncSharedTensorClient
33
+ from shared_tensor.async_task import TaskInfo, TaskStatus
34
+ from shared_tensor.client import SharedTensorClient
35
+ from shared_tensor.errors import SharedTensorStaleHandleError
36
+ from shared_tensor.managed_object import SharedObjectHandle
37
+ from shared_tensor.provider import SharedTensorProvider
38
+ from shared_tensor.server import SharedTensorServer
39
+
40
+ __all__ = [
41
+ "AsyncSharedTensorClient",
42
+ "SharedTensorClient",
43
+ "SharedObjectHandle",
44
+ "SharedTensorStaleHandleError",
45
+ "SharedTensorProvider",
46
+ "SharedTensorServer",
47
+ "TaskInfo",
48
+ "TaskStatus",
49
+ ]
50
+
51
+ __version__ = "0.2.16"
@@ -20,7 +20,7 @@ class AsyncSharedTensorClient:
20
20
  def __init__(
21
21
  self,
22
22
  base_path: str = "/tmp/shared-tensor",
23
- verbose_debug: bool = False,
23
+ verbose_debug: bool = True,
24
24
  poll_interval: float = 1.0,
25
25
  *,
26
26
  device_index: int | None = None,
@@ -59,7 +59,7 @@ class SharedTensorClient:
59
59
  *,
60
60
  device_index: int | None = None,
61
61
  timeout: float = 600.0,
62
- verbose_debug: bool = False,
62
+ verbose_debug: bool = True,
63
63
  ) -> None:
64
64
  self.base_path = base_path
65
65
  self.device_index = device_index
@@ -94,7 +94,7 @@ class SharedTensorProvider:
94
94
  timeout: float = 600.0,
95
95
  execution_mode: str = "auto",
96
96
  server_startup_timeout: float = 30.0,
97
- verbose_debug: bool = False,
97
+ verbose_debug: bool = True,
98
98
  ) -> None:
99
99
  resolved_mode, auto_mode = _resolve_execution_mode(
100
100
  execution_mode,
@@ -97,7 +97,7 @@ class SharedTensorServer:
97
97
  result_ttl: float = 3600.0,
98
98
  process_start_method: str | None = None,
99
99
  startup_timeout: float = 30.0,
100
- verbose_debug: bool = False,
100
+ verbose_debug: bool = True,
101
101
  ) -> None:
102
102
  self.provider = provider or SharedTensorProvider(execution_mode="server")
103
103
  self.socket_path = socket_path or resolve_runtime_socket_path(
@@ -1,22 +0,0 @@
1
- """shared_tensor: same-host same-GPU PyTorch CUDA IPC over local UDS RPC."""
2
-
3
- from shared_tensor.async_client import AsyncSharedTensorClient
4
- from shared_tensor.async_task import TaskInfo, TaskStatus
5
- from shared_tensor.client import SharedTensorClient
6
- from shared_tensor.errors import SharedTensorStaleHandleError
7
- from shared_tensor.managed_object import SharedObjectHandle
8
- from shared_tensor.provider import SharedTensorProvider
9
- from shared_tensor.server import SharedTensorServer
10
-
11
- __all__ = [
12
- "AsyncSharedTensorClient",
13
- "SharedTensorClient",
14
- "SharedObjectHandle",
15
- "SharedTensorStaleHandleError",
16
- "SharedTensorProvider",
17
- "SharedTensorServer",
18
- "TaskInfo",
19
- "TaskStatus",
20
- ]
21
-
22
- __version__ = "0.2.15"
File without changes
File without changes