datacom-device-api 0.1.8__tar.gz → 0.1.9__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.
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/PKG-INFO +1 -1
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/pyproject.toml +1 -1
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/process/terminal_process.py +20 -2
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/PKG-INFO +1 -1
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/README.md +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/setup.cfg +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/__init__.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/data/__init__.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/data/table.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/event/event.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/ext/ext_meta.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/ext/ext_meta_display.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/operation/__init__.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/operation/table_operation.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/operation/table_read_from_xlsx.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/operation/table_save_to_db.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/process/__init__.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/__init__.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/directory_util.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/logger.py +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/SOURCES.txt +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/dependency_links.txt +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/requires.txt +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/top_level.txt +0 -0
- {datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/test/test_table_matching.py +0 -0
|
@@ -15,6 +15,7 @@ from typing import Any, Callable, Optional, ParamSpec, Protocol, TypeVar, runtim
|
|
|
15
15
|
from uuid import UUID
|
|
16
16
|
import uuid
|
|
17
17
|
|
|
18
|
+
from rich.console import Console
|
|
18
19
|
from rich.progress import Progress, TaskID
|
|
19
20
|
|
|
20
21
|
|
|
@@ -60,11 +61,12 @@ class TerminalProcess:
|
|
|
60
61
|
process.submit(task2)
|
|
61
62
|
"""
|
|
62
63
|
|
|
63
|
-
def __init__(self, max_workers: Optional[int] = None):
|
|
64
|
+
def __init__(self, max_workers: Optional[int] = None, console: Optional[Console] = None):
|
|
64
65
|
"""初始化终端进程执行器。
|
|
65
66
|
|
|
66
67
|
Args:
|
|
67
68
|
max_workers: 进程池最大并发数,默认为 CPU 核心数
|
|
69
|
+
console: 共享的 Rich Console 实例,用于日志输出与进度条保持同一终端
|
|
68
70
|
"""
|
|
69
71
|
self.__pool = ProcessPoolExecutor(max_workers=max_workers or os.cpu_count())
|
|
70
72
|
self.__manager = Manager()
|
|
@@ -76,7 +78,10 @@ class TerminalProcess:
|
|
|
76
78
|
|
|
77
79
|
self.__progress_thread_stop_event = threading.Event()
|
|
78
80
|
self.__progress_tasks: dict[UUID, TaskID] = {}
|
|
79
|
-
self.
|
|
81
|
+
self.__console = console if console is not None else Console()
|
|
82
|
+
# 让 Progress 固定在终端底部,使用同一个 Console 输出日志时,
|
|
83
|
+
# 日志会显示在进度条之上,进度条始终保持在终端底部
|
|
84
|
+
self.__progress = Progress(console=self.__console)
|
|
80
85
|
self.__progress_thread: Optional[threading.Thread] = None
|
|
81
86
|
self.__progress_main_task: TaskID = self.__progress.add_task(
|
|
82
87
|
'main', total=self.__task_future_count
|
|
@@ -113,6 +118,19 @@ class TerminalProcess:
|
|
|
113
118
|
if message.type == 'done':
|
|
114
119
|
self.__progress.update(self.__progress_main_task, advance=1)
|
|
115
120
|
|
|
121
|
+
def print(self, *args, **kwargs) -> None:
|
|
122
|
+
"""在进度条之上输出日志信息。
|
|
123
|
+
|
|
124
|
+
使用与 Progress 共享的 Console 输出,日志会显示在终端上方,
|
|
125
|
+
进度条始终保持在终端底部。
|
|
126
|
+
"""
|
|
127
|
+
self.__console.print(*args, **kwargs)
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
def console(self) -> Console:
|
|
131
|
+
"""返回与 Progress 共享的 Console 实例。"""
|
|
132
|
+
return self.__console
|
|
133
|
+
|
|
116
134
|
@staticmethod
|
|
117
135
|
def _warrper_fn(
|
|
118
136
|
fn: EXECUTE_FUNC_TYPE,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/data/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/ext/ext_meta.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/ext/ext_meta_display.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/operation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/process/__init__.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/__init__.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/directory_util.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api/utils/logger.py
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/requires.txt
RENAMED
|
File without changes
|
{datacom_device_api-0.1.8 → datacom_device_api-0.1.9}/src/datacom_device_api.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|