@alloy-js/python 0.4.0-dev.3 → 0.4.0-dev.5

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.
Files changed (253) hide show
  1. package/dist/dev/src/builtins/python.js +30 -0
  2. package/dist/dev/src/builtins/python.js.map +1 -0
  3. package/dist/dev/src/components/Atom.js +122 -0
  4. package/dist/dev/src/components/Atom.js.map +1 -0
  5. package/dist/dev/src/components/CallSignature.js +195 -0
  6. package/dist/dev/src/components/CallSignature.js.map +1 -0
  7. package/dist/dev/src/components/ClassDeclaration.js +112 -0
  8. package/dist/dev/src/components/ClassDeclaration.js.map +1 -0
  9. package/dist/dev/src/components/ClassInstantiation.js +40 -0
  10. package/dist/dev/src/components/ClassInstantiation.js.map +1 -0
  11. package/dist/dev/src/components/ClassMethodDeclaration.js +40 -0
  12. package/dist/dev/src/components/ClassMethodDeclaration.js.map +1 -0
  13. package/dist/dev/src/components/ConstructorDeclaration.js +39 -0
  14. package/dist/dev/src/components/ConstructorDeclaration.js.map +1 -0
  15. package/dist/dev/src/components/DataclassDeclaration.js +177 -0
  16. package/dist/dev/src/components/DataclassDeclaration.js.map +1 -0
  17. package/dist/dev/src/components/Declaration.js +31 -0
  18. package/dist/dev/src/components/Declaration.js.map +1 -0
  19. package/dist/dev/src/components/DunderMethodDeclaration.js +33 -0
  20. package/dist/dev/src/components/DunderMethodDeclaration.js.map +1 -0
  21. package/dist/dev/src/components/EnumDeclaration.js +259 -0
  22. package/dist/dev/src/components/EnumDeclaration.js.map +1 -0
  23. package/dist/dev/src/components/EnumMember.js +95 -0
  24. package/dist/dev/src/components/EnumMember.js.map +1 -0
  25. package/dist/dev/src/components/FunctionBase.js +130 -0
  26. package/dist/dev/src/components/FunctionBase.js.map +1 -0
  27. package/dist/dev/src/components/FunctionCallExpression.js +53 -0
  28. package/dist/dev/src/components/FunctionCallExpression.js.map +1 -0
  29. package/dist/dev/src/components/FunctionDeclaration.js +45 -0
  30. package/dist/dev/src/components/FunctionDeclaration.js.map +1 -0
  31. package/dist/dev/src/components/FutureStatement.js +31 -0
  32. package/dist/dev/src/components/FutureStatement.js.map +1 -0
  33. package/dist/dev/src/components/ImportStatement.js +167 -0
  34. package/dist/dev/src/components/ImportStatement.js.map +1 -0
  35. package/dist/dev/src/components/LexicalScope.js +26 -0
  36. package/dist/dev/src/components/LexicalScope.js.map +1 -0
  37. package/dist/dev/src/components/MemberExpression.js +290 -0
  38. package/dist/dev/src/components/MemberExpression.js.map +1 -0
  39. package/dist/dev/src/components/MemberScope.js +23 -0
  40. package/dist/dev/src/components/MemberScope.js.map +1 -0
  41. package/dist/dev/src/components/MethodBase.js +40 -0
  42. package/dist/dev/src/components/MethodBase.js.map +1 -0
  43. package/dist/dev/src/components/MethodDeclaration.js +38 -0
  44. package/dist/dev/src/components/MethodDeclaration.js.map +1 -0
  45. package/dist/dev/src/components/PropertyDeclaration.js +287 -0
  46. package/dist/dev/src/components/PropertyDeclaration.js.map +1 -0
  47. package/dist/dev/src/components/PyDoc.js +1478 -0
  48. package/dist/dev/src/components/PyDoc.js.map +1 -0
  49. package/dist/dev/src/components/PythonBlock.js +35 -0
  50. package/dist/dev/src/components/PythonBlock.js.map +1 -0
  51. package/dist/dev/src/components/Reference.js +23 -0
  52. package/dist/dev/src/components/Reference.js.map +1 -0
  53. package/dist/dev/src/components/SourceFile.js +385 -0
  54. package/dist/dev/src/components/SourceFile.js.map +1 -0
  55. package/dist/dev/src/components/StatementList.js +34 -0
  56. package/dist/dev/src/components/StatementList.js.map +1 -0
  57. package/dist/dev/src/components/StaticMethodDeclaration.js +40 -0
  58. package/dist/dev/src/components/StaticMethodDeclaration.js.map +1 -0
  59. package/dist/dev/src/components/TypeArguments.js +22 -0
  60. package/dist/dev/src/components/TypeArguments.js.map +1 -0
  61. package/dist/dev/src/components/TypeRefContext.js +33 -0
  62. package/dist/dev/src/components/TypeRefContext.js.map +1 -0
  63. package/dist/dev/src/components/TypeReference.js +67 -0
  64. package/dist/dev/src/components/TypeReference.js.map +1 -0
  65. package/dist/dev/src/components/UnionTypeExpression.js +57 -0
  66. package/dist/dev/src/components/UnionTypeExpression.js.map +1 -0
  67. package/dist/dev/src/components/VariableDeclaration.js +150 -0
  68. package/dist/dev/src/components/VariableDeclaration.js.map +1 -0
  69. package/dist/dev/src/components/index.js +32 -0
  70. package/dist/dev/src/components/index.js.map +1 -0
  71. package/dist/dev/src/context/index.js +2 -0
  72. package/dist/dev/src/context/index.js.map +1 -0
  73. package/dist/dev/src/context/type-ref-context.js +17 -0
  74. package/dist/dev/src/context/type-ref-context.js.map +1 -0
  75. package/dist/dev/src/create-module.js +64 -0
  76. package/dist/dev/src/create-module.js.map +1 -0
  77. package/dist/dev/src/index.js +8 -0
  78. package/dist/dev/src/index.js.map +1 -0
  79. package/dist/dev/src/name-conflict-resolver.js +8 -0
  80. package/dist/dev/src/name-conflict-resolver.js.map +1 -0
  81. package/dist/dev/src/name-policy.js +48 -0
  82. package/dist/dev/src/name-policy.js.map +1 -0
  83. package/dist/dev/src/parameter-descriptor.js +8 -0
  84. package/dist/dev/src/parameter-descriptor.js.map +1 -0
  85. package/dist/dev/src/symbol-creation.js +58 -0
  86. package/dist/dev/src/symbol-creation.js.map +1 -0
  87. package/dist/dev/src/symbols/factories.js +28 -0
  88. package/dist/dev/src/symbols/factories.js.map +1 -0
  89. package/dist/dev/src/symbols/index.js +8 -0
  90. package/dist/dev/src/symbols/index.js.map +1 -0
  91. package/dist/dev/src/symbols/python-lexical-scope.js +15 -0
  92. package/dist/dev/src/symbols/python-lexical-scope.js.map +1 -0
  93. package/dist/dev/src/symbols/python-member-scope.js +7 -0
  94. package/dist/dev/src/symbols/python-member-scope.js.map +1 -0
  95. package/dist/dev/src/symbols/python-module-scope.js +86 -0
  96. package/dist/dev/src/symbols/python-module-scope.js.map +1 -0
  97. package/dist/dev/src/symbols/python-output-symbol.js +73 -0
  98. package/dist/dev/src/symbols/python-output-symbol.js.map +1 -0
  99. package/dist/dev/src/symbols/reference.js +87 -0
  100. package/dist/dev/src/symbols/reference.js.map +1 -0
  101. package/dist/dev/src/symbols/scopes.js +13 -0
  102. package/dist/dev/src/symbols/scopes.js.map +1 -0
  103. package/dist/dev/src/utils.js +13 -0
  104. package/dist/dev/src/utils.js.map +1 -0
  105. package/dist/dev/test/callsignatures.test.js +482 -0
  106. package/dist/dev/test/callsignatures.test.js.map +1 -0
  107. package/dist/dev/test/class-method-declaration.test.js +85 -0
  108. package/dist/dev/test/class-method-declaration.test.js.map +1 -0
  109. package/dist/dev/test/classdeclarations.test.js +654 -0
  110. package/dist/dev/test/classdeclarations.test.js.map +1 -0
  111. package/dist/dev/test/classinstantiations.test.js +281 -0
  112. package/dist/dev/test/classinstantiations.test.js.map +1 -0
  113. package/dist/dev/test/constructordeclaration.test.js +86 -0
  114. package/dist/dev/test/constructordeclaration.test.js.map +1 -0
  115. package/dist/dev/test/dataclassdeclarations.test.js +1068 -0
  116. package/dist/dev/test/dataclassdeclarations.test.js.map +1 -0
  117. package/dist/dev/test/dundermethoddeclaration.test.js +93 -0
  118. package/dist/dev/test/dundermethoddeclaration.test.js.map +1 -0
  119. package/dist/dev/test/enums.test.js +263 -0
  120. package/dist/dev/test/enums.test.js.map +1 -0
  121. package/dist/dev/test/externals.test.js +307 -0
  122. package/dist/dev/test/externals.test.js.map +1 -0
  123. package/dist/dev/test/factories.test.js +122 -0
  124. package/dist/dev/test/factories.test.js.map +1 -0
  125. package/dist/dev/test/functioncallexpressions.test.js +257 -0
  126. package/dist/dev/test/functioncallexpressions.test.js.map +1 -0
  127. package/dist/dev/test/functiondeclaration.test.js +817 -0
  128. package/dist/dev/test/functiondeclaration.test.js.map +1 -0
  129. package/dist/dev/test/imports.test.js +372 -0
  130. package/dist/dev/test/imports.test.js.map +1 -0
  131. package/dist/dev/test/memberexpressions.test.js +1668 -0
  132. package/dist/dev/test/memberexpressions.test.js.map +1 -0
  133. package/dist/dev/test/methoddeclaration.test.js +344 -0
  134. package/dist/dev/test/methoddeclaration.test.js.map +1 -0
  135. package/dist/dev/test/namepolicies.test.js +154 -0
  136. package/dist/dev/test/namepolicies.test.js.map +1 -0
  137. package/dist/dev/test/propertydeclaration.test.js +354 -0
  138. package/dist/dev/test/propertydeclaration.test.js.map +1 -0
  139. package/dist/dev/test/pydocs.test.js +1675 -0
  140. package/dist/dev/test/pydocs.test.js.map +1 -0
  141. package/dist/dev/test/references.test.js +66 -0
  142. package/dist/dev/test/references.test.js.map +1 -0
  143. package/dist/dev/test/sourcefiles.test.js +1802 -0
  144. package/dist/dev/test/sourcefiles.test.js.map +1 -0
  145. package/dist/dev/test/staticmethoddeclaration.test.js +85 -0
  146. package/dist/dev/test/staticmethoddeclaration.test.js.map +1 -0
  147. package/dist/dev/test/type-checking-imports.test.js +617 -0
  148. package/dist/dev/test/type-checking-imports.test.js.map +1 -0
  149. package/dist/dev/test/typereference.test.js +79 -0
  150. package/dist/dev/test/typereference.test.js.map +1 -0
  151. package/dist/dev/test/uniontypeexpression.test.js +307 -0
  152. package/dist/dev/test/uniontypeexpression.test.js.map +1 -0
  153. package/dist/dev/test/utils.js +100 -0
  154. package/dist/dev/test/utils.js.map +1 -0
  155. package/dist/dev/test/values.test.js +182 -0
  156. package/dist/dev/test/values.test.js.map +1 -0
  157. package/dist/dev/test/variables.test.js +363 -0
  158. package/dist/dev/test/variables.test.js.map +1 -0
  159. package/dist/src/components/CallSignature.d.ts.map +1 -1
  160. package/dist/src/components/CallSignature.js +12 -3
  161. package/dist/src/components/CallSignature.js.map +1 -1
  162. package/dist/src/components/ImportStatement.d.ts +12 -0
  163. package/dist/src/components/ImportStatement.d.ts.map +1 -1
  164. package/dist/src/components/ImportStatement.js +45 -3
  165. package/dist/src/components/ImportStatement.js.map +1 -1
  166. package/dist/src/components/Reference.d.ts.map +1 -1
  167. package/dist/src/components/Reference.js +5 -1
  168. package/dist/src/components/Reference.js.map +1 -1
  169. package/dist/src/components/SourceFile.d.ts +1 -1
  170. package/dist/src/components/SourceFile.d.ts.map +1 -1
  171. package/dist/src/components/SourceFile.js +46 -7
  172. package/dist/src/components/SourceFile.js.map +1 -1
  173. package/dist/src/components/TypeRefContext.d.ts +26 -0
  174. package/dist/src/components/TypeRefContext.d.ts.map +1 -0
  175. package/dist/src/components/TypeRefContext.js +29 -0
  176. package/dist/src/components/TypeRefContext.js.map +1 -0
  177. package/dist/src/components/TypeReference.d.ts +5 -0
  178. package/dist/src/components/TypeReference.d.ts.map +1 -1
  179. package/dist/src/components/TypeReference.js +19 -9
  180. package/dist/src/components/TypeReference.js.map +1 -1
  181. package/dist/src/components/VariableDeclaration.d.ts.map +1 -1
  182. package/dist/src/components/VariableDeclaration.js +7 -2
  183. package/dist/src/components/VariableDeclaration.js.map +1 -1
  184. package/dist/src/components/index.d.ts +1 -1
  185. package/dist/src/components/index.d.ts.map +1 -1
  186. package/dist/src/components/index.js +1 -1
  187. package/dist/src/components/index.js.map +1 -1
  188. package/dist/src/context/index.d.ts +2 -0
  189. package/dist/src/context/index.d.ts.map +1 -0
  190. package/dist/src/context/index.js +2 -0
  191. package/dist/src/context/index.js.map +1 -0
  192. package/dist/src/context/type-ref-context.d.ts +13 -0
  193. package/dist/src/context/type-ref-context.d.ts.map +1 -0
  194. package/dist/src/context/type-ref-context.js +17 -0
  195. package/dist/src/context/type-ref-context.js.map +1 -0
  196. package/dist/src/symbols/python-module-scope.d.ts +13 -1
  197. package/dist/src/symbols/python-module-scope.d.ts.map +1 -1
  198. package/dist/src/symbols/python-module-scope.js +36 -2
  199. package/dist/src/symbols/python-module-scope.js.map +1 -1
  200. package/dist/src/symbols/python-output-symbol.d.ts +11 -0
  201. package/dist/src/symbols/python-output-symbol.d.ts.map +1 -1
  202. package/dist/src/symbols/python-output-symbol.js +26 -2
  203. package/dist/src/symbols/python-output-symbol.js.map +1 -1
  204. package/dist/src/symbols/reference.d.ts +8 -1
  205. package/dist/src/symbols/reference.d.ts.map +1 -1
  206. package/dist/src/symbols/reference.js +4 -2
  207. package/dist/src/symbols/reference.js.map +1 -1
  208. package/dist/test/dataclassdeclarations.test.js +5 -2
  209. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  210. package/dist/test/externals.test.js +8 -2
  211. package/dist/test/externals.test.js.map +1 -1
  212. package/dist/test/functiondeclaration.test.js +6 -3
  213. package/dist/test/functiondeclaration.test.js.map +1 -1
  214. package/dist/test/imports.test.js +3 -3
  215. package/dist/test/imports.test.js.map +1 -1
  216. package/dist/test/references.test.js +1 -1
  217. package/dist/test/references.test.js.map +1 -1
  218. package/dist/test/sourcefiles.test.js +26 -26
  219. package/dist/test/sourcefiles.test.js.map +1 -1
  220. package/dist/test/type-checking-imports.test.d.ts +2 -0
  221. package/dist/test/type-checking-imports.test.d.ts.map +1 -0
  222. package/dist/test/type-checking-imports.test.js +437 -0
  223. package/dist/test/type-checking-imports.test.js.map +1 -0
  224. package/dist/test/uniontypeexpression.test.js +4 -1
  225. package/dist/test/uniontypeexpression.test.js.map +1 -1
  226. package/dist/test/variables.test.js +4 -1
  227. package/dist/test/variables.test.js.map +1 -1
  228. package/dist/tsconfig.tsbuildinfo +1 -1
  229. package/package.json +6 -4
  230. package/src/components/CallSignature.tsx +6 -2
  231. package/src/components/ImportStatement.tsx +51 -4
  232. package/src/components/Reference.tsx +3 -1
  233. package/src/components/SourceFile.tsx +44 -8
  234. package/src/components/TypeRefContext.tsx +36 -0
  235. package/src/components/TypeReference.tsx +15 -7
  236. package/src/components/VariableDeclaration.tsx +5 -1
  237. package/src/components/index.ts +1 -1
  238. package/src/context/index.ts +1 -0
  239. package/src/context/type-ref-context.tsx +16 -0
  240. package/src/symbols/python-module-scope.ts +55 -2
  241. package/src/symbols/python-output-symbol.ts +32 -1
  242. package/src/symbols/reference.tsx +10 -0
  243. package/temp/api.json +441 -336
  244. package/test/dataclassdeclarations.test.tsx +8 -2
  245. package/test/externals.test.tsx +8 -2
  246. package/test/functiondeclaration.test.tsx +6 -3
  247. package/test/imports.test.tsx +6 -6
  248. package/test/references.test.tsx +1 -1
  249. package/test/sourcefiles.test.tsx +13 -13
  250. package/test/type-checking-imports.test.tsx +363 -0
  251. package/test/uniontypeexpression.test.tsx +4 -1
  252. package/test/variables.test.tsx +4 -1
  253. package/vitest.config.ts +8 -0
@@ -0,0 +1,177 @@
1
+ import { memo as _$memo, createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { For, Show } from "@alloy-js/core";
3
+ import { snakeCase } from "change-case";
4
+ import { dataclassesModule } from "../builtins/python.js";
5
+ import { usePythonScope } from "../symbols/scopes.js";
6
+ import { Atom } from "./Atom.js";
7
+ import { ClassDeclaration } from "./ClassDeclaration.js";
8
+ import { StatementList } from "./StatementList.js";
9
+
10
+ /**
11
+ * Validate decorator-only rules that do not depend on class members.
12
+ */
13
+ function validateDataclassDecoratorArgs(kwargs) {
14
+ if (kwargs.weakrefSlot === true && kwargs.slots !== true) {
15
+ throw new Error("weakref_slot=True requires slots=True in @dataclass decorator");
16
+ }
17
+ if (kwargs.order === true && kwargs.eq === false) {
18
+ throw new Error("order=True requires eq=True in @dataclass decorator");
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Validate symbol-level conflicts. Must be called from within a member scope
24
+ * (inside the class body) so member symbols are available.
25
+ */
26
+ function validateDataclassMemberConflicts(kwargs) {
27
+ const scope = usePythonScope();
28
+ const owner = scope.ownerSymbol;
29
+ if (!owner) return;
30
+ const hasMemberNamed = name => {
31
+ const instanceNames = owner.instanceMembers?.symbolNames;
32
+ const staticNames = owner.staticMembers?.symbolNames;
33
+ return Boolean(instanceNames?.has(name) || staticNames?.has(name));
34
+ };
35
+ if (kwargs.order === true) {
36
+ for (const m of ["__lt__", "__le__", "__gt__", "__ge__"]) {
37
+ if (hasMemberNamed(m)) {
38
+ throw new TypeError(`Cannot specify order=True when the class already defines ${m}()`);
39
+ }
40
+ }
41
+ }
42
+ if (kwargs.unsafeHash === true && hasMemberNamed("__hash__")) {
43
+ throw new TypeError("Cannot specify unsafe_hash=True when the class already defines __hash__()");
44
+ }
45
+ if (kwargs.frozen === true) {
46
+ if (hasMemberNamed("__setattr__")) {
47
+ throw new TypeError("Cannot specify frozen=True when the class already defines __setattr__()");
48
+ }
49
+ if (hasMemberNamed("__delattr__")) {
50
+ throw new TypeError("Cannot specify frozen=True when the class already defines __delattr__()");
51
+ }
52
+ }
53
+ if (kwargs.slots === true && hasMemberNamed("__slots__")) {
54
+ throw new TypeError("Cannot specify slots=True when the class already defines __slots__()");
55
+ }
56
+
57
+ // Enforce at most one KW_ONLY sentinel as a symbol
58
+ let kwOnlyCount = 0;
59
+ for (const sym of owner.instanceMembers) {
60
+ if (sym.originalName === "_") kwOnlyCount++;
61
+ }
62
+ if (kwOnlyCount > 1) {
63
+ throw new Error("Only one KW_ONLY sentinel is allowed per dataclass body");
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Allowed keyword arguments for the Python `@dataclass(...)` decorator.
69
+ * Single source of truth: runtime keys and compile-time type are derived here.
70
+ */
71
+ export const dataclassDecoratorKeys = ["init", "repr", "eq", "order", "unsafeHash", "frozen", "matchArgs", "kwOnly", "slots", "weakrefSlot"];
72
+ export const dataclassDecoratorKeySet = new Set(dataclassDecoratorKeys);
73
+ /**
74
+ * Renders a Python dataclass.
75
+ *
76
+ * Example:
77
+ * ```tsx
78
+ * <py.DataclassDeclaration name="User" kwOnly>
79
+ * <py.VariableDeclaration instanceVariable omitNone name="id" type="int" />
80
+ * <py.VariableDeclaration instanceVariable name={namekey("_", { ignoreNamePolicy: true })} type={dataclassesModule["."].KW_ONLY} omitNone />
81
+ * <py.VariableDeclaration
82
+ * instanceVariable
83
+ * name="name"
84
+ * type="str"
85
+ * initializer={"Anonymous"}
86
+ * />
87
+ * </py.DataclassDeclaration>
88
+ * ```
89
+ * Will render as:
90
+ * ```py
91
+ * from dataclasses import dataclass
92
+ * from dataclasses import KW_ONLY
93
+ *
94
+ * @dataclass(kw_only=True)
95
+ * class User:
96
+ * id: int
97
+ * _: KW_ONLY
98
+ * name: str = "Anonymous"
99
+ * ```
100
+ */
101
+ export function DataclassDeclaration(props) {
102
+ // Collect flags from props in the order they appear (preserves emission order)
103
+ const decoratorEntries = [];
104
+ const kwargs = {};
105
+ for (const key of Object.keys(props)) {
106
+ // Only include known flags; skip undefined values
107
+ if (dataclassDecoratorKeySet.has(key)) {
108
+ const value = props[key];
109
+ if (value !== undefined) {
110
+ kwargs[key] = value;
111
+ decoratorEntries.push([snakeCase(key), value]);
112
+ }
113
+ }
114
+ }
115
+ const hasDecoratorArgs = decoratorEntries.length > 0;
116
+ if (hasDecoratorArgs) {
117
+ validateDataclassDecoratorArgs(kwargs);
118
+ }
119
+ return ["@", _$memo(() => dataclassesModule["."].dataclass, false, "dataclassesModule[.].dataclass"), _$createComponent(Show, {
120
+ when: hasDecoratorArgs,
121
+ get children() {
122
+ return ["(", _$createComponent(For, {
123
+ each: decoratorEntries,
124
+ comma: true,
125
+ space: true,
126
+ children: ([k, v]) => [k, "=", _$createComponent(Atom, {
127
+ jsValue: v
128
+ }, {
129
+ fileName: import.meta.url,
130
+ lineNumber: 172,
131
+ columnNumber: 19
132
+ })]
133
+ }, {
134
+ fileName: import.meta.url,
135
+ lineNumber: 169,
136
+ columnNumber: 9
137
+ }), ")"];
138
+ }
139
+ }, {
140
+ fileName: import.meta.url,
141
+ lineNumber: 167,
142
+ columnNumber: 7
143
+ }), _$createIntrinsic("hbr", {}, {
144
+ fileName: import.meta.url,
145
+ lineNumber: 178,
146
+ columnNumber: 7
147
+ }), _$createComponent(ClassDeclaration, {
148
+ get name() {
149
+ return props.name;
150
+ },
151
+ get bases() {
152
+ return props.bases;
153
+ },
154
+ get doc() {
155
+ return props.doc;
156
+ },
157
+ get refkey() {
158
+ return props.refkey;
159
+ },
160
+ get children() {
161
+ return [_$createComponent(StatementList, {
162
+ get children() {
163
+ return props.children;
164
+ }
165
+ }, {
166
+ fileName: import.meta.url,
167
+ lineNumber: 185,
168
+ columnNumber: 9
169
+ }), _$memo(() => validateDataclassMemberConflicts(kwargs), false, "validateDataclassMemberConflicts(\u2026)")];
170
+ }
171
+ }, {
172
+ fileName: import.meta.url,
173
+ lineNumber: 179,
174
+ columnNumber: 7
175
+ })];
176
+ }
177
+ //# sourceMappingURL=DataclassDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["For","Show","snakeCase","dataclassesModule","usePythonScope","Atom","ClassDeclaration","StatementList","validateDataclassDecoratorArgs","kwargs","weakrefSlot","slots","Error","order","eq","validateDataclassMemberConflicts","scope","owner","ownerSymbol","hasMemberNamed","name","instanceNames","instanceMembers","symbolNames","staticNames","staticMembers","Boolean","has","m","TypeError","unsafeHash","frozen","kwOnlyCount","sym","originalName","dataclassDecoratorKeys","dataclassDecoratorKeySet","Set","DataclassDeclaration","props","decoratorEntries","key","Object","keys","value","undefined","push","hasDecoratorArgs","length","_$memo","dataclass","_$createComponent","when","children","each","comma","space","k","v","jsValue","fileName","import","meta","url","lineNumber","columnNumber","_$createIntrinsic","bases","doc","refkey"],"sources":["../../../../src/components/DataclassDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,GAAG,EAAEC,IAAI,QAAQ,gBAAgB;AAC1C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,IAAI;AAEb,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,aAAa,QAAQ,oBAAoB;;AAElD;AACA;AACA;AACA,SAASC,8BAA8BA,CAACC,MAAgC,EAAE;EACxE,IAAIA,MAAM,CAACC,WAAW,KAAK,IAAI,IAAID,MAAM,CAACE,KAAK,KAAK,IAAI,EAAE;IACxD,MAAM,IAAIC,KAAK,CACb,+DACF,CAAC;EACH;EACA,IAAIH,MAAM,CAACI,KAAK,KAAK,IAAI,IAAIJ,MAAM,CAACK,EAAE,KAAK,KAAK,EAAE;IAChD,MAAM,IAAIF,KAAK,CAAC,qDAAqD,CAAC;EACxE;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASG,gCAAgCA,CAACN,MAAgC,EAAE;EAC1E,MAAMO,KAAK,GAAGZ,cAAc,CAAC,CAAC;EAC9B,MAAMa,KAAU,GAAID,KAAK,CAASE,WAAW;EAC7C,IAAI,CAACD,KAAK,EAAE;EAEZ,MAAME,cAAc,GAAIC,IAAY,IAAc;IAChD,MAAMC,aAAsC,GAC1CJ,KAAK,CAACK,eAAe,EACpBC,WAAW;IACd,MAAMC,WAAoC,GAAIP,KAAK,CAACQ,aAAa,EAC7DF,WAAW;IACf,OAAOG,OAAO,CAACL,aAAa,EAAEM,GAAG,CAACP,IAAI,CAAC,IAAII,WAAW,EAAEG,GAAG,CAACP,IAAI,CAAC,CAAC;EACpE,CAAC;EAED,IAAIX,MAAM,CAACI,KAAK,KAAK,IAAI,EAAE;IACzB,KAAK,MAAMe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;MACxD,IAAIT,cAAc,CAACS,CAAC,CAAC,EAAE;QACrB,MAAM,IAAIC,SAAS,CACjB,4DAA4DD,CAAC,IAC/D,CAAC;MACH;IACF;EACF;EAEA,IAAInB,MAAM,CAACqB,UAAU,KAAK,IAAI,IAAIX,cAAc,CAAC,UAAU,CAAC,EAAE;IAC5D,MAAM,IAAIU,SAAS,CACjB,2EACF,CAAC;EACH;EAEA,IAAIpB,MAAM,CAACsB,MAAM,KAAK,IAAI,EAAE;IAC1B,IAAIZ,cAAc,CAAC,aAAa,CAAC,EAAE;MACjC,MAAM,IAAIU,SAAS,CACjB,yEACF,CAAC;IACH;IACA,IAAIV,cAAc,CAAC,aAAa,CAAC,EAAE;MACjC,MAAM,IAAIU,SAAS,CACjB,yEACF,CAAC;IACH;EACF;EAEA,IAAIpB,MAAM,CAACE,KAAK,KAAK,IAAI,IAAIQ,cAAc,CAAC,WAAW,CAAC,EAAE;IACxD,MAAM,IAAIU,SAAS,CACjB,sEACF,CAAC;EACH;;EAEA;EACA,IAAIG,WAAW,GAAG,CAAC;EACnB,KAAK,MAAMC,GAAG,IAAIhB,KAAK,CAACK,eAAe,EAAmB;IACxD,IAAIW,GAAG,CAACC,YAAY,KAAK,GAAG,EAAEF,WAAW,EAAE;EAC7C;EACA,IAAIA,WAAW,GAAG,CAAC,EAAE;IACnB,MAAM,IAAIpB,KAAK,CAAC,yDAAyD,CAAC;EAC5E;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMuB,sBAAsB,GAAG,CACpC,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,EACP,aAAa,CACL;AACV,OAAO,MAAMC,wBAAwB,GAAG,IAAIC,GAAG,CAC7CF,sBACF,CAAC;AAUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,oBAAoBA,CAACC,KAAgC,EAAE;EACrE;EACA,MAAMC,gBAAsC,GAAG,EAAE;EACjD,MAAM/B,MAAM,GAAG,CAAC,CAA6B;EAC7C,KAAK,MAAMgC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,EAAE;IACpC;IACA,IAAIH,wBAAwB,CAACT,GAAG,CAACc,GAAG,CAAC,EAAE;MACrC,MAAMG,KAAK,GAAIL,KAAK,CAASE,GAAG,CAAC;MACjC,IAAIG,KAAK,KAAKC,SAAS,EAAE;QACtBpC,MAAM,CAASgC,GAAG,CAAC,GAAGG,KAAK;QAC5BJ,gBAAgB,CAACM,IAAI,CAAC,CAAC5C,SAAS,CAACuC,GAAG,CAAC,EAAEG,KAAK,CAAC,CAAC;MAChD;IACF;EACF;EACA,MAAMG,gBAAgB,GAAGP,gBAAgB,CAACQ,MAAM,GAAG,CAAC;EAEpD,IAAID,gBAAgB,EAAE;IACpBvC,8BAA8B,CAACC,MAAM,CAAC;EACxC;EAEA,QAEK,GAAG,EAAAwC,MAAA,OACH9C,iBAAiB,CAAC,GAAG,CAAC,CAAC+C,SAAS,4CAAAC,iBAAA,CAChClD,IAAI;IAACmD,IAAI,EAAEL,gBAAgB;IAAA,IAAAM,SAAA;MAAA,aAAAF,iBAAA,CAEzBnD,GAAG;QAACsD,IAAI,EAAEd,gBAAgB;QAAEe,KAAK;QAACC,KAAK;QAAAH,QAAA,EACrCA,CAAC,CAACI,CAAC,EAAEC,CAAC,CAAC,MAEHD,CAAC,OAAAN,iBAAA,CAAG9C,IAAI;UAACsD,OAAO,EAAED;QAAC;UAAAE,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA;MAEvB;QAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAC,iBAAA;IAAAN,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAd,iBAAA,CAKJ7C,gBAAgB;IAAA,IACfc,IAAIA,CAAA;MAAA,OAAEmB,KAAK,CAACnB,IAAI;IAAA;IAAA,IAChB+C,KAAKA,CAAA;MAAA,OAAE5B,KAAK,CAAC4B,KAAK;IAAA;IAAA,IAClBC,GAAGA,CAAA;MAAA,OAAE7B,KAAK,CAAC6B,GAAG;IAAA;IAAA,IACdC,MAAMA,CAAA;MAAA,OAAE9B,KAAK,CAAC8B,MAAM;IAAA;IAAA,IAAAhB,SAAA;MAAA,QAAAF,iBAAA,CAEnB5C,aAAa;QAAA,IAAA8C,SAAA;UAAA,OAAEd,KAAK,CAACc,QAAQ;QAAA;MAAA;QAAAO,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,IAAAhB,MAAA,OAC7BlC,gCAAgC,CAACN,MAAkC,CAAC;IAAA;EAAA;IAAAmD,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAI7E","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Declaration as CoreDeclaration } from "@alloy-js/core";
3
+ import { createPythonSymbol } from "../symbol-creation.js";
4
+ /**
5
+ * A Python declaration, which can be a class, function, variable, etc.
6
+ *
7
+ * @remarks
8
+ * This component is used to create a declaration with a symbol that can be
9
+ * referenced in the code.
10
+ */
11
+ export function Declaration(props) {
12
+ let sym;
13
+ if (props.symbol) {
14
+ sym = props.symbol;
15
+ } else {
16
+ sym = createPythonSymbol(props.name, {
17
+ refkeys: props.refkey
18
+ }, props.nameKind);
19
+ }
20
+ return _$createComponent(CoreDeclaration, {
21
+ symbol: sym,
22
+ get children() {
23
+ return props.children;
24
+ }
25
+ }, {
26
+ fileName: import.meta.url,
27
+ lineNumber: 70,
28
+ columnNumber: 10
29
+ });
30
+ }
31
+ //# sourceMappingURL=Declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Declaration","CoreDeclaration","createPythonSymbol","props","sym","symbol","name","refkeys","refkey","nameKind","_$createComponent","children","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAEEA,WAAW,IAAIC,eAAe,QAGzB,gBAAgB;AAEvB,SAASC,kBAAkB,QAAQ,uBAAuB;AAwC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASF,WAAWA,CAACG,KAAuB,EAAE;EACnD,IAAIC,GAAuB;EAE3B,IAAID,KAAK,CAACE,MAAM,EAAE;IAChBD,GAAG,GAAGD,KAAK,CAACE,MAAM;EACpB,CAAC,MAAM;IACLD,GAAG,GAAGF,kBAAkB,CACtBC,KAAK,CAACG,IAAI,EACV;MACEC,OAAO,EAAEJ,KAAK,CAACK;IACjB,CAAC,EACDL,KAAK,CAACM,QACR,CAAC;EACH;EAEA,OAAAC,iBAAA,CAAQT,eAAe;IAACI,MAAM,EAAED,GAAG;IAAA,IAAAO,SAAA;MAAA,OAAGR,KAAK,CAACQ,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AACtD","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ import { mergeProps as _$mergeProps, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { isNamekey, namekey } from "@alloy-js/core";
3
+ import { MethodDeclaration } from "./MethodDeclaration.js";
4
+
5
+ /**
6
+ * A Python dunder method declaration.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <py.DunderMethodDeclaration name="__repr__" returnType="str">
11
+ * return f"<MyType>"
12
+ * </py.DunderMethodDeclaration>
13
+ * ```
14
+ * Generates:
15
+ * ```python
16
+ * def __repr__(self) -> str:
17
+ * return f"<MyType>"
18
+ * ```
19
+ */
20
+
21
+ export function DunderMethodDeclaration(props) {
22
+ const finalName = isNamekey(props.name) ? props.name : namekey(props.name, {
23
+ ignoreNamePolicy: true
24
+ });
25
+ return _$createComponent(MethodDeclaration, _$mergeProps(props, {
26
+ name: finalName
27
+ }), {
28
+ fileName: import.meta.url,
29
+ lineNumber: 29,
30
+ columnNumber: 10
31
+ });
32
+ }
33
+ //# sourceMappingURL=DunderMethodDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNamekey","namekey","MethodDeclaration","DunderMethodDeclaration","props","finalName","name","ignoreNamePolicy","_$createComponent","_$mergeProps","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/DunderMethodDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,gBAAgB;AAEnD,SAASC,iBAAiB,QAAQ,wBAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASC,uBAAuBA,CAACC,KAAmC,EAAE;EAC3E,MAAMC,SAAS,GACbL,SAAS,CAACI,KAAK,CAACE,IAAI,CAAC,GACnBF,KAAK,CAACE,IAAI,GACVL,OAAO,CAACG,KAAK,CAACE,IAAI,EAAY;IAAEC,gBAAgB,EAAE;EAAK,CAAC,CAAC;EAC7D,OAAAC,iBAAA,CAAQN,iBAAiB,EAAAO,YAAA,CAAKL,KAAK;IAAEE,IAAI,EAAED;EAAS;IAAAK,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AACtD","ignoreList":[]}
@@ -0,0 +1,259 @@
1
+ import { createComponent as _$createComponent, memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { Declaration as CoreDeclaration, For, Show } from "@alloy-js/core";
3
+ import { enumModule } from "../builtins/python.js";
4
+ import { createPythonSymbol } from "../symbol-creation.js";
5
+ import { EnumMember } from "./EnumMember.js";
6
+ import { MemberScope } from "./MemberScope.js";
7
+ import { PythonBlock } from "./PythonBlock.js";
8
+ /**
9
+ * Create a Python enum using the functional syntax.
10
+ *
11
+ * This generates enums using the `Enum('Name', [...])` or `Enum('Name', {...})` syntax.
12
+ * The format depends on whether enum members have explicit values:
13
+ * - Members without values: `Enum('Direction', ['NORTH', 'SOUTH', 'EAST', 'WEST'])`
14
+ * - Members with values: `Enum('Direction', {'NORTH': 1, 'SOUTH': 2, 'EAST': 3, 'WEST': 4})`
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <FunctionalEnumDeclaration
19
+ * name="Direction"
20
+ * members={[
21
+ * { name: "NORTH" },
22
+ * { name: "SOUTH" },
23
+ * { name: "EAST" },
24
+ * { name: "WEST" }
25
+ * ]}
26
+ * />
27
+ * ```
28
+ * renders to:
29
+ * ```python
30
+ * Direction = Enum('Direction', ['NORTH', 'SOUTH', 'EAST', 'WEST'])
31
+ * ```
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <FunctionalEnumDeclaration
36
+ * name="Status"
37
+ * members={[
38
+ * { name: "PENDING", value: 1 },
39
+ * { name: "ACTIVE", value: 2 },
40
+ * { name: "INACTIVE", value: 3 }
41
+ * ]}
42
+ * />
43
+ * ```
44
+ * renders to:
45
+ * ```python
46
+ * Status = Enum('Status', {'PENDING': 1, 'ACTIVE': 2, 'INACTIVE': 3})
47
+ * ```
48
+ */
49
+ export function FunctionalEnumDeclaration(props) {
50
+ const sym = createPythonSymbol(props.name, {
51
+ refkeys: props.refkey
52
+ }, "enum");
53
+ const members = props.members ?? [];
54
+ let opener, ender;
55
+ if (members.length && members.every(m => m.value === undefined)) {
56
+ // List of names: Enum('Direction', ['NORTH', ...])
57
+ opener = "[";
58
+ ender = "]";
59
+ } else {
60
+ // List of name-value pairs: Enum('Direction', {'NORTH': 1, ...})
61
+ opener = "{";
62
+ ender = "}";
63
+ }
64
+ const memberExpr = [opener, _$createComponent(For, {
65
+ each: members,
66
+ joiner: ", ",
67
+ children: m => _$createComponent(EnumMember, {
68
+ get name() {
69
+ return m.name;
70
+ },
71
+ get value() {
72
+ return m.value;
73
+ },
74
+ functional: true
75
+ }, {
76
+ fileName: import.meta.url,
77
+ lineNumber: 96,
78
+ columnNumber: 17
79
+ })
80
+ }, {
81
+ fileName: import.meta.url,
82
+ lineNumber: 95,
83
+ columnNumber: 7
84
+ }), ender];
85
+ return [_$createComponent(CoreDeclaration, {
86
+ symbol: sym,
87
+ get children() {
88
+ return [_$memo(() => sym.name, false, "sym.name"), " = ", _$memo(() => enumModule["."].Enum, false, "enumModule[.].Enum"), "('", _$memo(() => sym.name, false, "sym.name"), "',", " ", _$createComponent(MemberScope, {
89
+ ownerSymbol: sym,
90
+ children: memberExpr
91
+ }, {
92
+ fileName: import.meta.url,
93
+ lineNumber: 105,
94
+ columnNumber: 9
95
+ }), ")"];
96
+ }
97
+ }, {
98
+ fileName: import.meta.url,
99
+ lineNumber: 103,
100
+ columnNumber: 7
101
+ })];
102
+ }
103
+ /**
104
+ * Create a Python enum using the class-based syntax.
105
+ *
106
+ * This generates enums using the `class Name(Enum):` syntax with member definitions
107
+ * inside the class body. Supports various member value styles including auto-generated
108
+ * values, explicit values, and custom base types.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <ClassEnumDeclaration
113
+ * name="Direction"
114
+ * members={[
115
+ * { name: "NORTH" },
116
+ * { name: "SOUTH" },
117
+ * { name: "EAST" },
118
+ * { name: "WEST" }
119
+ * ]}
120
+ * />
121
+ * ```
122
+ * renders to:
123
+ * ```python
124
+ * class Direction(Enum):
125
+ * NORTH = "NORTH"
126
+ * SOUTH = "SOUTH"
127
+ * EAST = "EAST"
128
+ * WEST = "WEST"
129
+ * ```
130
+ *
131
+ * @example
132
+ * With explicit values:
133
+ * ```tsx
134
+ * <ClassEnumDeclaration
135
+ * name="Status"
136
+ * members={[
137
+ * { name: "PENDING", value: 1 },
138
+ * { name: "ACTIVE", value: 2 },
139
+ * { name: "INACTIVE", value: 3 }
140
+ * ]}
141
+ * />
142
+ * ```
143
+ * renders to:
144
+ * ```python
145
+ * class Status(Enum):
146
+ * PENDING = 1
147
+ * ACTIVE = 2
148
+ * INACTIVE = 3
149
+ * ```
150
+ *
151
+ * @example
152
+ * With auto() values:
153
+ * ```tsx
154
+ * <ClassEnumDeclaration
155
+ * name="Color"
156
+ * style="auto"
157
+ * members={[
158
+ * { name: "RED" },
159
+ * { name: "GREEN" },
160
+ * { name: "BLUE" }
161
+ * ]}
162
+ * />
163
+ * ```
164
+ * renders to:
165
+ * ```python
166
+ * class Color(Enum):
167
+ * RED = auto()
168
+ * GREEN = auto()
169
+ * BLUE = auto()
170
+ * ```
171
+ */
172
+ export function ClassEnumDeclaration(props) {
173
+ const baseType = props.baseType || "Enum";
174
+ const sym = createPythonSymbol(props.name, {
175
+ refkeys: props.refkey
176
+ }, "enum");
177
+ let memberList = (props.members ?? []).map(m => m.value === undefined ? {
178
+ ...m,
179
+ auto: false
180
+ } : m);
181
+ if (props.auto) {
182
+ memberList = memberList.map(m => m.value === undefined ? {
183
+ name: m.name,
184
+ auto: true
185
+ } : m);
186
+ }
187
+ return _$createComponent(CoreDeclaration, {
188
+ symbol: sym,
189
+ get children() {
190
+ return ["class ", _$memo(() => sym.name, false, "sym.name"), "(", _$memo(() => enumModule["."][baseType], false, "enumModule[.][baseType]"), ")", _$createComponent(MemberScope, {
191
+ ownerSymbol: sym,
192
+ get children() {
193
+ return _$createComponent(PythonBlock, {
194
+ opener: ":",
195
+ get children() {
196
+ return [_$createComponent(Show, {
197
+ get when() {
198
+ return Boolean(props.doc);
199
+ },
200
+ get children() {
201
+ return [_$memo(() => props.doc, false, "props.doc"), _$createIntrinsic("hbr", {}, {
202
+ fileName: import.meta.url,
203
+ lineNumber: 211,
204
+ columnNumber: 13
205
+ })];
206
+ }
207
+ }, {
208
+ fileName: import.meta.url,
209
+ lineNumber: 209,
210
+ columnNumber: 11
211
+ }), _$createComponent(For, {
212
+ each: memberList,
213
+ hardline: true,
214
+ children: member => _$createComponent(EnumMember, {
215
+ get name() {
216
+ return member.name;
217
+ },
218
+ get value() {
219
+ return member.value;
220
+ },
221
+ get jsValue() {
222
+ return member.jsValue;
223
+ },
224
+ get auto() {
225
+ return member.auto;
226
+ },
227
+ get doc() {
228
+ return member.doc;
229
+ }
230
+ }, {
231
+ fileName: import.meta.url,
232
+ lineNumber: 215,
233
+ columnNumber: 15
234
+ })
235
+ }, {
236
+ fileName: import.meta.url,
237
+ lineNumber: 213,
238
+ columnNumber: 11
239
+ }), _$memo(() => props.children, false, "props.children")];
240
+ }
241
+ }, {
242
+ fileName: import.meta.url,
243
+ lineNumber: 208,
244
+ columnNumber: 9
245
+ });
246
+ }
247
+ }, {
248
+ fileName: import.meta.url,
249
+ lineNumber: 207,
250
+ columnNumber: 7
251
+ })];
252
+ }
253
+ }, {
254
+ fileName: import.meta.url,
255
+ lineNumber: 205,
256
+ columnNumber: 5
257
+ });
258
+ }
259
+ //# sourceMappingURL=EnumDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Declaration","CoreDeclaration","For","Show","enumModule","createPythonSymbol","EnumMember","MemberScope","PythonBlock","FunctionalEnumDeclaration","props","sym","name","refkeys","refkey","members","opener","ender","length","every","m","value","undefined","memberExpr","_$createComponent","each","joiner","children","functional","fileName","import","meta","url","lineNumber","columnNumber","symbol","_$memo","Enum","ownerSymbol","ClassEnumDeclaration","baseType","memberList","map","auto","when","Boolean","doc","_$createIntrinsic","hardline","member","jsValue"],"sources":["../../../../src/components/EnumDeclaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { Show } from "@alloy-js/core";
3
+ import { enumModule } from "../builtins/python.js";
4
+ import { createPythonSymbol } from "../symbol-creation.js";
5
+ import { Atom } from "./Atom.js";
6
+ import { InlineDoc } from "./PyDoc.js";
7
+ /**
8
+ * A Python enum member.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <EnumMember name="NORTH" />
13
+ * ```
14
+ * This will generate:
15
+ * ```python
16
+ * NORTH
17
+ * ```
18
+ */
19
+ export function EnumMember(props) {
20
+ const autoReference = props.auto === true ? enumModule["."].auto : undefined;
21
+ const value = props.auto === true ? [autoReference, "()"] : props.value;
22
+ const sym = createPythonSymbol(props.name, {
23
+ refkeys: props.refkey
24
+ }, "enum-member");
25
+ const valueCode = props.jsValue !== undefined ? _$createComponent(Atom, {
26
+ get jsValue() {
27
+ return props.jsValue;
28
+ }
29
+ }, {
30
+ fileName: import.meta.url,
31
+ lineNumber: 69,
32
+ columnNumber: 35
33
+ }) : value;
34
+ if (props.functional) {
35
+ return ["'", _$memo(() => sym.name, false, "sym.name"), "'", _$createComponent(Show, {
36
+ when: valueCode !== undefined,
37
+ get children() {
38
+ return [" : ", valueCode];
39
+ }
40
+ }, {
41
+ fileName: import.meta.url,
42
+ lineNumber: 74,
43
+ columnNumber: 21
44
+ }), _$createComponent(Show, {
45
+ get when() {
46
+ return props.doc !== undefined;
47
+ },
48
+ get children() {
49
+ return _$createComponent(InlineDoc, {
50
+ get children() {
51
+ return props.doc;
52
+ }
53
+ }, {
54
+ fileName: import.meta.url,
55
+ lineNumber: 76,
56
+ columnNumber: 11
57
+ });
58
+ }
59
+ }, {
60
+ fileName: import.meta.url,
61
+ lineNumber: 75,
62
+ columnNumber: 9
63
+ })];
64
+ }
65
+ return [_$memo(() => sym.name, false, "sym.name"), _$createComponent(Show, {
66
+ when: valueCode !== undefined,
67
+ get children() {
68
+ return [" = ", valueCode];
69
+ }
70
+ }, {
71
+ fileName: import.meta.url,
72
+ lineNumber: 84,
73
+ columnNumber: 7
74
+ }), _$createComponent(Show, {
75
+ get when() {
76
+ return props.doc !== undefined;
77
+ },
78
+ get children() {
79
+ return _$createComponent(InlineDoc, {
80
+ get children() {
81
+ return props.doc;
82
+ }
83
+ }, {
84
+ fileName: import.meta.url,
85
+ lineNumber: 86,
86
+ columnNumber: 9
87
+ });
88
+ }
89
+ }, {
90
+ fileName: import.meta.url,
91
+ lineNumber: 85,
92
+ columnNumber: 7
93
+ })];
94
+ }
95
+ //# sourceMappingURL=EnumMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Show","enumModule","createPythonSymbol","Atom","InlineDoc","EnumMember","props","autoReference","auto","undefined","value","sym","name","refkeys","refkey","valueCode","jsValue","_$createComponent","fileName","import","meta","url","lineNumber","columnNumber","functional","_$memo","when","children","doc"],"sources":["../../../../src/components/EnumMember.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAAoCA,IAAI,QAAQ,gBAAgB;AAChE,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,IAAI;AACb,SAASC,SAAS;AAwClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,aAAa,GAAGD,KAAK,CAACE,IAAI,KAAK,IAAI,GAAGP,UAAU,CAAC,GAAG,CAAC,CAACO,IAAI,GAAGC,SAAS;EAC5E,MAAMC,KAAK,GAAGJ,KAAK,CAACE,IAAI,KAAK,IAAI,IAAMD,aAAa,UAASD,KAAK,CAACI,KAAK;EACxE,MAAMC,GAAuB,GAAGT,kBAAkB,CAChDI,KAAK,CAACM,IAAI,EACV;IACEC,OAAO,EAAEP,KAAK,CAACQ;EACjB,CAAC,EACD,aACF,CAAC;EACD,MAAMC,SAAS,GACbT,KAAK,CAACU,OAAO,KAAKP,SAAS,GAAAQ,iBAAA,CAAId,IAAI;IAAA,IAACa,OAAOA,CAAA;MAAA,OAAEV,KAAK,CAACU,OAAO;IAAA;EAAA;IAAAE,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,KAAOb,KAAK;EAExE,IAAIJ,KAAK,CAACkB,UAAU,EAAE;IACpB,aAAAC,MAAA,OAEMd,GAAG,CAACC,IAAI,2BAAAK,iBAAA,CAAGjB,IAAI;MAAC0B,IAAI,EAAEX,SAAS,KAAKN,SAAS;MAAA,IAAAkB,SAAA;QAAA,eAAMZ,SAAS;MAAA;IAAA;MAAAG,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,IAAAN,iBAAA,CAC7DjB,IAAI;MAAA,IAAC0B,IAAIA,CAAA;QAAA,OAAEpB,KAAK,CAACsB,GAAG,KAAKnB,SAAS;MAAA;MAAA,IAAAkB,SAAA;QAAA,OAAAV,iBAAA,CAChCb,SAAS;UAAA,IAAAuB,SAAA;YAAA,OAAErB,KAAK,CAACsB,GAAG;UAAA;QAAA;UAAAV,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA;MAAA;IAAA;MAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA;EAI7B;EACA,QAAAE,MAAA,OAEKd,GAAG,CAACC,IAAI,sBAAAK,iBAAA,CACRjB,IAAI;IAAC0B,IAAI,EAAEX,SAAS,KAAKN,SAAS;IAAA,IAAAkB,SAAA;MAAA,eAAMZ,SAAS;IAAA;EAAA;IAAAG,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAN,iBAAA,CACjDjB,IAAI;IAAA,IAAC0B,IAAIA,CAAA;MAAA,OAAEpB,KAAK,CAACsB,GAAG,KAAKnB,SAAS;IAAA;IAAA,IAAAkB,SAAA;MAAA,OAAAV,iBAAA,CAChCb,SAAS;QAAA,IAAAuB,SAAA;UAAA,OAAErB,KAAK,CAACsB,GAAG;QAAA;MAAA;QAAAV,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAI7B","ignoreList":[]}