fork of hey-api/openapi-ts because I need some additional things
1import type { PyNode as _PyNode, PyNodeBase as _PyNodeBase } from './nodes/base';
2import type {
3 PyComprehension as _PyComprehension,
4 PyComprehensionNode as _PyComprehensionNode,
5} from './nodes/comprehension';
6import type { PyClassDeclaration as _PyClassDeclaration } from './nodes/declarations/class';
7import type { PyFunctionDeclaration as _PyFunctionDeclaration } from './nodes/declarations/function';
8import type { PyFunctionParameter as _PyFunctionParameter } from './nodes/declarations/functionParameter';
9import type { PyExpression as _PyExpression } from './nodes/expression';
10import type { PyAsyncExpression as _PyAsyncExpression } from './nodes/expressions/async';
11import type { PyAwaitExpression as _PyAwaitExpression } from './nodes/expressions/await';
12import type {
13 PyBinaryExpression as _PyBinaryExpression,
14 PyBinaryOperator as _PyBinaryOperator,
15} from './nodes/expressions/binary';
16import type { PyCallExpression as _PyCallExpression } from './nodes/expressions/call';
17import type { PyDictComprehension as _PyDictComprehension } from './nodes/expressions/comprehensions/dict';
18import type { PyListComprehension as _PyListComprehension } from './nodes/expressions/comprehensions/list';
19import type { PySetComprehension as _PySetComprehension } from './nodes/expressions/comprehensions/set';
20import type { PyDictExpression as _PyDictExpression } from './nodes/expressions/dict';
21import type { PyFStringExpression as _PyFStringExpression } from './nodes/expressions/fString';
22import type { PyGeneratorExpression as _PyGeneratorExpression } from './nodes/expressions/generator';
23import type { PyIdentifier as _PyIdentifier } from './nodes/expressions/identifier';
24import type { PyKeywordArgument as _PyKeywordArgument } from './nodes/expressions/keywordArg';
25import type { PyLambdaExpression as _PyLambdaExpression } from './nodes/expressions/lambda';
26import type { PyListExpression as _PyListExpression } from './nodes/expressions/list';
27import type {
28 PyLiteral as _PyLiteral,
29 PyLiteralValue as _PyLiteralValue,
30} from './nodes/expressions/literal';
31import type { PyMemberExpression as _PyMemberExpression } from './nodes/expressions/member';
32import type { PySetExpression as _PySetExpression } from './nodes/expressions/set';
33import type { PySubscriptExpression as _PySubscriptExpression } from './nodes/expressions/subscript';
34import type { PySubscriptSlice as _PySubscriptSlice } from './nodes/expressions/subscript-slice';
35import type { PyTupleExpression as _PyTupleExpression } from './nodes/expressions/tuple';
36import type { PyYieldExpression as _PyYieldExpression } from './nodes/expressions/yield';
37import type { PyYieldFromExpression as _PyYieldFromExpression } from './nodes/expressions/yieldFrom';
38import { factory } from './nodes/factory';
39import { PyNodeKind } from './nodes/kinds';
40import type { PyStatement as _PyStatement } from './nodes/statement';
41import type { PyAssignment as _PyAssignment } from './nodes/statements/assignment';
42import type {
43 PyAugmentedAssignment as _PyAugmentedAssignment,
44 PyAugmentedOperator as _PyAugmentedOperator,
45} from './nodes/statements/augmentedAssignment';
46import type { PyBlock as _PyBlock } from './nodes/statements/block';
47import type { PyBreakStatement as _PyBreakStatement } from './nodes/statements/break';
48import type { PyContinueStatement as _PyContinueStatement } from './nodes/statements/continue';
49import type { PyEmptyStatement as _PyEmptyStatement } from './nodes/statements/empty';
50import type { PyExceptClause as _PyExceptClause } from './nodes/statements/except';
51import type { PyExpressionStatement as _PyExpressionStatement } from './nodes/statements/expression';
52import type { PyForStatement as _PyForStatement } from './nodes/statements/for';
53import type { PyIfStatement as _PyIfStatement } from './nodes/statements/if';
54import type { PyImportStatement as _PyImportStatement } from './nodes/statements/import';
55import type { PyRaiseStatement as _PyRaiseStatement } from './nodes/statements/raise';
56import type { PyReturnStatement as _PyReturnStatement } from './nodes/statements/return';
57import type { PyTryStatement as _PyTryStatement } from './nodes/statements/try';
58import type { PyWhileStatement as _PyWhileStatement } from './nodes/statements/while';
59import type { PyWithStatement as _PyWithStatement } from './nodes/statements/with';
60import type { PyWithItem as _PyWithItem } from './nodes/statements/withItem';
61import type { PyComment as _PyComment } from './nodes/structure/comment';
62import type { PySourceFile as _PySourceFile } from './nodes/structure/sourceFile';
63import type { PyPrinterOptions as _PyPrinterOptions } from './printer';
64import { createPrinter, printAst } from './printer';
65
66// eslint-disable-next-line @typescript-eslint/no-namespace
67export namespace py {
68 // Base / Core
69 export type Node = _PyNode;
70 export type NodeBase = _PyNodeBase;
71 export type NodeKind = PyNodeKind;
72 export type Expression = _PyExpression;
73 export type Statement = _PyStatement;
74
75 // Structure
76 export type SourceFile = _PySourceFile;
77 export type Comment = _PyComment;
78
79 // Declarations
80 export type ClassDeclaration = _PyClassDeclaration;
81 export type FunctionDeclaration = _PyFunctionDeclaration;
82 export type FunctionParameter = _PyFunctionParameter;
83
84 // Statements
85 export type Assignment = _PyAssignment;
86 export type AugmentedAssignment = _PyAugmentedAssignment;
87 export type AugmentedOperator = _PyAugmentedOperator;
88 export type Block = _PyBlock;
89 export type BreakStatement = _PyBreakStatement;
90 export type ContinueStatement = _PyContinueStatement;
91 export type EmptyStatement = _PyEmptyStatement;
92 export type ExceptClause = _PyExceptClause;
93 export type ExpressionStatement = _PyExpressionStatement;
94 export type ForStatement = _PyForStatement;
95 export type IfStatement = _PyIfStatement;
96 export type ImportStatement = _PyImportStatement;
97 export type RaiseStatement = _PyRaiseStatement;
98 export type ReturnStatement = _PyReturnStatement;
99 export type TryStatement = _PyTryStatement;
100 export type WhileStatement = _PyWhileStatement;
101 export type WithItem = _PyWithItem;
102 export type WithStatement = _PyWithStatement;
103
104 // Expressions
105 export type AsyncExpression = _PyAsyncExpression;
106 export type AwaitExpression = _PyAwaitExpression;
107 export type BinaryExpression = _PyBinaryExpression;
108 export type BinaryOperator = _PyBinaryOperator;
109 export type CallExpression = _PyCallExpression;
110 export type DictExpression = _PyDictExpression;
111 export type FStringExpression = _PyFStringExpression;
112 export type GeneratorExpression = _PyGeneratorExpression;
113 export type Identifier = _PyIdentifier;
114 export type KeywordArgument = _PyKeywordArgument;
115 export type LambdaExpression = _PyLambdaExpression;
116 export type ListExpression = _PyListExpression;
117 export type Literal = _PyLiteral;
118 export type MemberExpression = _PyMemberExpression;
119 export type SetExpression = _PySetExpression;
120 export type SubscriptExpression = _PySubscriptExpression;
121 export type SubscriptSlice = _PySubscriptSlice;
122 export type TupleExpression = _PyTupleExpression;
123 export type YieldExpression = _PyYieldExpression;
124 export type YieldFromExpression = _PyYieldFromExpression;
125
126 // Comprehensions
127 export type Comprehension = _PyComprehension;
128 export type ComprehensionNode = _PyComprehensionNode;
129 export type DictComprehension = _PyDictComprehension;
130 export type ListComprehension = _PyListComprehension;
131 export type SetComprehension = _PySetComprehension;
132
133 // Printer
134 export type PrinterOptions = _PyPrinterOptions;
135
136 // Miscellaneous
137 export type LiteralValue = _PyLiteralValue;
138}
139
140export const py = {
141 PyNodeKind,
142 createPrinter,
143 factory,
144 printAst,
145} as const;