multi-lang-build 0.3.0__py3-none-any.whl → 0.3.1__py3-none-any.whl
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.
- multi_lang_build/log.py +59 -0
- multi_lang_build/register/support/claude.py +1 -1
- multi_lang_build/register/support/codebuddy.py +1 -1
- multi_lang_build/register/support/opencode.py +1 -1
- {multi_lang_build-0.3.0.dist-info → multi_lang_build-0.3.1.dist-info}/METADATA +36 -24
- {multi_lang_build-0.3.0.dist-info → multi_lang_build-0.3.1.dist-info}/RECORD +9 -8
- {multi_lang_build-0.3.0.dist-info → multi_lang_build-0.3.1.dist-info}/WHEEL +0 -0
- {multi_lang_build-0.3.0.dist-info → multi_lang_build-0.3.1.dist-info}/entry_points.txt +0 -0
- {multi_lang_build-0.3.0.dist-info → multi_lang_build-0.3.1.dist-info}/licenses/LICENSE +0 -0
multi_lang_build/log.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""Structured logging configuration using loguru.
|
|
2
|
+
|
|
3
|
+
Configure the global loguru logger with structured output.
|
|
4
|
+
Other modules can simply: from loguru import logger
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
from loguru import logger
|
|
8
|
+
logger.info('message', key1=value1, key2=value2)
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import sys
|
|
12
|
+
|
|
13
|
+
from loguru import logger
|
|
14
|
+
|
|
15
|
+
# Remove default handler
|
|
16
|
+
logger.remove()
|
|
17
|
+
|
|
18
|
+
# Custom format function for structured logging
|
|
19
|
+
def _format(record: "loguru._logger.Record") -> str:
|
|
20
|
+
"""Format log record with structured fields as key=value."""
|
|
21
|
+
# Get caller info
|
|
22
|
+
file_path = record["file"].name
|
|
23
|
+
short_file = file_path.split("/")[-1] if "/" in file_path else file_path
|
|
24
|
+
line = record["line"]
|
|
25
|
+
func = record["function"]
|
|
26
|
+
|
|
27
|
+
# Build message
|
|
28
|
+
message = record["message"]
|
|
29
|
+
|
|
30
|
+
# Format extra fields as key=value
|
|
31
|
+
extra = record.get("extra", {})
|
|
32
|
+
parts = []
|
|
33
|
+
for key, value in extra.items():
|
|
34
|
+
if isinstance(value, str) and (" " in value or "=" in value):
|
|
35
|
+
parts.append(f'{key}="{value}"')
|
|
36
|
+
elif value is None:
|
|
37
|
+
parts.append(f"{key}=null")
|
|
38
|
+
elif isinstance(value, bool):
|
|
39
|
+
parts.append(f"{key}={'true' if value else 'false'}")
|
|
40
|
+
else:
|
|
41
|
+
parts.append(f"{key}={value}")
|
|
42
|
+
|
|
43
|
+
fields_str = f" {' '.join(parts)}" if parts else ""
|
|
44
|
+
|
|
45
|
+
# Write directly to stdout to bypass loguru's colorizer
|
|
46
|
+
sys.stdout.write(f"[{short_file}:{line} {func}] {message}{fields_str}\n")
|
|
47
|
+
sys.stdout.flush()
|
|
48
|
+
|
|
49
|
+
# Return empty string to suppress loguru's own output
|
|
50
|
+
return ""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# Add configured handler with our custom format
|
|
54
|
+
logger.add(
|
|
55
|
+
sys.stdout,
|
|
56
|
+
format=_format,
|
|
57
|
+
level="INFO",
|
|
58
|
+
colorize=False,
|
|
59
|
+
)
|
|
@@ -53,7 +53,7 @@ You can use the `multi-lang-build` tool to compile projects:
|
|
|
53
53
|
multi-lang-build go ./src --output ./bin/app --mirror
|
|
54
54
|
|
|
55
55
|
# Build with specific target (multi-entry support)
|
|
56
|
-
multi-lang-build go ./src --output ./bin/server --target cmd/server
|
|
56
|
+
multi-lang-build go ./src --output ./bin/server --target ./cmd/server
|
|
57
57
|
|
|
58
58
|
# Build Python project
|
|
59
59
|
multi-lang-build python ./src --output ./dist --mirror
|
|
@@ -45,7 +45,7 @@ def register_opencode(project_level: bool = True) -> bool:
|
|
|
45
45
|
},
|
|
46
46
|
"examples": [
|
|
47
47
|
"multi-lang-build go ./src --output ./bin/app --mirror",
|
|
48
|
-
"multi-lang-build go ./src --output ./bin/server --target cmd/server
|
|
48
|
+
"multi-lang-build go ./src --output ./bin/server --target ./cmd/server",
|
|
49
49
|
"multi-lang-build python ./src --output ./dist --mirror",
|
|
50
50
|
"multi-lang-build pnpm ./src --output ./dist --mirror",
|
|
51
51
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multi-lang-build
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Multi-language automated build tool with domestic mirror acceleration support
|
|
5
5
|
Project-URL: Homepage, https://github.com/example/multi-lang-build
|
|
6
6
|
Project-URL: Repository, https://github.com/example/multi-lang-build
|
|
@@ -177,35 +177,41 @@ compiler.build(
|
|
|
177
177
|
|
|
178
178
|
| IDE | 命令 | 说明 |
|
|
179
179
|
|-----|------|------|
|
|
180
|
-
| 🤖 **Claude Code** | `multi-lang-
|
|
181
|
-
| 💠 **OpenCode** | `multi-lang-
|
|
182
|
-
| 🔷 **Trae** | `multi-lang-
|
|
183
|
-
| 🎯 **CodeBuddy** | `multi-lang-
|
|
180
|
+
| 🤖 **Claude Code** | `multi-lang-register claude` | 默认,AI 助手原生支持 |
|
|
181
|
+
| 💠 **OpenCode** | `multi-lang-register opencode` | 智能代码助手集成 |
|
|
182
|
+
| 🔷 **Trae** | `multi-lang-register trae` | 字节跳动 AI IDE |
|
|
183
|
+
| 🎯 **CodeBuddy** | `multi-lang-register codebuddy` | 代码伙伴插件 |
|
|
184
184
|
|
|
185
185
|
### 注册 Claude Code(默认)
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
|
-
#
|
|
189
|
-
multi-lang-
|
|
188
|
+
# 使用独立命令
|
|
189
|
+
multi-lang-register
|
|
190
190
|
|
|
191
|
-
#
|
|
192
|
-
multi-lang-
|
|
191
|
+
# 或指定 IDE
|
|
192
|
+
multi-lang-register claude
|
|
193
|
+
multi-lang-register opencode
|
|
194
|
+
multi-lang-register trae
|
|
195
|
+
multi-lang-register codebuddy
|
|
193
196
|
|
|
194
197
|
# 注册到全局配置
|
|
195
|
-
multi-lang-
|
|
198
|
+
multi-lang-register claude --global
|
|
196
199
|
```
|
|
197
200
|
|
|
198
201
|
### 注册其他 IDE
|
|
199
202
|
|
|
200
203
|
```bash
|
|
201
204
|
# 注册到 OpenCode
|
|
202
|
-
multi-lang-
|
|
205
|
+
multi-lang-register opencode
|
|
203
206
|
|
|
204
207
|
# 注册到 Trae
|
|
205
|
-
multi-lang-
|
|
208
|
+
multi-lang-register trae
|
|
206
209
|
|
|
207
210
|
# 注册到 CodeBuddy
|
|
208
|
-
multi-lang-
|
|
211
|
+
multi-lang-register codebuddy
|
|
212
|
+
|
|
213
|
+
# 注册所有 IDE
|
|
214
|
+
multi-lang-register all
|
|
209
215
|
```
|
|
210
216
|
|
|
211
217
|
### 注册功能说明
|
|
@@ -214,10 +220,10 @@ multi-lang-build register codebuddy
|
|
|
214
220
|
|
|
215
221
|
| IDE | 命令 | 项目级配置 | 全局配置 |
|
|
216
222
|
|-----|------|-----------|---------|
|
|
217
|
-
| 🤖 **Claude Code** | `multi-lang-
|
|
218
|
-
| 💠 **OpenCode** | `multi-lang-
|
|
219
|
-
| 🔷 **Trae** | `multi-lang-
|
|
220
|
-
| 🎯 **CodeBuddy** | `multi-lang-
|
|
223
|
+
| 🤖 **Claude Code** | `multi-lang-register claude` | `.claude/multi-lang-build.md` | `~/.claude/CLAUDE.md` |
|
|
224
|
+
| 💠 **OpenCode** | `multi-lang-register opencode` | `.opencode/skills.json` | `~/.config/opencode/skills.json` |
|
|
225
|
+
| 🔷 **Trae** | `multi-lang-register trae` | `.trae/skills.json` | `~/.trae/skills.json` |
|
|
226
|
+
| 🎯 **CodeBuddy** | `multi-lang-register codebuddy` | `.codebuddy/skills.yaml` | `~/.codebuddy/skills.yaml` |
|
|
221
227
|
|
|
222
228
|
注册后,IDE 将自动识别项目类型并提供智能构建建议。
|
|
223
229
|
|
|
@@ -267,13 +273,12 @@ multi-lang-build python ./myproject --output ./dist --mirror
|
|
|
267
273
|
# PNPM 项目构建
|
|
268
274
|
multi-lang-build pnpm ./myproject --output ./dist --mirror
|
|
269
275
|
|
|
270
|
-
# 注册到 IDE
|
|
271
|
-
multi-lang-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
multi-lang-
|
|
275
|
-
multi-lang-
|
|
276
|
-
multi-lang-build register codebuddy
|
|
276
|
+
# 注册到 IDE(独立命令)
|
|
277
|
+
multi-lang-register # 默认 Claude Code
|
|
278
|
+
multi-lang-register opencode
|
|
279
|
+
multi-lang-register trae
|
|
280
|
+
multi-lang-register codebuddy
|
|
281
|
+
multi-lang-register all # 注册所有 IDE
|
|
277
282
|
|
|
278
283
|
# 镜像配置
|
|
279
284
|
multi-lang-build mirror list # 列出可用镜像
|
|
@@ -405,6 +410,13 @@ for pkg in ["ui", "utils", "app"]:
|
|
|
405
410
|
|
|
406
411
|
## 📋 更新日志
|
|
407
412
|
|
|
413
|
+
### v0.3.1 (2026-02-03)
|
|
414
|
+
|
|
415
|
+
**🔧 重构**
|
|
416
|
+
- 使用 loguru 替换 ColorInfo 实现结构化日志
|
|
417
|
+
- 日志格式: `[file:line function] message key=value`
|
|
418
|
+
- 支持调用者位置追踪
|
|
419
|
+
|
|
408
420
|
### v0.3.0 (2026-02-03)
|
|
409
421
|
|
|
410
422
|
**✨ 新功能**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
multi_lang_build/__init__.py,sha256=_3D4R7_1Y452wsSbtcqKetK3pUFVJvW3JWSH-CNZCFc,1794
|
|
2
2
|
multi_lang_build/cli.py,sha256=v1xn2qfpj47n7rZQMg-Xiz8Tnu9aUEz--u9x4chH5vs,13246
|
|
3
3
|
multi_lang_build/ide_register.py,sha256=lz345IOs9S6-neh7t_6txJhz7XLypEiNzwvSl3ouVo8,3028
|
|
4
|
+
multi_lang_build/log.py,sha256=HM_0uGq8pGj_-9wR30iw1iGH1G0OvIJQb3x_AhKrRAE,1651
|
|
4
5
|
multi_lang_build/py.typed,sha256=c8jtFarMovqA5DdwhEzKPH4WrX85xaoiWilIlvuc6KU,84
|
|
5
6
|
multi_lang_build/types.py,sha256=iCyz_6KmEBU4xwpCtfJnpzXoiSsmOcOKOhzHJVx8Z4Q,1043
|
|
6
7
|
multi_lang_build/compiler/__init__.py,sha256=7cfE3n7ATXZ8JabON_Qg0npxd7EY2jEU4tC6FxDupIs,493
|
|
@@ -29,12 +30,12 @@ multi_lang_build/mirror/__init__.py,sha256=RrZOQ83bxImAR275zeAUKyyCgwqdGt5xH8tF_
|
|
|
29
30
|
multi_lang_build/mirror/cli.py,sha256=qv6RI6izxUIsfMCIDOtTK3avcNSJpAaUF3NPiK1W49A,9820
|
|
30
31
|
multi_lang_build/mirror/config.py,sha256=ZQo9upkE29vw0QFuBT6sYw85DhOhHQg59RSYu-OcdQg,9067
|
|
31
32
|
multi_lang_build/register/support/__init__.py,sha256=Hg5oKJn5KhJ-qikzpDtFf0CO9WVnMvJVhExf20-PC10,443
|
|
32
|
-
multi_lang_build/register/support/claude.py,sha256=
|
|
33
|
-
multi_lang_build/register/support/codebuddy.py,sha256=
|
|
34
|
-
multi_lang_build/register/support/opencode.py,sha256=
|
|
33
|
+
multi_lang_build/register/support/claude.py,sha256=Ku4ZkVVEh6--ALlGKDG8brTWPKXpJsj0gp36pbqVFr8,3364
|
|
34
|
+
multi_lang_build/register/support/codebuddy.py,sha256=b0omRs2BcxeTdKho0aQ3bbjuzU6-WrcQFyCIuf-grQo,3356
|
|
35
|
+
multi_lang_build/register/support/opencode.py,sha256=B9x_cfJcWDjNLDiWZsN5Hj1TqlMGG9Zh0oeey8l16X8,2388
|
|
35
36
|
multi_lang_build/register/support/trae.py,sha256=nkiQRCWp8in3cI3BLuWHMMLzQwiQQv3crxAU06sXOuk,2527
|
|
36
|
-
multi_lang_build-0.3.
|
|
37
|
-
multi_lang_build-0.3.
|
|
38
|
-
multi_lang_build-0.3.
|
|
39
|
-
multi_lang_build-0.3.
|
|
40
|
-
multi_lang_build-0.3.
|
|
37
|
+
multi_lang_build-0.3.1.dist-info/METADATA,sha256=rPFzE7_v5AbrnUbS9zGWcknq_jOJX_c0RtM49cVGdpU,11122
|
|
38
|
+
multi_lang_build-0.3.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
39
|
+
multi_lang_build-0.3.1.dist-info/entry_points.txt,sha256=0vd5maQH5aZoqnpbr2Yr_IWB_-ncWX1rO3jGBCW3pHY,319
|
|
40
|
+
multi_lang_build-0.3.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
41
|
+
multi_lang_build-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|