@know-graph/core 0.4.0 → 0.4.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"python-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAoTzC,wBAAgB,kBAAkB,IAAI,MAAM,CAkE3C"}
|
|
@@ -76,9 +76,75 @@ function collectDecorators(content, defLineNumber) {
|
|
|
76
76
|
}
|
|
77
77
|
return decorators;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Regex to match the closing line of a multi-line def/class: just `):` or `) -> type:`
|
|
81
|
+
*/
|
|
82
|
+
const MULTILINE_CLOSE_REGEX = /^\s*\)(?:\s*->\s*([^:]+))?:\s*$/;
|
|
83
|
+
/**
|
|
84
|
+
* Regex to match the opening of a multi-line function definition.
|
|
85
|
+
*/
|
|
86
|
+
const MULTILINE_FUNC_OPEN_REGEX = /^(\s*)(?:async\s+)?def\s+(\w+)\(/;
|
|
87
|
+
/**
|
|
88
|
+
* Regex to match the opening of a multi-line class definition.
|
|
89
|
+
*/
|
|
90
|
+
const MULTILINE_CLASS_OPEN_REGEX = /^(\s*)class\s+(\w+)\(/;
|
|
91
|
+
function findMultiLineDefinition(content, closeLineNumber) {
|
|
92
|
+
const lines = content.split('\n');
|
|
93
|
+
const closeLine = lines[closeLineNumber - 1] ?? '';
|
|
94
|
+
const closeMatch = closeLine.match(MULTILINE_CLOSE_REGEX);
|
|
95
|
+
if (!closeMatch)
|
|
96
|
+
return null;
|
|
97
|
+
const returnType = closeMatch[1]?.trim();
|
|
98
|
+
// Scan upward to find the opening line with `def` or `class`
|
|
99
|
+
for (let i = closeLineNumber - 2; i >= 0; i--) {
|
|
100
|
+
const line = lines[i];
|
|
101
|
+
if (line === undefined)
|
|
102
|
+
continue;
|
|
103
|
+
const funcMatch = line.match(MULTILINE_FUNC_OPEN_REGEX);
|
|
104
|
+
if (funcMatch) {
|
|
105
|
+
const indent = funcMatch[1];
|
|
106
|
+
const name = funcMatch[2];
|
|
107
|
+
const defLine = i + 1;
|
|
108
|
+
const decorators = collectDecorators(content, defLine);
|
|
109
|
+
// Collect full params from opening to closing line
|
|
110
|
+
const paramLines = lines.slice(i, closeLineNumber).join('\n');
|
|
111
|
+
const paramMatch = paramLines.match(/\(([^)]*)\)/s);
|
|
112
|
+
const params = paramMatch ? paramMatch[1].trim() : '';
|
|
113
|
+
const signatureParts = [`def ${name}(${params})`];
|
|
114
|
+
if (returnType) {
|
|
115
|
+
signatureParts.push(` -> ${returnType}`);
|
|
116
|
+
}
|
|
117
|
+
const isMethod = (indent?.length ?? 0) > 0;
|
|
118
|
+
const parent = isMethod
|
|
119
|
+
? findEnclosingClass(content, defLine)
|
|
120
|
+
: undefined;
|
|
121
|
+
return {
|
|
122
|
+
name,
|
|
123
|
+
kind: isMethod && parent ? 'method' : 'function',
|
|
124
|
+
signature: signatureParts.join(''),
|
|
125
|
+
parent,
|
|
126
|
+
line: defLine,
|
|
127
|
+
decorators,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const classMatch = line.match(MULTILINE_CLASS_OPEN_REGEX);
|
|
131
|
+
if (classMatch) {
|
|
132
|
+
const name = classMatch[2];
|
|
133
|
+
const defLine = i + 1;
|
|
134
|
+
const decorators = collectDecorators(content, defLine);
|
|
135
|
+
return {
|
|
136
|
+
name,
|
|
137
|
+
kind: 'class',
|
|
138
|
+
line: defLine,
|
|
139
|
+
decorators,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
79
145
|
function findDefinitionBefore(content, docstringStartLine) {
|
|
80
146
|
const lineAbove = getLineAt(content, docstringStartLine - 1);
|
|
81
|
-
// Check if it's a function/method definition
|
|
147
|
+
// Check if it's a function/method definition (single-line)
|
|
82
148
|
const funcMatch = lineAbove.match(FUNC_DEF_REGEX);
|
|
83
149
|
if (funcMatch) {
|
|
84
150
|
const indent = funcMatch[1];
|
|
@@ -106,7 +172,7 @@ function findDefinitionBefore(content, docstringStartLine) {
|
|
|
106
172
|
decorators,
|
|
107
173
|
};
|
|
108
174
|
}
|
|
109
|
-
// Check if it's a class definition
|
|
175
|
+
// Check if it's a class definition (single-line)
|
|
110
176
|
const classMatch = lineAbove.match(CLASS_DEF_REGEX);
|
|
111
177
|
if (classMatch) {
|
|
112
178
|
const name = classMatch[2];
|
|
@@ -119,6 +185,11 @@ function findDefinitionBefore(content, docstringStartLine) {
|
|
|
119
185
|
decorators,
|
|
120
186
|
};
|
|
121
187
|
}
|
|
188
|
+
// Check if it's the closing line of a multi-line def/class
|
|
189
|
+
const multiLineDef = findMultiLineDefinition(content, docstringStartLine - 1);
|
|
190
|
+
if (multiLineDef) {
|
|
191
|
+
return multiLineDef;
|
|
192
|
+
}
|
|
122
193
|
return null;
|
|
123
194
|
}
|
|
124
195
|
function findEnclosingClass(content, lineNumber) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-parser.js","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAEnD;;;GAGG;AACH,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D;;GAEG;AACH,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAE/D;;GAEG;AACH,MAAM,cAAc,GAClB,gEAAgE,CAAC;AAEnE;;GAEG;AACH,MAAM,eAAe,GAAG,YAAY,CAAC;AAkBrC,SAAS,aAAa,CAAC,MAAc,EAAE,SAAiB;IACtD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,KAA6B,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,SAAS;YACT,OAAO;YACP,UAAU,EAAE,KAAK,CAAC,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,UAAkB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAe,EACf,aAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,6BAA6B;IAE9D,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAe,EACf,kBAA0B;IAE1B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAE7D,
|
|
1
|
+
{"version":3,"file":"python-parser.js","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"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"}
|