funcguard 0.2.44__tar.gz → 0.2.46__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.
- {funcguard-0.2.44 → funcguard-0.2.46}/PKG-INFO +2 -2
- {funcguard-0.2.44 → funcguard-0.2.46}/README.md +1 -1
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/core.py +13 -6
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/PKG-INFO +2 -2
- {funcguard-0.2.44 → funcguard-0.2.46}/setup.py +1 -1
- {funcguard-0.2.44 → funcguard-0.2.46}/LICENSE +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/__init__.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/calculate.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/data_models/__init__.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/data_models/request_models.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/ip_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/log_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/__init__.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/convert_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/date_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/fill_round.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/filter.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/json_utils/__init__.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/json_utils/json_parser.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/__init__.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/agg_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/count_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/df_statistics.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/mask_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/printer.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/time_utils.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/tools.py +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/SOURCES.txt +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/dependency_links.txt +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/not-zip-safe +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/requires.txt +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/top_level.txt +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/setup.cfg +0 -0
- {funcguard-0.2.44 → funcguard-0.2.46}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: funcguard
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.46
|
|
4
4
|
Summary: FuncGuard是一个Python库,提供函数执行超时控制、重试机制、HTTP请求封装和格式化打印工具。
|
|
5
5
|
Home-page: https://github.com/tinycen/funcguard
|
|
6
6
|
Author: tinycen
|
|
@@ -97,7 +97,7 @@ except Exception as e:
|
|
|
97
97
|
|
|
98
98
|
### 交互式选择菜单
|
|
99
99
|
|
|
100
|
-
使用 `ask_select`
|
|
100
|
+
使用 `ask_select` 函数创建一个带数字编号的交互式选择菜单(编号从0开始),支持超时自动选择和倒计时动态显示:
|
|
101
101
|
|
|
102
102
|
```python
|
|
103
103
|
from funcguard import ask_select
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import time
|
|
2
|
-
import sys
|
|
3
2
|
from concurrent.futures import ThreadPoolExecutor , TimeoutError
|
|
4
3
|
|
|
5
4
|
|
|
@@ -131,9 +130,8 @@ def ask_select(
|
|
|
131
130
|
items = list(options.items())
|
|
132
131
|
|
|
133
132
|
# 显示选项
|
|
134
|
-
option_lines = ", ".join([f"{i
|
|
133
|
+
option_lines = ", ".join([f"{i}-{label}" for i, (_, label) in enumerate(items)])
|
|
135
134
|
default_label = options.get(default_key, default_key)
|
|
136
|
-
print(f"{prompt} ({option_lines}),{timeout} 秒后自动选择[{default_label}]: ", end="", flush=True)
|
|
137
135
|
|
|
138
136
|
# 使用线程实现跨平台超时输入
|
|
139
137
|
from threading import Thread
|
|
@@ -150,7 +148,16 @@ def ask_select(
|
|
|
150
148
|
|
|
151
149
|
thread = Thread(target=input_thread, daemon=True)
|
|
152
150
|
thread.start()
|
|
153
|
-
|
|
151
|
+
|
|
152
|
+
# 倒计时显示
|
|
153
|
+
remaining = timeout
|
|
154
|
+
while remaining > 0 and thread.is_alive():
|
|
155
|
+
print(f"\r{prompt} ({option_lines}),{remaining} 秒后自动选择[{default_label}]: ", end="", flush=True)
|
|
156
|
+
time.sleep(1)
|
|
157
|
+
remaining -= 1
|
|
158
|
+
|
|
159
|
+
# 等待线程结束(如果用户已输入)或超时
|
|
160
|
+
thread.join(0)
|
|
154
161
|
|
|
155
162
|
try:
|
|
156
163
|
user_input = result_queue.get_nowait()
|
|
@@ -164,8 +171,8 @@ def ask_select(
|
|
|
164
171
|
# 验证输入
|
|
165
172
|
try:
|
|
166
173
|
choice = int(user_input)
|
|
167
|
-
if
|
|
168
|
-
return items[choice
|
|
174
|
+
if 0 <= choice < len(items):
|
|
175
|
+
return items[choice][0]
|
|
169
176
|
except ValueError:
|
|
170
177
|
pass
|
|
171
178
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: funcguard
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.46
|
|
4
4
|
Summary: FuncGuard是一个Python库,提供函数执行超时控制、重试机制、HTTP请求封装和格式化打印工具。
|
|
5
5
|
Home-page: https://github.com/tinycen/funcguard
|
|
6
6
|
Author: tinycen
|
|
@@ -97,7 +97,7 @@ except Exception as e:
|
|
|
97
97
|
|
|
98
98
|
### 交互式选择菜单
|
|
99
99
|
|
|
100
|
-
使用 `ask_select`
|
|
100
|
+
使用 `ask_select` 函数创建一个带数字编号的交互式选择菜单(编号从0开始),支持超时自动选择和倒计时动态显示:
|
|
101
101
|
|
|
102
102
|
```python
|
|
103
103
|
from funcguard import ask_select
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|