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.
Files changed (34) hide show
  1. {funcguard-0.2.44 → funcguard-0.2.46}/PKG-INFO +2 -2
  2. {funcguard-0.2.44 → funcguard-0.2.46}/README.md +1 -1
  3. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/core.py +13 -6
  4. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/PKG-INFO +2 -2
  5. {funcguard-0.2.44 → funcguard-0.2.46}/setup.py +1 -1
  6. {funcguard-0.2.44 → funcguard-0.2.46}/LICENSE +0 -0
  7. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/__init__.py +0 -0
  8. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/calculate.py +0 -0
  9. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/data_models/__init__.py +0 -0
  10. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/data_models/request_models.py +0 -0
  11. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/ip_utils.py +0 -0
  12. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/log_utils.py +0 -0
  13. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/__init__.py +0 -0
  14. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/convert_utils.py +0 -0
  15. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/date_utils.py +0 -0
  16. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/fill_round.py +0 -0
  17. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/filter.py +0 -0
  18. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/json_utils/__init__.py +0 -0
  19. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/json_utils/json_parser.py +0 -0
  20. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/__init__.py +0 -0
  21. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/agg_utils.py +0 -0
  22. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/count_utils.py +0 -0
  23. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/df_statistics.py +0 -0
  24. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/pd_utils/statistics/mask_utils.py +0 -0
  25. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/printer.py +0 -0
  26. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/time_utils.py +0 -0
  27. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard/tools.py +0 -0
  28. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/SOURCES.txt +0 -0
  29. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/dependency_links.txt +0 -0
  30. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/not-zip-safe +0 -0
  31. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/requires.txt +0 -0
  32. {funcguard-0.2.44 → funcguard-0.2.46}/funcguard.egg-info/top_level.txt +0 -0
  33. {funcguard-0.2.44 → funcguard-0.2.46}/setup.cfg +0 -0
  34. {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.44
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
@@ -70,7 +70,7 @@ except Exception as e:
70
70
 
71
71
  ### 交互式选择菜单
72
72
 
73
- 使用 `ask_select` 函数创建一个带数字编号的交互式选择菜单,支持超时自动选择:
73
+ 使用 `ask_select` 函数创建一个带数字编号的交互式选择菜单(编号从0开始),支持超时自动选择和倒计时动态显示:
74
74
 
75
75
  ```python
76
76
  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+1}-{label}" for i, (_, label) in enumerate(items)])
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
- thread.join(timeout)
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 1 <= choice <= len(items):
168
- return items[choice - 1][0]
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.44
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
@@ -9,7 +9,7 @@ except FileNotFoundError:
9
9
 
10
10
  setup(
11
11
  name='funcguard',
12
- version='0.2.44',
12
+ version='0.2.46',
13
13
  packages=find_packages(),
14
14
  install_requires=[
15
15
  'requests',
File without changes
File without changes
File without changes