@paretools/python 0.3.0 → 0.6.0
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.
- package/README.md +45 -12
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/formatters.d.ts +89 -1
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +184 -0
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/parsers.d.ts +13 -1
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +175 -4
- package/dist/lib/parsers.js.map +1 -1
- package/dist/lib/python-runner.d.ts +3 -0
- package/dist/lib/python-runner.d.ts.map +1 -1
- package/dist/lib/python-runner.js +9 -0
- package/dist/lib/python-runner.js.map +1 -1
- package/dist/schemas/index.d.ts +79 -195
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +49 -4
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/black.d.ts +3 -0
- package/dist/tools/black.d.ts.map +1 -0
- package/dist/tools/black.js +48 -0
- package/dist/tools/black.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mypy.d.ts.map +1 -1
- package/dist/tools/mypy.js +19 -6
- package/dist/tools/mypy.js.map +1 -1
- package/dist/tools/pip-audit.d.ts.map +1 -1
- package/dist/tools/pip-audit.js +21 -6
- package/dist/tools/pip-audit.js.map +1 -1
- package/dist/tools/pip-install.d.ts.map +1 -1
- package/dist/tools/pip-install.js +37 -8
- package/dist/tools/pip-install.js.map +1 -1
- package/dist/tools/pytest.d.ts +3 -0
- package/dist/tools/pytest.d.ts.map +1 -0
- package/dist/tools/pytest.js +57 -0
- package/dist/tools/pytest.js.map +1 -0
- package/dist/tools/ruff.d.ts.map +1 -1
- package/dist/tools/ruff.js +19 -6
- package/dist/tools/ruff.js.map +1 -1
- package/dist/tools/uv-install.d.ts +3 -0
- package/dist/tools/uv-install.d.ts.map +1 -0
- package/dist/tools/uv-install.js +66 -0
- package/dist/tools/uv-install.js.map +1 -0
- package/dist/tools/uv-run.d.ts +3 -0
- package/dist/tools/uv-run.d.ts.map +1 -0
- package/dist/tools/uv-run.js +40 -0
- package/dist/tools/uv-run.js.map +1 -0
- package/package.json +21 -9
package/README.md
CHANGED
|
@@ -1,24 +1,39 @@
|
|
|
1
1
|
# @paretools/python
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@paretools/python)
|
|
4
|
+
[](https://github.com/Dave-London/Pare/blob/main/LICENSE)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
**Structured, token-efficient Python tool output for AI agents.** Up to 65% fewer tokens than raw CLI output.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
| ------------- | ------------------------------------------------------ |
|
|
9
|
-
| `pip-install` | Install packages, returns summary of installed items |
|
|
10
|
-
| `mypy` | Type-check diagnostics (file, line, severity, message) |
|
|
11
|
-
| `ruff-check` | Lint diagnostics (file, line, code, message) |
|
|
12
|
-
| `pip-audit` | Vulnerability report for installed packages |
|
|
8
|
+
Part of the [Pare](https://github.com/Dave-London/Pare) suite of MCP servers.
|
|
13
9
|
|
|
14
|
-
##
|
|
10
|
+
## Tools (8)
|
|
11
|
+
|
|
12
|
+
| Tool | Description |
|
|
13
|
+
| ------------- | ------------------------------------------------------- |
|
|
14
|
+
| `pip-install` | Install packages, returns summary of installed items |
|
|
15
|
+
| `mypy` | Type-check diagnostics (file, line, severity, message) |
|
|
16
|
+
| `ruff-check` | Lint diagnostics (file, line, code, message) |
|
|
17
|
+
| `pip-audit` | Vulnerability report for installed packages |
|
|
18
|
+
| `pytest` | Run tests, returns structured pass/fail results |
|
|
19
|
+
| `uv-install` | Install packages via uv with structured summary |
|
|
20
|
+
| `uv-run` | Run a command in a uv-managed environment |
|
|
21
|
+
| `black` | Format code with Black, returns changed/unchanged files |
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx -y @paretools/python
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Add to your MCP client config:
|
|
15
30
|
|
|
16
31
|
```json
|
|
17
32
|
{
|
|
18
33
|
"mcpServers": {
|
|
19
34
|
"pare-python": {
|
|
20
35
|
"command": "npx",
|
|
21
|
-
"args": ["@paretools/python"]
|
|
36
|
+
"args": ["-y", "@paretools/python"]
|
|
22
37
|
}
|
|
23
38
|
}
|
|
24
39
|
}
|
|
@@ -46,11 +61,29 @@ Pare MCP server for **Python tools**. Returns structured output from pip, mypy,
|
|
|
46
61
|
}
|
|
47
62
|
```
|
|
48
63
|
|
|
64
|
+
## All Pare Servers (62 tools)
|
|
65
|
+
|
|
66
|
+
| Package | Tools | Wraps |
|
|
67
|
+
| -------------------------------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------- |
|
|
68
|
+
| [@paretools/git](https://www.npmjs.com/package/@paretools/git) | status, log, diff, branch, show, add, commit, push, pull, checkout | git |
|
|
69
|
+
| [@paretools/test](https://www.npmjs.com/package/@paretools/test) | run, coverage | pytest, jest, vitest, mocha |
|
|
70
|
+
| [@paretools/npm](https://www.npmjs.com/package/@paretools/npm) | install, audit, outdated, list, run, test, init | npm |
|
|
71
|
+
| [@paretools/build](https://www.npmjs.com/package/@paretools/build) | tsc, build, esbuild, vite-build, webpack | tsc, esbuild, vite, webpack |
|
|
72
|
+
| [@paretools/lint](https://www.npmjs.com/package/@paretools/lint) | lint, format-check, prettier-format, biome-check, biome-format | eslint, prettier, biome |
|
|
73
|
+
| **@paretools/python** | pip-install, mypy, ruff-check, pip-audit, pytest, uv-install, uv-run, black | pip, mypy, ruff, pytest, uv, black |
|
|
74
|
+
| [@paretools/docker](https://www.npmjs.com/package/@paretools/docker) | ps, build, logs, images, run, exec, compose-up, compose-down, pull | docker, docker compose |
|
|
75
|
+
| [@paretools/cargo](https://www.npmjs.com/package/@paretools/cargo) | build, test, clippy, run, add, remove, fmt, doc, check | cargo |
|
|
76
|
+
| [@paretools/go](https://www.npmjs.com/package/@paretools/go) | build, test, vet, run, mod-tidy, fmt, generate | go, gofmt |
|
|
77
|
+
|
|
78
|
+
## Compatible Clients
|
|
79
|
+
|
|
80
|
+
Works with any MCP-compatible client: [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Claude Desktop](https://claude.ai/download), [Cursor](https://cursor.com), [Windsurf](https://codeium.com/windsurf), [VS Code / GitHub Copilot](https://code.visualstudio.com), [Cline](https://github.com/cline/cline), [Roo Code](https://roocode.com), [Zed](https://zed.dev), [Continue.dev](https://continue.dev), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [OpenAI Codex](https://openai.com/index/codex/)
|
|
81
|
+
|
|
49
82
|
## Links
|
|
50
83
|
|
|
51
|
-
- [Pare monorepo](https://github.com/Dave-London/
|
|
84
|
+
- [Pare monorepo](https://github.com/Dave-London/Pare)
|
|
52
85
|
- [MCP protocol](https://modelcontextprotocol.io)
|
|
53
86
|
|
|
54
87
|
## License
|
|
55
88
|
|
|
56
|
-
[MIT](https://github.com/Dave-London/
|
|
89
|
+
[MIT](https://github.com/Dave-London/Pare/blob/main/LICENSE)
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { registerAllTools } from "./tools/index.js";
|
|
5
5
|
const server = new McpServer({ name: "@paretools/python", version: "0.2.0" }, {
|
|
6
|
-
instructions: "Structured Python tool operations (pip install, mypy, ruff, pip-audit). Use instead of running Python tool commands via bash. Returns typed JSON with structured type errors, lint violations, and
|
|
6
|
+
instructions: "Structured Python tool operations (pip install, mypy, ruff, pip-audit, pytest, uv, black). Use instead of running Python tool commands via bash. Returns typed JSON with structured type errors, lint violations, vulnerability data, test results, and formatting status.",
|
|
7
7
|
});
|
|
8
8
|
registerAllTools(server);
|
|
9
9
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C;IACE,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C;IACE,YAAY,EACV,4QAA4Q;CAC/Q,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/lib/formatters.d.ts
CHANGED
|
@@ -1,6 +1,94 @@
|
|
|
1
|
-
import type { PipInstall, MypyResult, RuffResult, PipAuditResult } from "../schemas/index.js";
|
|
1
|
+
import type { PipInstall, MypyResult, RuffResult, PipAuditResult, PytestResult, UvInstall, UvRun, BlackResult } from "../schemas/index.js";
|
|
2
|
+
/** Formats structured pip install results into a human-readable summary of installed packages. */
|
|
2
3
|
export declare function formatPipInstall(data: PipInstall): string;
|
|
4
|
+
/** Formats structured mypy type-check results into a human-readable diagnostic summary. */
|
|
3
5
|
export declare function formatMypy(data: MypyResult): string;
|
|
6
|
+
/** Formats structured ruff lint results into a human-readable diagnostic listing. */
|
|
4
7
|
export declare function formatRuff(data: RuffResult): string;
|
|
8
|
+
/** Formats structured pip-audit vulnerability results into a human-readable security report. */
|
|
5
9
|
export declare function formatPipAudit(data: PipAuditResult): string;
|
|
10
|
+
/** Formats structured pytest results into a human-readable test summary. */
|
|
11
|
+
export declare function formatPytest(data: PytestResult): string;
|
|
12
|
+
/** Formats structured uv install results into a human-readable summary. */
|
|
13
|
+
export declare function formatUvInstall(data: UvInstall): string;
|
|
14
|
+
/** Formats structured uv run results into a human-readable summary. */
|
|
15
|
+
export declare function formatUvRun(data: UvRun): string;
|
|
16
|
+
/** Formats structured Black formatter results into a human-readable summary. */
|
|
17
|
+
export declare function formatBlack(data: BlackResult): string;
|
|
18
|
+
/** Compact pytest: counts + duration + failure test names only (no stack traces). */
|
|
19
|
+
export interface PytestResultCompact {
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
success: boolean;
|
|
22
|
+
passed: number;
|
|
23
|
+
failed: number;
|
|
24
|
+
errors: number;
|
|
25
|
+
skipped: number;
|
|
26
|
+
total: number;
|
|
27
|
+
duration: number;
|
|
28
|
+
failedTests: string[];
|
|
29
|
+
}
|
|
30
|
+
export declare function compactPytestMap(data: PytestResult): PytestResultCompact;
|
|
31
|
+
export declare function formatPytestCompact(data: PytestResultCompact): string;
|
|
32
|
+
/** Compact mypy: success + diagnostic counts per severity. Drop individual diagnostics. */
|
|
33
|
+
export interface MypyResultCompact {
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
success: boolean;
|
|
36
|
+
total: number;
|
|
37
|
+
errors: number;
|
|
38
|
+
warnings: number;
|
|
39
|
+
}
|
|
40
|
+
export declare function compactMypyMap(data: MypyResult): MypyResultCompact;
|
|
41
|
+
export declare function formatMypyCompact(data: MypyResultCompact): string;
|
|
42
|
+
/** Compact ruff: success + diagnostic count. Drop individual entries. */
|
|
43
|
+
export interface RuffResultCompact {
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
total: number;
|
|
46
|
+
fixable: number;
|
|
47
|
+
}
|
|
48
|
+
export declare function compactRuffMap(data: RuffResult): RuffResultCompact;
|
|
49
|
+
export declare function formatRuffCompact(data: RuffResultCompact): string;
|
|
50
|
+
/** Compact black: success + changed/unchanged counts. Drop individual file lists. */
|
|
51
|
+
export interface BlackResultCompact {
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
success: boolean;
|
|
54
|
+
filesChanged: number;
|
|
55
|
+
filesUnchanged: number;
|
|
56
|
+
filesChecked: number;
|
|
57
|
+
}
|
|
58
|
+
export declare function compactBlackMap(data: BlackResult): BlackResultCompact;
|
|
59
|
+
export declare function formatBlackCompact(data: BlackResultCompact): string;
|
|
60
|
+
/** Compact pip-install: success + installed count. Drop individual package details. */
|
|
61
|
+
export interface PipInstallCompact {
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
success: boolean;
|
|
64
|
+
total: number;
|
|
65
|
+
alreadySatisfied: boolean;
|
|
66
|
+
}
|
|
67
|
+
export declare function compactPipInstallMap(data: PipInstall): PipInstallCompact;
|
|
68
|
+
export declare function formatPipInstallCompact(data: PipInstallCompact): string;
|
|
69
|
+
/** Compact pip-audit: success + vulnerability count. Drop individual CVE details. */
|
|
70
|
+
export interface PipAuditResultCompact {
|
|
71
|
+
[key: string]: unknown;
|
|
72
|
+
total: number;
|
|
73
|
+
}
|
|
74
|
+
export declare function compactPipAuditMap(data: PipAuditResult): PipAuditResultCompact;
|
|
75
|
+
export declare function formatPipAuditCompact(data: PipAuditResultCompact): string;
|
|
76
|
+
/** Compact uv-install: success + installed count + duration. Drop individual packages. */
|
|
77
|
+
export interface UvInstallCompact {
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
success: boolean;
|
|
80
|
+
total: number;
|
|
81
|
+
duration: number;
|
|
82
|
+
}
|
|
83
|
+
export declare function compactUvInstallMap(data: UvInstall): UvInstallCompact;
|
|
84
|
+
export declare function formatUvInstallCompact(data: UvInstallCompact): string;
|
|
85
|
+
/** Compact uv-run: exitCode + duration. Drop stdout/stderr. */
|
|
86
|
+
export interface UvRunCompact {
|
|
87
|
+
[key: string]: unknown;
|
|
88
|
+
exitCode: number;
|
|
89
|
+
success: boolean;
|
|
90
|
+
duration: number;
|
|
91
|
+
}
|
|
92
|
+
export declare function compactUvRunMap(data: UvRun): UvRunCompact;
|
|
93
|
+
export declare function formatUvRunCompact(data: UvRunCompact): string;
|
|
6
94
|
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/formatters.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Formats structured pip install results into a human-readable summary of installed packages. */
|
|
1
2
|
export function formatPipInstall(data) {
|
|
2
3
|
if (data.alreadySatisfied && data.total === 0)
|
|
3
4
|
return "All requirements already satisfied.";
|
|
@@ -9,6 +10,7 @@ export function formatPipInstall(data) {
|
|
|
9
10
|
}
|
|
10
11
|
return lines.join("\n");
|
|
11
12
|
}
|
|
13
|
+
/** Formats structured mypy type-check results into a human-readable diagnostic summary. */
|
|
12
14
|
export function formatMypy(data) {
|
|
13
15
|
if (data.success && data.total === 0)
|
|
14
16
|
return "mypy: no errors found.";
|
|
@@ -20,6 +22,7 @@ export function formatMypy(data) {
|
|
|
20
22
|
}
|
|
21
23
|
return lines.join("\n");
|
|
22
24
|
}
|
|
25
|
+
/** Formats structured ruff lint results into a human-readable diagnostic listing. */
|
|
23
26
|
export function formatRuff(data) {
|
|
24
27
|
if (data.total === 0)
|
|
25
28
|
return "ruff: no issues found.";
|
|
@@ -29,6 +32,7 @@ export function formatRuff(data) {
|
|
|
29
32
|
}
|
|
30
33
|
return lines.join("\n");
|
|
31
34
|
}
|
|
35
|
+
/** Formats structured pip-audit vulnerability results into a human-readable security report. */
|
|
32
36
|
export function formatPipAudit(data) {
|
|
33
37
|
if (data.total === 0)
|
|
34
38
|
return "No vulnerabilities found.";
|
|
@@ -39,4 +43,184 @@ export function formatPipAudit(data) {
|
|
|
39
43
|
}
|
|
40
44
|
return lines.join("\n");
|
|
41
45
|
}
|
|
46
|
+
/** Formats structured pytest results into a human-readable test summary. */
|
|
47
|
+
export function formatPytest(data) {
|
|
48
|
+
if (data.total === 0)
|
|
49
|
+
return "pytest: no tests collected.";
|
|
50
|
+
const parts = [];
|
|
51
|
+
if (data.passed > 0)
|
|
52
|
+
parts.push(`${data.passed} passed`);
|
|
53
|
+
if (data.failed > 0)
|
|
54
|
+
parts.push(`${data.failed} failed`);
|
|
55
|
+
if (data.errors > 0)
|
|
56
|
+
parts.push(`${data.errors} errors`);
|
|
57
|
+
if (data.skipped > 0)
|
|
58
|
+
parts.push(`${data.skipped} skipped`);
|
|
59
|
+
const lines = [`pytest: ${parts.join(", ")} in ${data.duration}s`];
|
|
60
|
+
for (const f of data.failures) {
|
|
61
|
+
lines.push(` FAILED ${f.test}: ${f.message}`);
|
|
62
|
+
}
|
|
63
|
+
return lines.join("\n");
|
|
64
|
+
}
|
|
65
|
+
/** Formats structured uv install results into a human-readable summary. */
|
|
66
|
+
export function formatUvInstall(data) {
|
|
67
|
+
if (!data.success)
|
|
68
|
+
return "uv install failed.";
|
|
69
|
+
if (data.total === 0)
|
|
70
|
+
return "All requirements already satisfied.";
|
|
71
|
+
const lines = [`Installed ${data.total} packages in ${data.duration}s:`];
|
|
72
|
+
for (const pkg of data.installed) {
|
|
73
|
+
lines.push(` ${pkg.name}==${pkg.version}`);
|
|
74
|
+
}
|
|
75
|
+
return lines.join("\n");
|
|
76
|
+
}
|
|
77
|
+
/** Formats structured uv run results into a human-readable summary. */
|
|
78
|
+
export function formatUvRun(data) {
|
|
79
|
+
const status = data.success ? "completed" : `failed (exit ${data.exitCode})`;
|
|
80
|
+
const lines = [`uv run ${status} in ${data.duration}s`];
|
|
81
|
+
if (data.stdout.trim()) {
|
|
82
|
+
lines.push("stdout:", data.stdout.trim());
|
|
83
|
+
}
|
|
84
|
+
if (data.stderr.trim()) {
|
|
85
|
+
lines.push("stderr:", data.stderr.trim());
|
|
86
|
+
}
|
|
87
|
+
return lines.join("\n");
|
|
88
|
+
}
|
|
89
|
+
/** Formats structured Black formatter results into a human-readable summary. */
|
|
90
|
+
export function formatBlack(data) {
|
|
91
|
+
if (data.filesChecked === 0)
|
|
92
|
+
return "black: no Python files found.";
|
|
93
|
+
if (data.success && data.filesChanged === 0) {
|
|
94
|
+
return `black: ${data.filesUnchanged} files already formatted.`;
|
|
95
|
+
}
|
|
96
|
+
const lines = [];
|
|
97
|
+
if (data.wouldReformat.length > 0) {
|
|
98
|
+
lines.push(`black: ${data.filesChanged} files ${data.success ? "reformatted" : "would be reformatted"}, ${data.filesUnchanged} unchanged`);
|
|
99
|
+
for (const f of data.wouldReformat) {
|
|
100
|
+
lines.push(` ${f}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
lines.push(`black: ${data.filesChanged} files reformatted, ${data.filesUnchanged} unchanged`);
|
|
105
|
+
}
|
|
106
|
+
return lines.join("\n");
|
|
107
|
+
}
|
|
108
|
+
export function compactPytestMap(data) {
|
|
109
|
+
return {
|
|
110
|
+
success: data.success,
|
|
111
|
+
passed: data.passed,
|
|
112
|
+
failed: data.failed,
|
|
113
|
+
errors: data.errors,
|
|
114
|
+
skipped: data.skipped,
|
|
115
|
+
total: data.total,
|
|
116
|
+
duration: data.duration,
|
|
117
|
+
failedTests: data.failures.map((f) => f.test),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function formatPytestCompact(data) {
|
|
121
|
+
if (data.total === 0)
|
|
122
|
+
return "pytest: no tests collected.";
|
|
123
|
+
const parts = [];
|
|
124
|
+
if (data.passed > 0)
|
|
125
|
+
parts.push(`${data.passed} passed`);
|
|
126
|
+
if (data.failed > 0)
|
|
127
|
+
parts.push(`${data.failed} failed`);
|
|
128
|
+
if (data.errors > 0)
|
|
129
|
+
parts.push(`${data.errors} errors`);
|
|
130
|
+
if (data.skipped > 0)
|
|
131
|
+
parts.push(`${data.skipped} skipped`);
|
|
132
|
+
const lines = [`pytest: ${parts.join(", ")} in ${data.duration}s`];
|
|
133
|
+
for (const t of data.failedTests) {
|
|
134
|
+
lines.push(` FAILED ${t}`);
|
|
135
|
+
}
|
|
136
|
+
return lines.join("\n");
|
|
137
|
+
}
|
|
138
|
+
export function compactMypyMap(data) {
|
|
139
|
+
return {
|
|
140
|
+
success: data.success,
|
|
141
|
+
total: data.total,
|
|
142
|
+
errors: data.errors,
|
|
143
|
+
warnings: data.warnings,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export function formatMypyCompact(data) {
|
|
147
|
+
if (data.success && data.total === 0)
|
|
148
|
+
return "mypy: no errors found.";
|
|
149
|
+
return `mypy: ${data.errors} errors, ${data.warnings} warnings/notes (${data.total} total)`;
|
|
150
|
+
}
|
|
151
|
+
export function compactRuffMap(data) {
|
|
152
|
+
return {
|
|
153
|
+
total: data.total,
|
|
154
|
+
fixable: data.fixable,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export function formatRuffCompact(data) {
|
|
158
|
+
if (data.total === 0)
|
|
159
|
+
return "ruff: no issues found.";
|
|
160
|
+
return `ruff: ${data.total} issues (${data.fixable} fixable)`;
|
|
161
|
+
}
|
|
162
|
+
export function compactBlackMap(data) {
|
|
163
|
+
return {
|
|
164
|
+
success: data.success,
|
|
165
|
+
filesChanged: data.filesChanged,
|
|
166
|
+
filesUnchanged: data.filesUnchanged,
|
|
167
|
+
filesChecked: data.filesChecked,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
export function formatBlackCompact(data) {
|
|
171
|
+
if (data.filesChecked === 0)
|
|
172
|
+
return "black: no Python files found.";
|
|
173
|
+
if (data.filesChanged === 0)
|
|
174
|
+
return `black: ${data.filesUnchanged} files already formatted.`;
|
|
175
|
+
return `black: ${data.filesChanged} reformatted, ${data.filesUnchanged} unchanged`;
|
|
176
|
+
}
|
|
177
|
+
export function compactPipInstallMap(data) {
|
|
178
|
+
return {
|
|
179
|
+
success: data.success,
|
|
180
|
+
total: data.total,
|
|
181
|
+
alreadySatisfied: data.alreadySatisfied,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function formatPipInstallCompact(data) {
|
|
185
|
+
if (data.alreadySatisfied && data.total === 0)
|
|
186
|
+
return "All requirements already satisfied.";
|
|
187
|
+
if (!data.success)
|
|
188
|
+
return "pip install failed.";
|
|
189
|
+
return `Installed ${data.total} packages.`;
|
|
190
|
+
}
|
|
191
|
+
export function compactPipAuditMap(data) {
|
|
192
|
+
return {
|
|
193
|
+
total: data.total,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
export function formatPipAuditCompact(data) {
|
|
197
|
+
if (data.total === 0)
|
|
198
|
+
return "No vulnerabilities found.";
|
|
199
|
+
return `${data.total} vulnerabilities found.`;
|
|
200
|
+
}
|
|
201
|
+
export function compactUvInstallMap(data) {
|
|
202
|
+
return {
|
|
203
|
+
success: data.success,
|
|
204
|
+
total: data.total,
|
|
205
|
+
duration: data.duration,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
export function formatUvInstallCompact(data) {
|
|
209
|
+
if (!data.success)
|
|
210
|
+
return "uv install failed.";
|
|
211
|
+
if (data.total === 0)
|
|
212
|
+
return "All requirements already satisfied.";
|
|
213
|
+
return `Installed ${data.total} packages in ${data.duration}s.`;
|
|
214
|
+
}
|
|
215
|
+
export function compactUvRunMap(data) {
|
|
216
|
+
return {
|
|
217
|
+
exitCode: data.exitCode,
|
|
218
|
+
success: data.success,
|
|
219
|
+
duration: data.duration,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
export function formatUvRunCompact(data) {
|
|
223
|
+
const status = data.success ? "completed" : `failed (exit ${data.exitCode})`;
|
|
224
|
+
return `uv run ${status} in ${data.duration}s`;
|
|
225
|
+
}
|
|
42
226
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/parsers.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
import type { PipInstall, MypyResult, RuffResult, PipAuditResult } from "../schemas/index.js";
|
|
1
|
+
import type { PipInstall, MypyResult, RuffResult, PipAuditResult, PytestResult, UvInstall, UvRun, BlackResult } from "../schemas/index.js";
|
|
2
|
+
/** Parses `pip install` output into structured data with installed packages and satisfaction status. */
|
|
2
3
|
export declare function parsePipInstall(stdout: string, stderr: string, exitCode: number): PipInstall;
|
|
4
|
+
/** Parses mypy type-checker output into structured diagnostics with file locations and error codes. */
|
|
3
5
|
export declare function parseMypyOutput(stdout: string, exitCode: number): MypyResult;
|
|
6
|
+
/** Parses `ruff check --output-format json` output into structured lint diagnostics with fixability info. */
|
|
4
7
|
export declare function parseRuffJson(stdout: string): RuffResult;
|
|
8
|
+
/** Parses `pip-audit --format json` output into structured vulnerability data with fix versions. */
|
|
5
9
|
export declare function parsePipAuditJson(stdout: string): PipAuditResult;
|
|
10
|
+
/** Parses pytest output into structured test results with pass/fail/error/skip counts and failure details. */
|
|
11
|
+
export declare function parsePytestOutput(stdout: string, stderr: string, exitCode: number): PytestResult;
|
|
12
|
+
/** Parses uv pip install output into structured data with installed packages. */
|
|
13
|
+
export declare function parseUvInstall(stdout: string, stderr: string, exitCode: number): UvInstall;
|
|
14
|
+
/** Parses uv run output into structured result with exit code, stdout, stderr. */
|
|
15
|
+
export declare function parseUvRun(stdout: string, stderr: string, exitCode: number, durationMs: number): UvRun;
|
|
16
|
+
/** Parses Black code formatter output into structured result with file counts. */
|
|
17
|
+
export declare function parseBlackOutput(stdout: string, stderr: string, exitCode: number): BlackResult;
|
|
6
18
|
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,UAAU,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,SAAS,EACT,KAAK,EACL,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAK7B,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAyB5F;AAID,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CA8B5E;AAED,6GAA6G;AAC7G,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAsBxD;AAWD,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAmBhE;AAqBD,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAsFhG;AAMD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAwB1F;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,KAAK,CAQP;AAOD,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAsD9F"}
|