multi-lang-build 0.3.0__tar.gz → 0.3.1__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 (45) hide show
  1. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/PKG-INFO +36 -24
  2. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/README.md +35 -23
  3. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/pyproject.toml +1 -1
  4. multi_lang_build-0.3.1/src/multi_lang_build/log.py +59 -0
  5. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/register/support/claude.py +1 -1
  6. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/register/support/codebuddy.py +1 -1
  7. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/register/support/opencode.py +1 -1
  8. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/.gitignore +0 -0
  9. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/LICENSE +0 -0
  10. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/__init__.py +0 -0
  11. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/cli.py +0 -0
  12. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/__init__.py +0 -0
  13. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/base.py +0 -0
  14. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_compiler.py +0 -0
  15. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/__init__.py +0 -0
  16. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/binary.py +0 -0
  17. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/builder.py +0 -0
  18. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/cleaner.py +0 -0
  19. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/env.py +0 -0
  20. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/mirror.py +0 -0
  21. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/module.py +0 -0
  22. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/go_support/tester.py +0 -0
  23. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/pnpm.py +0 -0
  24. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/pnpm_support/__init__.py +0 -0
  25. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/pnpm_support/executor.py +0 -0
  26. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/pnpm_support/project.py +0 -0
  27. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python.py +0 -0
  28. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/__init__.py +0 -0
  29. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/cleaner.py +0 -0
  30. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/cli.py +0 -0
  31. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/detector.py +0 -0
  32. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/installer.py +0 -0
  33. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/compiler/python_support/venv.py +0 -0
  34. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/ide_register.py +0 -0
  35. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/mirror/__init__.py +0 -0
  36. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/mirror/cli.py +0 -0
  37. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/mirror/config.py +0 -0
  38. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/py.typed +0 -0
  39. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/register/support/__init__.py +0 -0
  40. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/register/support/trae.py +0 -0
  41. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/src/multi_lang_build/types.py +0 -0
  42. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/tests/__init__.py +0 -0
  43. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/tests/conftest.py +0 -0
  44. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/tests/test_compiler.py +0 -0
  45. {multi_lang_build-0.3.0 → multi_lang_build-0.3.1}/tests/test_mirror.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-lang-build
3
- Version: 0.3.0
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-build register` | 默认,AI 助手原生支持 |
181
- | 💠 **OpenCode** | `multi-lang-build register opencode` | 智能代码助手集成 |
182
- | 🔷 **Trae** | `multi-lang-build register trae` | 字节跳动 AI IDE |
183
- | 🎯 **CodeBuddy** | `multi-lang-build register codebuddy` | 代码伙伴插件 |
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
- # 默认注册到项目级(.claude/multi-lang-build.md)
189
- multi-lang-build register
188
+ # 使用独立命令
189
+ multi-lang-register
190
190
 
191
- # 或使用完整命令
192
- multi-lang-build register claude
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-build register claude --global
198
+ multi-lang-register claude --global
196
199
  ```
197
200
 
198
201
  ### 注册其他 IDE
199
202
 
200
203
  ```bash
201
204
  # 注册到 OpenCode
202
- multi-lang-build register opencode
205
+ multi-lang-register opencode
203
206
 
204
207
  # 注册到 Trae
205
- multi-lang-build register trae
208
+ multi-lang-register trae
206
209
 
207
210
  # 注册到 CodeBuddy
208
- multi-lang-build register codebuddy
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-build register` | `.claude/multi-lang-build.md` | `~/.claude/CLAUDE.md` |
218
- | 💠 **OpenCode** | `multi-lang-build register opencode` | `.opencode/skills.json` | `~/.config/opencode/skills.json` |
219
- | 🔷 **Trae** | `multi-lang-build register trae` | `.trae/skills.json` | `~/.trae/skills.json` |
220
- | 🎯 **CodeBuddy** | `multi-lang-build register codebuddy` | `.codebuddy/skills.yaml` | `~/.codebuddy/skills.yaml` |
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(默认 Claude Code)
271
- multi-lang-build register
272
-
273
- # 注册到指定 IDE
274
- multi-lang-build register opencode
275
- multi-lang-build register trae
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
  **✨ 新功能**
@@ -148,35 +148,41 @@ compiler.build(
148
148
 
149
149
  | IDE | 命令 | 说明 |
150
150
  |-----|------|------|
151
- | 🤖 **Claude Code** | `multi-lang-build register` | 默认,AI 助手原生支持 |
152
- | 💠 **OpenCode** | `multi-lang-build register opencode` | 智能代码助手集成 |
153
- | 🔷 **Trae** | `multi-lang-build register trae` | 字节跳动 AI IDE |
154
- | 🎯 **CodeBuddy** | `multi-lang-build register codebuddy` | 代码伙伴插件 |
151
+ | 🤖 **Claude Code** | `multi-lang-register claude` | 默认,AI 助手原生支持 |
152
+ | 💠 **OpenCode** | `multi-lang-register opencode` | 智能代码助手集成 |
153
+ | 🔷 **Trae** | `multi-lang-register trae` | 字节跳动 AI IDE |
154
+ | 🎯 **CodeBuddy** | `multi-lang-register codebuddy` | 代码伙伴插件 |
155
155
 
156
156
  ### 注册 Claude Code(默认)
157
157
 
158
158
  ```bash
159
- # 默认注册到项目级(.claude/multi-lang-build.md)
160
- multi-lang-build register
159
+ # 使用独立命令
160
+ multi-lang-register
161
161
 
162
- # 或使用完整命令
163
- multi-lang-build register claude
162
+ # 或指定 IDE
163
+ multi-lang-register claude
164
+ multi-lang-register opencode
165
+ multi-lang-register trae
166
+ multi-lang-register codebuddy
164
167
 
165
168
  # 注册到全局配置
166
- multi-lang-build register claude --global
169
+ multi-lang-register claude --global
167
170
  ```
168
171
 
169
172
  ### 注册其他 IDE
170
173
 
171
174
  ```bash
172
175
  # 注册到 OpenCode
173
- multi-lang-build register opencode
176
+ multi-lang-register opencode
174
177
 
175
178
  # 注册到 Trae
176
- multi-lang-build register trae
179
+ multi-lang-register trae
177
180
 
178
181
  # 注册到 CodeBuddy
179
- multi-lang-build register codebuddy
182
+ multi-lang-register codebuddy
183
+
184
+ # 注册所有 IDE
185
+ multi-lang-register all
180
186
  ```
181
187
 
182
188
  ### 注册功能说明
@@ -185,10 +191,10 @@ multi-lang-build register codebuddy
185
191
 
186
192
  | IDE | 命令 | 项目级配置 | 全局配置 |
187
193
  |-----|------|-----------|---------|
188
- | 🤖 **Claude Code** | `multi-lang-build register` | `.claude/multi-lang-build.md` | `~/.claude/CLAUDE.md` |
189
- | 💠 **OpenCode** | `multi-lang-build register opencode` | `.opencode/skills.json` | `~/.config/opencode/skills.json` |
190
- | 🔷 **Trae** | `multi-lang-build register trae` | `.trae/skills.json` | `~/.trae/skills.json` |
191
- | 🎯 **CodeBuddy** | `multi-lang-build register codebuddy` | `.codebuddy/skills.yaml` | `~/.codebuddy/skills.yaml` |
194
+ | 🤖 **Claude Code** | `multi-lang-register claude` | `.claude/multi-lang-build.md` | `~/.claude/CLAUDE.md` |
195
+ | 💠 **OpenCode** | `multi-lang-register opencode` | `.opencode/skills.json` | `~/.config/opencode/skills.json` |
196
+ | 🔷 **Trae** | `multi-lang-register trae` | `.trae/skills.json` | `~/.trae/skills.json` |
197
+ | 🎯 **CodeBuddy** | `multi-lang-register codebuddy` | `.codebuddy/skills.yaml` | `~/.codebuddy/skills.yaml` |
192
198
 
193
199
  注册后,IDE 将自动识别项目类型并提供智能构建建议。
194
200
 
@@ -238,13 +244,12 @@ multi-lang-build python ./myproject --output ./dist --mirror
238
244
  # PNPM 项目构建
239
245
  multi-lang-build pnpm ./myproject --output ./dist --mirror
240
246
 
241
- # 注册到 IDE(默认 Claude Code)
242
- multi-lang-build register
243
-
244
- # 注册到指定 IDE
245
- multi-lang-build register opencode
246
- multi-lang-build register trae
247
- multi-lang-build register codebuddy
247
+ # 注册到 IDE(独立命令)
248
+ multi-lang-register # 默认 Claude Code
249
+ multi-lang-register opencode
250
+ multi-lang-register trae
251
+ multi-lang-register codebuddy
252
+ multi-lang-register all # 注册所有 IDE
248
253
 
249
254
  # 镜像配置
250
255
  multi-lang-build mirror list # 列出可用镜像
@@ -376,6 +381,13 @@ for pkg in ["ui", "utils", "app"]:
376
381
 
377
382
  ## 📋 更新日志
378
383
 
384
+ ### v0.3.1 (2026-02-03)
385
+
386
+ **🔧 重构**
387
+ - 使用 loguru 替换 ColorInfo 实现结构化日志
388
+ - 日志格式: `[file:line function] message key=value`
389
+ - 支持调用者位置追踪
390
+
379
391
  ### v0.3.0 (2026-02-03)
380
392
 
381
393
  **✨ 新功能**
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "multi-lang-build"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "Multi-language automated build tool with domestic mirror acceleration support"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -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/main.go
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
@@ -31,7 +31,7 @@ skills:
31
31
  multi-lang-build:
32
32
  name: "Multi-Lang Build"
33
33
  description: "Multi-language automated build tool with mirror acceleration"
34
- version: "0.2.0"
34
+ version: "0.3.0"
35
35
 
36
36
  commands:
37
37
  build-go:
@@ -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/main.go",
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
  ]