Skip to content

Commit 2e63dd1

Browse files
🔧 更新版本至1.4.5,并优化模块导入处理
- 将项目版本从1.4.4更新至1.4.5 - 添加模块导入异常处理,确保导入失败时不会影响其他模块的使用 - 提供获取模块导入状态的功能
1 parent f16bd77 commit 2e63dd1

File tree

2 files changed

+145
-34
lines changed

2 files changed

+145
-34
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "etool"
7-
version = "1.4.4"
7+
version = "1.4.5"
88
authors = [
99
{ name="Allen", email="jiangyangcreate@gmail.com" },
1010
]

src/etool/__init__.py

Lines changed: 144 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,144 @@
1-
from ._network._speed import ManagerSpeed
2-
from ._network._share import ManagerShare
3-
4-
from ._other._password import ManagerPassword
5-
from ._other._scheduler import ManagerScheduler
6-
from ._other._install import ManagerInstall
7-
from ._other._menu import ManagerMenu
8-
9-
from ._office._image import ManagerImage
10-
from ._office._email import ManagerEmail
11-
from ._office._docx import ManagerDocx
12-
from ._office._excel import ManagerExcel
13-
from ._office._ipynb import ManagerIpynb
14-
from ._office._qrcode import ManagerQrcode
15-
from ._office._pdf import ManagerPdf
16-
from ._md._md_to_docx import ManagerMd
17-
18-
__all__ = [
19-
"ManagerSpeed",
20-
"ManagerShare",
21-
"ManagerPassword",
22-
"ManagerScheduler",
23-
"ManagerInstall",
24-
"ManagerMenu",
25-
"ManagerImage",
26-
"ManagerEmail",
27-
"ManagerDocx",
28-
"ManagerExcel",
29-
"ManagerIpynb",
30-
"ManagerQrcode",
31-
"ManagerPdf",
32-
"ManagerMd",
33-
]
1+
"""
2+
etool - 一个实用工具包
3+
提供网络、办公、密码等各种实用功能的管理器
4+
"""
5+
6+
import warnings
7+
from typing import List, Dict, Tuple
8+
9+
# 存储成功导入的模块和失败信息
10+
__all__: List[str] = []
11+
_failed_imports: List[Tuple[str, str]] = []
12+
13+
# 网络模块
14+
try:
15+
from ._network._speed import ManagerSpeed
16+
__all__.append("ManagerSpeed")
17+
except ImportError as e:
18+
_failed_imports.append(("ManagerSpeed", str(e)))
19+
warnings.warn(f"Failed to import ManagerSpeed: {e}", ImportWarning)
20+
21+
try:
22+
from ._network._share import ManagerShare
23+
__all__.append("ManagerShare")
24+
except ImportError as e:
25+
_failed_imports.append(("ManagerShare", str(e)))
26+
warnings.warn(f"Failed to import ManagerShare: {e}", ImportWarning)
27+
28+
# 其他工具模块
29+
try:
30+
from ._other._password import ManagerPassword
31+
__all__.append("ManagerPassword")
32+
except ImportError as e:
33+
_failed_imports.append(("ManagerPassword", str(e)))
34+
warnings.warn(f"Failed to import ManagerPassword: {e}", ImportWarning)
35+
36+
try:
37+
from ._other._scheduler import ManagerScheduler
38+
__all__.append("ManagerScheduler")
39+
except ImportError as e:
40+
_failed_imports.append(("ManagerScheduler", str(e)))
41+
warnings.warn(f"Failed to import ManagerScheduler: {e}", ImportWarning)
42+
43+
try:
44+
from ._other._install import ManagerInstall
45+
__all__.append("ManagerInstall")
46+
except ImportError as e:
47+
_failed_imports.append(("ManagerInstall", str(e)))
48+
warnings.warn(f"Failed to import ManagerInstall: {e}", ImportWarning)
49+
50+
try:
51+
from ._other._menu import ManagerMenu
52+
__all__.append("ManagerMenu")
53+
except ImportError as e:
54+
_failed_imports.append(("ManagerMenu", str(e)))
55+
warnings.warn(f"Failed to import ManagerMenu: {e}", ImportWarning)
56+
57+
# 办公工具模块
58+
try:
59+
from ._office._image import ManagerImage
60+
__all__.append("ManagerImage")
61+
except ImportError as e:
62+
_failed_imports.append(("ManagerImage", str(e)))
63+
warnings.warn(f"Failed to import ManagerImage: {e}", ImportWarning)
64+
65+
try:
66+
from ._office._email import ManagerEmail
67+
__all__.append("ManagerEmail")
68+
except ImportError as e:
69+
_failed_imports.append(("ManagerEmail", str(e)))
70+
warnings.warn(f"Failed to import ManagerEmail: {e}", ImportWarning)
71+
72+
try:
73+
from ._office._docx import ManagerDocx
74+
__all__.append("ManagerDocx")
75+
except ImportError as e:
76+
_failed_imports.append(("ManagerDocx", str(e)))
77+
warnings.warn(f"Failed to import ManagerDocx: {e}", ImportWarning)
78+
79+
try:
80+
from ._office._excel import ManagerExcel
81+
__all__.append("ManagerExcel")
82+
except ImportError as e:
83+
_failed_imports.append(("ManagerExcel", str(e)))
84+
warnings.warn(f"Failed to import ManagerExcel: {e}", ImportWarning)
85+
86+
try:
87+
from ._office._ipynb import ManagerIpynb
88+
__all__.append("ManagerIpynb")
89+
except ImportError as e:
90+
_failed_imports.append(("ManagerIpynb", str(e)))
91+
warnings.warn(f"Failed to import ManagerIpynb: {e}", ImportWarning)
92+
93+
try:
94+
from ._office._qrcode import ManagerQrcode
95+
__all__.append("ManagerQrcode")
96+
except ImportError as e:
97+
_failed_imports.append(("ManagerQrcode", str(e)))
98+
warnings.warn(f"Failed to import ManagerQrcode: {e}", ImportWarning)
99+
100+
try:
101+
from ._office._pdf import ManagerPdf
102+
__all__.append("ManagerPdf")
103+
except ImportError as e:
104+
_failed_imports.append(("ManagerPdf", str(e)))
105+
warnings.warn(f"Failed to import ManagerPdf: {e}", ImportWarning)
106+
107+
# Markdown 模块
108+
try:
109+
from ._md._md_to_docx import ManagerMd
110+
__all__.append("ManagerMd")
111+
except ImportError as e:
112+
_failed_imports.append(("ManagerMd", str(e)))
113+
warnings.warn(f"Failed to import ManagerMd: {e}", ImportWarning)
114+
115+
116+
def get_import_status() -> Dict[str, List]:
117+
"""
118+
获取模块导入状态
119+
120+
Returns:
121+
dict: 包含 'available' 和 'failed' 键的字典
122+
"""
123+
return {
124+
"available": __all__.copy(),
125+
"failed": _failed_imports.copy(),
126+
}
127+
128+
129+
def is_available(module_name: str) -> bool:
130+
"""
131+
检查指定模块是否可用
132+
133+
Args:
134+
module_name: 模块名称
135+
136+
Returns:
137+
bool: 模块是否可用
138+
"""
139+
return module_name in __all__
140+
141+
142+
def get_version() -> str:
143+
"""获取版本信息"""
144+
return "1.0.0"

0 commit comments

Comments
 (0)