@refrakt-md/cli 0.8.5 → 0.9.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.
- package/dist/bin.js +56 -98
- package/dist/bin.js.map +1 -1
- package/dist/commands/inspect.d.ts +2 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +50 -5
- package/dist/commands/inspect.js.map +1 -1
- package/dist/lib/dimension-audit.d.ts +48 -0
- package/dist/lib/dimension-audit.d.ts.map +1 -0
- package/dist/lib/dimension-audit.js +186 -0
- package/dist/lib/dimension-audit.js.map +1 -0
- package/dist/lib/format.d.ts +10 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +246 -2
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/meta-audit.d.ts +43 -0
- package/dist/lib/meta-audit.d.ts.map +1 -0
- package/dist/lib/meta-audit.js +116 -0
- package/dist/lib/meta-audit.js.map +1 -0
- package/package.json +6 -9
- package/dist/commands/extract.d.ts +0 -10
- package/dist/commands/extract.d.ts.map +0 -1
- package/dist/commands/extract.js +0 -161
- package/dist/commands/extract.js.map +0 -1
- package/dist/extractors/index.d.ts +0 -3
- package/dist/extractors/index.d.ts.map +0 -1
- package/dist/extractors/index.js +0 -17
- package/dist/extractors/index.js.map +0 -1
- package/dist/extractors/python-docstring.d.ts +0 -26
- package/dist/extractors/python-docstring.d.ts.map +0 -1
- package/dist/extractors/python-docstring.js +0 -396
- package/dist/extractors/python-docstring.js.map +0 -1
- package/dist/extractors/python.d.ts +0 -21
- package/dist/extractors/python.d.ts.map +0 -1
- package/dist/extractors/python.js +0 -560
- package/dist/extractors/python.js.map +0 -1
- package/dist/extractors/types.d.ts +0 -55
- package/dist/extractors/types.d.ts.map +0 -1
- package/dist/extractors/types.js +0 -2
- package/dist/extractors/types.js.map +0 -1
- package/dist/extractors/typescript.d.ts +0 -28
- package/dist/extractors/typescript.d.ts.map +0 -1
- package/dist/extractors/typescript.js +0 -566
- package/dist/extractors/typescript.js.map +0 -1
- package/dist/lib/layout-generator.d.ts +0 -8
- package/dist/lib/layout-generator.d.ts.map +0 -1
- package/dist/lib/layout-generator.js +0 -22
- package/dist/lib/layout-generator.js.map +0 -1
- package/dist/lib/symbol-generator.d.ts +0 -14
- package/dist/lib/symbol-generator.d.ts.map +0 -1
- package/dist/lib/symbol-generator.js +0 -201
- package/dist/lib/symbol-generator.js.map +0 -1
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Python docstring parser — supports Google, NumPy, and Sphinx (reST) conventions.
|
|
3
|
-
* Auto-detects the format and extracts parameters, returns, raises, since, and deprecated.
|
|
4
|
-
*/
|
|
5
|
-
// ── Detection ────────────────────────────────────────────────────────
|
|
6
|
-
const GOOGLE_SECTIONS = /^(Args|Arguments|Parameters|Returns?|Raises?|Yields?|Examples?|Notes?|Attributes|Todo|References):\s*$/m;
|
|
7
|
-
const NUMPY_SECTIONS = /^(Parameters|Returns?|Raises?|Yields?|See Also|Notes|References|Examples|Attributes)\s*\n-{3,}/m;
|
|
8
|
-
const SPHINX_DIRECTIVES = /:(param|type|returns?|rtype|raises?|var|ivar|cvar)[\s:]/;
|
|
9
|
-
export function detectStyle(raw) {
|
|
10
|
-
const text = dedent(raw);
|
|
11
|
-
if (NUMPY_SECTIONS.test(text))
|
|
12
|
-
return 'numpy';
|
|
13
|
-
if (SPHINX_DIRECTIVES.test(text))
|
|
14
|
-
return 'sphinx';
|
|
15
|
-
if (GOOGLE_SECTIONS.test(text))
|
|
16
|
-
return 'google';
|
|
17
|
-
return 'plain';
|
|
18
|
-
}
|
|
19
|
-
// ── Main entry ───────────────────────────────────────────────────────
|
|
20
|
-
export function parseDocstring(raw) {
|
|
21
|
-
const cleaned = dedent(raw);
|
|
22
|
-
const style = detectStyle(cleaned);
|
|
23
|
-
let info;
|
|
24
|
-
switch (style) {
|
|
25
|
-
case 'google':
|
|
26
|
-
info = parseGoogleDocstring(cleaned);
|
|
27
|
-
break;
|
|
28
|
-
case 'numpy':
|
|
29
|
-
info = parseNumpyDocstring(cleaned);
|
|
30
|
-
break;
|
|
31
|
-
case 'sphinx':
|
|
32
|
-
info = parseSphinxDocstring(cleaned);
|
|
33
|
-
break;
|
|
34
|
-
default:
|
|
35
|
-
info = parsePlainDocstring(cleaned);
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
// Extract reStructuredText directives from any style
|
|
39
|
-
extractRstDirectives(cleaned, info);
|
|
40
|
-
return info;
|
|
41
|
-
}
|
|
42
|
-
// ── RST directives (shared across all styles) ────────────────────────
|
|
43
|
-
function extractRstDirectives(raw, info) {
|
|
44
|
-
// .. versionadded:: X.Y
|
|
45
|
-
const sinceMatch = raw.match(/\.\.\s+versionadded::\s*(.+)/);
|
|
46
|
-
if (sinceMatch)
|
|
47
|
-
info.since = sinceMatch[1].trim();
|
|
48
|
-
// .. deprecated:: X.Y
|
|
49
|
-
const deprecatedMatch = raw.match(/\.\.\s+deprecated::\s*(.+)/);
|
|
50
|
-
if (deprecatedMatch)
|
|
51
|
-
info.deprecated = deprecatedMatch[1].trim();
|
|
52
|
-
}
|
|
53
|
-
// ── Plain ────────────────────────────────────────────────────────────
|
|
54
|
-
function parsePlainDocstring(raw) {
|
|
55
|
-
return {
|
|
56
|
-
description: raw.trim(),
|
|
57
|
-
params: new Map(),
|
|
58
|
-
raises: [],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// ── Google style ─────────────────────────────────────────────────────
|
|
62
|
-
function parseGoogleDocstring(raw) {
|
|
63
|
-
const info = { description: '', params: new Map(), raises: [] };
|
|
64
|
-
// Split into sections. Each section starts with a header like "Args:"
|
|
65
|
-
const sectionRe = /^(Args|Arguments|Parameters|Returns?|Raises?|Yields?|Examples?|Notes?|Attributes|Todo|References):\s*$/gm;
|
|
66
|
-
const sections = [];
|
|
67
|
-
let match;
|
|
68
|
-
while ((match = sectionRe.exec(raw)) !== null) {
|
|
69
|
-
sections.push({ name: match[1], headerStart: match.index, start: match.index + match[0].length, end: raw.length });
|
|
70
|
-
}
|
|
71
|
-
// Set end boundaries
|
|
72
|
-
for (let i = 0; i < sections.length - 1; i++) {
|
|
73
|
-
sections[i].end = sections[i + 1].headerStart;
|
|
74
|
-
}
|
|
75
|
-
// Description is everything before the first section (minus RST directives)
|
|
76
|
-
const descEnd = sections.length > 0 ? sections[0].headerStart : raw.length;
|
|
77
|
-
info.description = stripRstDirectives(raw.slice(0, descEnd)).trim();
|
|
78
|
-
for (const section of sections) {
|
|
79
|
-
const body = raw.slice(section.start, section.end);
|
|
80
|
-
const normalized = section.name.replace(/s$/, '').toLowerCase();
|
|
81
|
-
if (normalized === 'arg' || normalized === 'argument' || normalized === 'parameter') {
|
|
82
|
-
parseGoogleParams(body, info.params);
|
|
83
|
-
}
|
|
84
|
-
else if (normalized === 'return' || normalized === 'yield') {
|
|
85
|
-
info.returns = parseGoogleReturns(body);
|
|
86
|
-
}
|
|
87
|
-
else if (normalized === 'raise') {
|
|
88
|
-
parseGoogleRaises(body, info.raises);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return info;
|
|
92
|
-
}
|
|
93
|
-
function parseGoogleParams(body, params) {
|
|
94
|
-
// Pattern: " name (type): Description" or " name: Description"
|
|
95
|
-
const lines = body.split('\n');
|
|
96
|
-
let currentName = '';
|
|
97
|
-
let currentType = '';
|
|
98
|
-
let currentDesc = '';
|
|
99
|
-
for (const line of lines) {
|
|
100
|
-
// New param line: starts with indent + identifier
|
|
101
|
-
const paramMatch = line.match(/^\s{2,}(\*{0,2}\w+)\s*(?:\(([^)]+)\))?\s*:\s*(.*)/);
|
|
102
|
-
if (paramMatch) {
|
|
103
|
-
if (currentName) {
|
|
104
|
-
params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
|
|
105
|
-
}
|
|
106
|
-
currentName = paramMatch[1];
|
|
107
|
-
currentType = paramMatch[2] ?? '';
|
|
108
|
-
currentDesc = paramMatch[3] ?? '';
|
|
109
|
-
}
|
|
110
|
-
else if (currentName && line.match(/^\s{4,}/)) {
|
|
111
|
-
// Continuation line
|
|
112
|
-
currentDesc += ' ' + line.trim();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (currentName) {
|
|
116
|
-
params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function parseGoogleReturns(body) {
|
|
120
|
-
const lines = body.split('\n').filter(l => l.trim());
|
|
121
|
-
if (lines.length === 0)
|
|
122
|
-
return undefined;
|
|
123
|
-
// Pattern: " type: Description" or just " Description"
|
|
124
|
-
const first = lines[0].trim();
|
|
125
|
-
const typeMatch = first.match(/^(\S+)\s*:\s*(.*)/);
|
|
126
|
-
if (typeMatch) {
|
|
127
|
-
const desc = [typeMatch[2], ...lines.slice(1).map(l => l.trim())].join(' ').trim();
|
|
128
|
-
return { type: typeMatch[1], description: desc };
|
|
129
|
-
}
|
|
130
|
-
return { type: 'Any', description: lines.map(l => l.trim()).join(' ').trim() };
|
|
131
|
-
}
|
|
132
|
-
function parseGoogleRaises(body, raises) {
|
|
133
|
-
const lines = body.split('\n');
|
|
134
|
-
let currentType = '';
|
|
135
|
-
let currentDesc = '';
|
|
136
|
-
for (const line of lines) {
|
|
137
|
-
const raiseMatch = line.match(/^\s{2,}(\w+)\s*:\s*(.*)/);
|
|
138
|
-
if (raiseMatch) {
|
|
139
|
-
if (currentType) {
|
|
140
|
-
raises.push({ type: currentType, description: currentDesc.trim() });
|
|
141
|
-
}
|
|
142
|
-
currentType = raiseMatch[1];
|
|
143
|
-
currentDesc = raiseMatch[2] ?? '';
|
|
144
|
-
}
|
|
145
|
-
else if (currentType && line.match(/^\s{4,}/)) {
|
|
146
|
-
currentDesc += ' ' + line.trim();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (currentType) {
|
|
150
|
-
raises.push({ type: currentType, description: currentDesc.trim() });
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// ── NumPy style ──────────────────────────────────────────────────────
|
|
154
|
-
function parseNumpyDocstring(raw) {
|
|
155
|
-
const info = { description: '', params: new Map(), raises: [] };
|
|
156
|
-
// Split on sections delimited by underlined headers
|
|
157
|
-
const sectionRe = /^(\w[\w\s]*?)\s*\n(-{3,})\s*$/gm;
|
|
158
|
-
const sections = [];
|
|
159
|
-
let match;
|
|
160
|
-
while ((match = sectionRe.exec(raw)) !== null) {
|
|
161
|
-
const headerStart = match.index;
|
|
162
|
-
const bodyStart = match.index + match[0].length;
|
|
163
|
-
sections.push({ name: match[1].trim(), start: bodyStart, end: raw.length });
|
|
164
|
-
// Store headerStart for description extraction
|
|
165
|
-
if (sections.length === 1) {
|
|
166
|
-
info.description = stripRstDirectives(raw.slice(0, headerStart)).trim();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (sections.length === 0) {
|
|
170
|
-
info.description = stripRstDirectives(raw).trim();
|
|
171
|
-
return info;
|
|
172
|
-
}
|
|
173
|
-
// Set end boundaries
|
|
174
|
-
for (let i = 0; i < sections.length - 1; i++) {
|
|
175
|
-
// Find start of next section's header
|
|
176
|
-
const nextHeaderRe = new RegExp(`^${escapeRegex(sections[i + 1].name)}\\s*\\n-{3,}`, 'm');
|
|
177
|
-
const nextMatch = raw.slice(sections[i].start).match(nextHeaderRe);
|
|
178
|
-
if (nextMatch) {
|
|
179
|
-
sections[i].end = sections[i].start + nextMatch.index;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
for (const section of sections) {
|
|
183
|
-
const body = raw.slice(section.start, section.end);
|
|
184
|
-
const normalized = section.name.replace(/s$/, '').toLowerCase();
|
|
185
|
-
if (normalized === 'parameter') {
|
|
186
|
-
parseNumpyParams(body, info.params);
|
|
187
|
-
}
|
|
188
|
-
else if (normalized === 'return' || normalized === 'yield') {
|
|
189
|
-
info.returns = parseNumpyReturns(body);
|
|
190
|
-
}
|
|
191
|
-
else if (normalized === 'raise') {
|
|
192
|
-
parseNumpyRaises(body, info.raises);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return info;
|
|
196
|
-
}
|
|
197
|
-
function parseNumpyParams(body, params) {
|
|
198
|
-
// Pattern: "name : type\n Description" or "name : type, optional\n Description"
|
|
199
|
-
const lines = body.split('\n');
|
|
200
|
-
let currentName = '';
|
|
201
|
-
let currentType = '';
|
|
202
|
-
let currentDesc = '';
|
|
203
|
-
for (const line of lines) {
|
|
204
|
-
const paramMatch = line.match(/^(\*{0,2}\w+)\s*:\s*(.*)/);
|
|
205
|
-
if (paramMatch && !line.match(/^\s/)) {
|
|
206
|
-
if (currentName) {
|
|
207
|
-
params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
|
|
208
|
-
}
|
|
209
|
-
currentName = paramMatch[1];
|
|
210
|
-
currentType = paramMatch[2].replace(/,?\s*optional\s*$/, '').trim() || 'Any';
|
|
211
|
-
currentDesc = '';
|
|
212
|
-
}
|
|
213
|
-
else if (currentName && line.match(/^\s{2,}/)) {
|
|
214
|
-
currentDesc += (currentDesc ? ' ' : '') + line.trim();
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (currentName) {
|
|
218
|
-
params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
function parseNumpyReturns(body) {
|
|
222
|
-
const lines = body.split('\n');
|
|
223
|
-
let type = 'Any';
|
|
224
|
-
let desc = '';
|
|
225
|
-
for (const line of lines) {
|
|
226
|
-
const typeMatch = line.match(/^(\S+)\s*$/);
|
|
227
|
-
if (typeMatch && !line.match(/^\s/) && !desc) {
|
|
228
|
-
type = typeMatch[1];
|
|
229
|
-
}
|
|
230
|
-
else if (line.match(/^\s{2,}/)) {
|
|
231
|
-
desc += (desc ? ' ' : '') + line.trim();
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if (!type && !desc)
|
|
235
|
-
return undefined;
|
|
236
|
-
return { type, description: desc.trim() };
|
|
237
|
-
}
|
|
238
|
-
function parseNumpyRaises(body, raises) {
|
|
239
|
-
const lines = body.split('\n');
|
|
240
|
-
let currentType = '';
|
|
241
|
-
let currentDesc = '';
|
|
242
|
-
for (const line of lines) {
|
|
243
|
-
const typeMatch = line.match(/^(\w+)\s*$/);
|
|
244
|
-
if (typeMatch && !line.match(/^\s/)) {
|
|
245
|
-
if (currentType) {
|
|
246
|
-
raises.push({ type: currentType, description: currentDesc.trim() });
|
|
247
|
-
}
|
|
248
|
-
currentType = typeMatch[1];
|
|
249
|
-
currentDesc = '';
|
|
250
|
-
}
|
|
251
|
-
else if (currentType && line.match(/^\s{2,}/)) {
|
|
252
|
-
currentDesc += (currentDesc ? ' ' : '') + line.trim();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
if (currentType) {
|
|
256
|
-
raises.push({ type: currentType, description: currentDesc.trim() });
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
// ── Sphinx/reST style ────────────────────────────────────────────────
|
|
260
|
-
function parseSphinxDocstring(raw) {
|
|
261
|
-
const info = { description: '', params: new Map(), raises: [] };
|
|
262
|
-
const lines = raw.split('\n');
|
|
263
|
-
const descLines = [];
|
|
264
|
-
let foundDirective = false;
|
|
265
|
-
// Temporary storage for :type: merging
|
|
266
|
-
const paramTypes = new Map();
|
|
267
|
-
let returnDesc = '';
|
|
268
|
-
let returnType = '';
|
|
269
|
-
for (let i = 0; i < lines.length; i++) {
|
|
270
|
-
const line = lines[i];
|
|
271
|
-
// :param name: description
|
|
272
|
-
const paramMatch = line.match(/^\s*:param\s+(\w+)\s*:\s*(.*)/);
|
|
273
|
-
if (paramMatch) {
|
|
274
|
-
foundDirective = true;
|
|
275
|
-
const name = paramMatch[1];
|
|
276
|
-
let desc = paramMatch[2];
|
|
277
|
-
// Collect continuation lines
|
|
278
|
-
while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
|
|
279
|
-
i++;
|
|
280
|
-
desc += ' ' + lines[i].trim();
|
|
281
|
-
}
|
|
282
|
-
const existing = info.params.get(name);
|
|
283
|
-
info.params.set(name, {
|
|
284
|
-
type: existing?.type ?? 'Any',
|
|
285
|
-
description: desc.trim(),
|
|
286
|
-
});
|
|
287
|
-
continue;
|
|
288
|
-
}
|
|
289
|
-
// :type name: type
|
|
290
|
-
const typeMatch = line.match(/^\s*:type\s+(\w+)\s*:\s*(.*)/);
|
|
291
|
-
if (typeMatch) {
|
|
292
|
-
foundDirective = true;
|
|
293
|
-
paramTypes.set(typeMatch[1], typeMatch[2].trim());
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
// :returns: / :return: description
|
|
297
|
-
const returnMatch = line.match(/^\s*:returns?\s*:\s*(.*)/);
|
|
298
|
-
if (returnMatch) {
|
|
299
|
-
foundDirective = true;
|
|
300
|
-
returnDesc = returnMatch[1];
|
|
301
|
-
while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
|
|
302
|
-
i++;
|
|
303
|
-
returnDesc += ' ' + lines[i].trim();
|
|
304
|
-
}
|
|
305
|
-
continue;
|
|
306
|
-
}
|
|
307
|
-
// :rtype: type
|
|
308
|
-
const rtypeMatch = line.match(/^\s*:rtype\s*:\s*(.*)/);
|
|
309
|
-
if (rtypeMatch) {
|
|
310
|
-
foundDirective = true;
|
|
311
|
-
returnType = rtypeMatch[1].trim();
|
|
312
|
-
continue;
|
|
313
|
-
}
|
|
314
|
-
// :raises Type: description
|
|
315
|
-
const raiseMatch = line.match(/^\s*:raises?\s+(\w+)\s*:\s*(.*)/);
|
|
316
|
-
if (raiseMatch) {
|
|
317
|
-
foundDirective = true;
|
|
318
|
-
let desc = raiseMatch[2];
|
|
319
|
-
while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
|
|
320
|
-
i++;
|
|
321
|
-
desc += ' ' + lines[i].trim();
|
|
322
|
-
}
|
|
323
|
-
info.raises.push({ type: raiseMatch[1], description: desc.trim() });
|
|
324
|
-
continue;
|
|
325
|
-
}
|
|
326
|
-
// RST directives (.. versionadded, .. deprecated) are handled by extractRstDirectives
|
|
327
|
-
if (line.match(/^\s*\.\.\s+(versionadded|deprecated)::/)) {
|
|
328
|
-
foundDirective = true;
|
|
329
|
-
continue;
|
|
330
|
-
}
|
|
331
|
-
if (!foundDirective) {
|
|
332
|
-
descLines.push(line);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
info.description = stripRstDirectives(descLines.join('\n')).trim();
|
|
336
|
-
// Merge :type: into :param:
|
|
337
|
-
for (const [name, type] of paramTypes) {
|
|
338
|
-
const existing = info.params.get(name);
|
|
339
|
-
if (existing) {
|
|
340
|
-
existing.type = type;
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
info.params.set(name, { type, description: '' });
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
// Set returns
|
|
347
|
-
if (returnDesc || returnType) {
|
|
348
|
-
info.returns = { type: returnType || 'Any', description: returnDesc.trim() };
|
|
349
|
-
}
|
|
350
|
-
return info;
|
|
351
|
-
}
|
|
352
|
-
// ── Helpers ──────────────────────────────────────────────────────────
|
|
353
|
-
function stripRstDirectives(text) {
|
|
354
|
-
return text
|
|
355
|
-
.replace(/\.\.\s+versionadded::\s*.+(\n\s+.*)*/g, '')
|
|
356
|
-
.replace(/\.\.\s+deprecated::\s*.+(\n\s+.*)*/g, '')
|
|
357
|
-
.trim();
|
|
358
|
-
}
|
|
359
|
-
function escapeRegex(s) {
|
|
360
|
-
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
361
|
-
}
|
|
362
|
-
/**
|
|
363
|
-
* Remove common leading whitespace from all lines (Python's `inspect.cleandoc` equivalent).
|
|
364
|
-
* The first line is treated specially: its leading whitespace is stripped independently.
|
|
365
|
-
*/
|
|
366
|
-
function dedent(text) {
|
|
367
|
-
const lines = text.split('\n');
|
|
368
|
-
// First line: strip leading whitespace
|
|
369
|
-
const firstLine = lines[0].trimStart();
|
|
370
|
-
if (lines.length === 1)
|
|
371
|
-
return firstLine;
|
|
372
|
-
// Find minimum indentation of non-empty lines after the first
|
|
373
|
-
let minIndent = Infinity;
|
|
374
|
-
for (let i = 1; i < lines.length; i++) {
|
|
375
|
-
const line = lines[i];
|
|
376
|
-
if (line.trim().length === 0)
|
|
377
|
-
continue;
|
|
378
|
-
const indent = line.match(/^\s*/)[0].length;
|
|
379
|
-
if (indent < minIndent)
|
|
380
|
-
minIndent = indent;
|
|
381
|
-
}
|
|
382
|
-
if (!isFinite(minIndent))
|
|
383
|
-
minIndent = 0;
|
|
384
|
-
// Strip common indentation
|
|
385
|
-
const dedented = [firstLine];
|
|
386
|
-
for (let i = 1; i < lines.length; i++) {
|
|
387
|
-
dedented.push(lines[i].slice(minIndent));
|
|
388
|
-
}
|
|
389
|
-
// Remove leading/trailing blank lines
|
|
390
|
-
while (dedented.length > 0 && dedented[0].trim() === '')
|
|
391
|
-
dedented.shift();
|
|
392
|
-
while (dedented.length > 0 && dedented[dedented.length - 1].trim() === '')
|
|
393
|
-
dedented.pop();
|
|
394
|
-
return dedented.join('\n');
|
|
395
|
-
}
|
|
396
|
-
//# sourceMappingURL=python-docstring.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-docstring.js","sourceRoot":"","sources":["../../src/extractors/python-docstring.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { SymbolExtractor, ExtractorResult } from './types.js';
|
|
2
|
-
export declare class PythonExtractor implements SymbolExtractor {
|
|
3
|
-
private rootDir;
|
|
4
|
-
private sourceUrl?;
|
|
5
|
-
private parser;
|
|
6
|
-
private initialized;
|
|
7
|
-
constructor(rootDir: string, sourceUrl?: string);
|
|
8
|
-
init(): Promise<void>;
|
|
9
|
-
extractFile(filePath: string): ExtractorResult;
|
|
10
|
-
private extractAllList;
|
|
11
|
-
private isExported;
|
|
12
|
-
private extractFunction;
|
|
13
|
-
private extractClass;
|
|
14
|
-
private extractEnumMembers;
|
|
15
|
-
private extractClassMembers;
|
|
16
|
-
private extractMethodMember;
|
|
17
|
-
private extractPropertyMember;
|
|
18
|
-
private mergeParamDocs;
|
|
19
|
-
private buildSourceUrl;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=python.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/extractors/python.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEsB,eAAe,EAAE,eAAe,EACjE,MAAM,YAAY,CAAC;AA+QpB,qBAAa,eAAgB,YAAW,eAAe;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAKzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IA2C9C,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,mBAAmB;IA8C3B,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,cAAc;CAKtB"}
|