@generaltranslation/python-extractor 0.2.15 → 0.2.17
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/dist/index.js +16 -1
- package/dist/parser.js +26 -3
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,19 @@ import { extractImports } from './extractImports.js';
|
|
|
3
3
|
import { extractCalls } from './extractCalls.js';
|
|
4
4
|
export { PYTHON_GT_PACKAGES, PYTHON_GT_DEPENDENCIES, PYTHON_T_FUNCTION, PYTHON_MSG_FUNCTION, PYTHON_DERIVE, PYTHON_DECLARE_STATIC, PYTHON_DECLARE_VAR, PYTHON_TRANSLATION_FUNCTIONS, PYTHON_METADATA_KWARGS, } from './constants.js';
|
|
5
5
|
export async function extractFromPythonSource(sourceCode, filePath) {
|
|
6
|
-
|
|
6
|
+
let parser;
|
|
7
|
+
try {
|
|
8
|
+
parser = await getParser();
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
return {
|
|
12
|
+
results: [],
|
|
13
|
+
errors: [],
|
|
14
|
+
warnings: [
|
|
15
|
+
`${filePath}: Failed to initialize Python parser; skipping Python extraction. ${formatError(error)}`,
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
7
19
|
const tree = parser.parse(sourceCode);
|
|
8
20
|
if (!tree) {
|
|
9
21
|
return {
|
|
@@ -40,3 +52,6 @@ export async function extractFromPythonSource(sourceCode, filePath) {
|
|
|
40
52
|
function prefixErrors(messages, filePath) {
|
|
41
53
|
return messages.map((msg) => `${filePath}: ${msg}`);
|
|
42
54
|
}
|
|
55
|
+
function formatError(error) {
|
|
56
|
+
return error instanceof Error ? error.message : String(error);
|
|
57
|
+
}
|
package/dist/parser.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Parser, Language } from 'web-tree-sitter';
|
|
2
2
|
import { createRequire } from 'module';
|
|
3
3
|
let parserPromise = null;
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const isBun = typeof process !== 'undefined' && !!process.versions.bun;
|
|
4
6
|
/**
|
|
5
7
|
* Lazily initializes and returns a singleton tree-sitter Parser
|
|
6
8
|
* configured for Python.
|
|
@@ -12,11 +14,32 @@ export function getParser() {
|
|
|
12
14
|
return parserPromise;
|
|
13
15
|
}
|
|
14
16
|
async function initParser() {
|
|
15
|
-
await
|
|
17
|
+
const parserWasmPath = await resolveWasmPath('web-tree-sitter/web-tree-sitter.wasm');
|
|
18
|
+
await Parser.init({
|
|
19
|
+
locateFile(path) {
|
|
20
|
+
if (path === 'web-tree-sitter.wasm') {
|
|
21
|
+
return parserWasmPath;
|
|
22
|
+
}
|
|
23
|
+
return path;
|
|
24
|
+
},
|
|
25
|
+
});
|
|
16
26
|
const parser = new Parser();
|
|
17
|
-
const
|
|
18
|
-
const wasmPath = require.resolve('tree-sitter-python/tree-sitter-python.wasm');
|
|
27
|
+
const wasmPath = await resolveWasmPath('tree-sitter-python/tree-sitter-python.wasm');
|
|
19
28
|
const Python = await Language.load(wasmPath);
|
|
20
29
|
parser.setLanguage(Python);
|
|
21
30
|
return parser;
|
|
22
31
|
}
|
|
32
|
+
async function resolveWasmPath(specifier) {
|
|
33
|
+
if (!isBun) {
|
|
34
|
+
return require.resolve(specifier);
|
|
35
|
+
}
|
|
36
|
+
switch (specifier) {
|
|
37
|
+
case 'web-tree-sitter/web-tree-sitter.wasm':
|
|
38
|
+
return (await import('web-tree-sitter/web-tree-sitter.wasm')).default;
|
|
39
|
+
case 'tree-sitter-python/tree-sitter-python.wasm':
|
|
40
|
+
return (await import('tree-sitter-python/tree-sitter-python.wasm'))
|
|
41
|
+
.default;
|
|
42
|
+
default:
|
|
43
|
+
throw new Error(`Unknown WASM specifier for Bun: ${specifier}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@generaltranslation/python-extractor",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"description": "Python source code extraction for General Translation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"tree-sitter-python": "^0.25.0",
|
|
49
49
|
"web-tree-sitter": "^0.26.6",
|
|
50
|
-
"generaltranslation": "8.2.
|
|
50
|
+
"generaltranslation": "8.2.11"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"build": "tsc",
|