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

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 (355) 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/name-conflict-resolver.d.ts +2 -2
  197. package/dist/src/name-conflict-resolver.d.ts.map +1 -1
  198. package/dist/src/name-conflict-resolver.js +2 -2
  199. package/dist/src/name-conflict-resolver.js.map +1 -1
  200. package/dist/src/symbols/python-module-scope.d.ts +13 -1
  201. package/dist/src/symbols/python-module-scope.d.ts.map +1 -1
  202. package/dist/src/symbols/python-module-scope.js +36 -2
  203. package/dist/src/symbols/python-module-scope.js.map +1 -1
  204. package/dist/src/symbols/python-output-symbol.d.ts +11 -0
  205. package/dist/src/symbols/python-output-symbol.d.ts.map +1 -1
  206. package/dist/src/symbols/python-output-symbol.js +26 -2
  207. package/dist/src/symbols/python-output-symbol.js.map +1 -1
  208. package/dist/src/symbols/reference.d.ts +8 -1
  209. package/dist/src/symbols/reference.d.ts.map +1 -1
  210. package/dist/src/symbols/reference.js +4 -2
  211. package/dist/src/symbols/reference.js.map +1 -1
  212. package/dist/test/dataclassdeclarations.test.js +5 -2
  213. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  214. package/dist/test/externals.test.js +8 -2
  215. package/dist/test/externals.test.js.map +1 -1
  216. package/dist/test/functiondeclaration.test.js +6 -3
  217. package/dist/test/functiondeclaration.test.js.map +1 -1
  218. package/dist/test/imports.test.js +3 -3
  219. package/dist/test/imports.test.js.map +1 -1
  220. package/dist/test/references.test.js +1 -1
  221. package/dist/test/references.test.js.map +1 -1
  222. package/dist/test/sourcefiles.test.js +26 -26
  223. package/dist/test/sourcefiles.test.js.map +1 -1
  224. package/dist/test/type-checking-imports.test.d.ts +2 -0
  225. package/dist/test/type-checking-imports.test.d.ts.map +1 -0
  226. package/dist/test/type-checking-imports.test.js +437 -0
  227. package/dist/test/type-checking-imports.test.js.map +1 -0
  228. package/dist/test/uniontypeexpression.test.js +4 -1
  229. package/dist/test/uniontypeexpression.test.js.map +1 -1
  230. package/dist/test/variables.test.js +4 -1
  231. package/dist/test/variables.test.js.map +1 -1
  232. package/dist/tsconfig.tsbuildinfo +1 -1
  233. package/docs/api/components/AttributeDoc.md +36 -0
  234. package/docs/api/components/CallSignature.md +62 -0
  235. package/docs/api/components/CallSignatureParameters.md +49 -0
  236. package/docs/api/components/ClassDeclaration.md +67 -0
  237. package/docs/api/components/ClassDoc.md +55 -0
  238. package/docs/api/components/ClassEnumDeclaration.md +111 -0
  239. package/docs/api/components/ClassInstantiation.md +44 -0
  240. package/docs/api/components/ClassMethodDeclaration.md +31 -0
  241. package/docs/api/components/ConstructorDeclaration.md +27 -0
  242. package/docs/api/components/DataclassDeclaration.md +55 -0
  243. package/docs/api/components/Declaration.md +41 -0
  244. package/docs/api/components/DunderMethodDeclaration.md +31 -0
  245. package/docs/api/components/EnumMember.md +61 -0
  246. package/docs/api/components/ExceptionDoc.md +55 -0
  247. package/docs/api/components/FunctionCallExpression.md +43 -0
  248. package/docs/api/components/FunctionDeclaration.md +50 -0
  249. package/docs/api/components/FunctionDoc.md +61 -0
  250. package/docs/api/components/FunctionalEnumDeclaration.md +79 -0
  251. package/docs/api/components/FutureStatement.md +51 -0
  252. package/docs/api/components/GeneratorDoc.md +58 -0
  253. package/docs/api/components/InlineDoc.md +29 -0
  254. package/docs/api/components/LexicalScope.md +65 -0
  255. package/docs/api/components/MemberExpression.md +53 -0
  256. package/docs/api/components/MemberScope.md +28 -0
  257. package/docs/api/components/MethodDeclaration.md +49 -0
  258. package/docs/api/components/MethodDoc.md +61 -0
  259. package/docs/api/components/ModuleDoc.md +52 -0
  260. package/docs/api/components/PropertyDeclaration.md +46 -0
  261. package/docs/api/components/PropertyDoc.md +52 -0
  262. package/docs/api/components/PyDoc.md +29 -0
  263. package/docs/api/components/PyDocExample.md +29 -0
  264. package/docs/api/components/PythonBlock.md +47 -0
  265. package/docs/api/components/Reference.md +31 -0
  266. package/docs/api/components/SimpleCommentBlock.md +27 -0
  267. package/docs/api/components/SimpleInlineComment.md +27 -0
  268. package/docs/api/components/SourceFile.md +83 -0
  269. package/docs/api/components/StatementList.md +47 -0
  270. package/docs/api/components/StaticMethodDeclaration.md +31 -0
  271. package/docs/api/components/TypeArguments.md +27 -0
  272. package/docs/api/components/TypeRefContext.md +41 -0
  273. package/docs/api/components/TypeReference.md +37 -0
  274. package/docs/api/components/UnionTypeExpression.md +27 -0
  275. package/docs/api/components/VariableDeclaration.md +87 -0
  276. package/docs/api/components/index.md +46 -0
  277. package/docs/api/components/useSourceFile.md +19 -0
  278. package/docs/api/contexts/PythonSourceFile-context.md +18 -0
  279. package/docs/api/contexts/index.md +3 -0
  280. package/docs/api/functions/createFunctionSymbol.md +23 -0
  281. package/docs/api/functions/createMethodSymbol.md +23 -0
  282. package/docs/api/functions/createModule.md +18 -0
  283. package/docs/api/functions/createPythonNamePolicy.md +17 -0
  284. package/docs/api/functions/getCallSignatureProps.md +21 -0
  285. package/docs/api/functions/index.md +13 -0
  286. package/docs/api/functions/isParameterDescriptor.md +18 -0
  287. package/docs/api/functions/isTypeRefContext.md +17 -0
  288. package/docs/api/functions/ref.md +25 -0
  289. package/docs/api/functions/usePythonLexicalScope.md +17 -0
  290. package/docs/api/functions/usePythonNamePolicy.md +17 -0
  291. package/docs/api/functions/usePythonScope.md +17 -0
  292. package/docs/api/index.md +7 -0
  293. package/docs/api/types/AddImportOptions.md +7 -0
  294. package/docs/api/types/BaseDeclarationProps.md +10 -0
  295. package/docs/api/types/CommonFunctionProps.md +15 -0
  296. package/docs/api/types/CreateModuleProps.md +8 -0
  297. package/docs/api/types/CreatePythonSymbolFunctionOptions.md +9 -0
  298. package/docs/api/types/DataclassDecoratorKey.md +5 -0
  299. package/docs/api/types/DataclassDecoratorKwargs.md +5 -0
  300. package/docs/api/types/EnumPropsBase.md +11 -0
  301. package/docs/api/types/GoogleStyleDocAttributeProps.md +9 -0
  302. package/docs/api/types/ImportRecordProps.md +7 -0
  303. package/docs/api/types/ImportRecords.md +8 -0
  304. package/docs/api/types/ImportedSymbol.md +10 -0
  305. package/docs/api/types/LexicalScopeProps.md +5 -0
  306. package/docs/api/types/MemberExpressionPartProps.md +13 -0
  307. package/docs/api/types/ModuleDescriptor.md +7 -0
  308. package/docs/api/types/ModuleRefkeys.md +7 -0
  309. package/docs/api/types/NamedMap.md +7 -0
  310. package/docs/api/types/ParameterDescriptor.md +13 -0
  311. package/docs/api/types/ParameterMarker.md +5 -0
  312. package/docs/api/types/PropertyMethodDeclarationProps.md +9 -0
  313. package/docs/api/types/PythonElements.md +5 -0
  314. package/docs/api/types/PythonLexicalScope.md +11 -0
  315. package/docs/api/types/PythonMemberScope.md +9 -0
  316. package/docs/api/types/PythonModuleScope.md +13 -0
  317. package/docs/api/types/PythonOutputScope.md +5 -0
  318. package/docs/api/types/PythonOutputSymbol.md +21 -0
  319. package/docs/api/types/PythonOutputSymbolOptions.md +10 -0
  320. package/docs/api/types/RefOptions.md +7 -0
  321. package/docs/api/types/SubscriptionProps.md +9 -0
  322. package/docs/api/types/index.md +31 -0
  323. package/docs/api/variables/abcModule.md +7 -0
  324. package/docs/api/variables/dataclassDecoratorKeySet.md +5 -0
  325. package/docs/api/variables/dataclassDecoratorKeys.md +7 -0
  326. package/docs/api/variables/dataclassesModule.md +7 -0
  327. package/docs/api/variables/enumModule.md +7 -0
  328. package/docs/api/variables/index.md +8 -0
  329. package/docs/api/variables/requestsModule.md +8 -0
  330. package/package.json +7 -5
  331. package/src/components/CallSignature.tsx +6 -2
  332. package/src/components/ImportStatement.tsx +51 -4
  333. package/src/components/Reference.tsx +3 -1
  334. package/src/components/SourceFile.tsx +44 -8
  335. package/src/components/TypeRefContext.tsx +36 -0
  336. package/src/components/TypeReference.tsx +15 -7
  337. package/src/components/VariableDeclaration.tsx +5 -1
  338. package/src/components/index.ts +1 -1
  339. package/src/context/index.ts +1 -0
  340. package/src/context/type-ref-context.tsx +16 -0
  341. package/src/name-conflict-resolver.ts +4 -10
  342. package/src/symbols/python-module-scope.ts +55 -2
  343. package/src/symbols/python-output-symbol.ts +32 -1
  344. package/src/symbols/reference.tsx +10 -0
  345. package/temp/api.json +441 -336
  346. package/test/dataclassdeclarations.test.tsx +8 -2
  347. package/test/externals.test.tsx +8 -2
  348. package/test/functiondeclaration.test.tsx +6 -3
  349. package/test/imports.test.tsx +6 -6
  350. package/test/references.test.tsx +1 -1
  351. package/test/sourcefiles.test.tsx +13 -13
  352. package/test/type-checking-imports.test.tsx +363 -0
  353. package/test/uniontypeexpression.test.tsx +4 -1
  354. package/test/variables.test.tsx +4 -1
  355. package/vitest.config.ts +8 -0
@@ -0,0 +1,287 @@
1
+ import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$mergeProps, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { DeclarationContext, List, Show, childrenArray, code, createContext, findKeyedChild, findUnkeyedChildren, taggedComponent, useContext } from "@alloy-js/core";
3
+ import { createMethodSymbol } from "../symbols/factories.js";
4
+ import { Atom } from "./Atom.js";
5
+ import { MethodDeclarationBase } from "./MethodBase.js";
6
+ const setterTag = Symbol();
7
+ const deleterTag = Symbol();
8
+
9
+ /** Context to provide property type information within a PropertyDeclaration */
10
+ const PropertyContext = createContext();
11
+
12
+ /**
13
+ * Declares a Python property with optional getter, setter, and deleter methods.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <py.PropertyDeclaration name="name" type={{ children: "str" }}>
18
+ * return self._name
19
+ * </py.PropertyDeclaration>
20
+ * ```
21
+ * Generates:
22
+ * ```python
23
+ * @property
24
+ * def name(self) -> str:
25
+ * return self._name
26
+ * ```
27
+ *
28
+ * @example Setter and deleter
29
+ * ```tsx
30
+ * <py.PropertyDeclaration name="value" type={{ children: "int" }}>
31
+ * return self._value
32
+ * <py.PropertyDeclaration.Setter type={{ children: "int" }}>
33
+ * self._value = value
34
+ * </py.PropertyDeclaration.Setter>
35
+ * <py.PropertyDeclaration.Deleter>
36
+ * del self._value
37
+ * </py.PropertyDeclaration.Deleter>
38
+ * </py.PropertyDeclaration>
39
+ * ```
40
+ * Generates:
41
+ * ```python
42
+ * @property
43
+ * def value(self) -> int:
44
+ * return self._value
45
+ *
46
+ * @value.setter
47
+ * def value(self, value: int) -> None:
48
+ * self._value = value
49
+ *
50
+ * @value.deleter
51
+ * def value(self) -> None:
52
+ * del self._value
53
+ * ```
54
+ *
55
+ * @remarks
56
+ * The property must be declared within a class. The getter method is
57
+ * automatically generated using the `@property` decorator. Use the nested
58
+ * `Setter` and `Deleter` components to add mutators.
59
+ */
60
+
61
+ export function PropertyDeclaration(props) {
62
+ const nonEmptyOrNotImplemented = children => {
63
+ if (children && childrenArray(() => children).length > 0) {
64
+ return children;
65
+ } else {
66
+ return [code`raise NotImplementedError`];
67
+ }
68
+ };
69
+ const children = childrenArray(() => props.children);
70
+ const setterComponent = findKeyedChild(children, PropertyDeclaration.Setter.tag) ?? undefined;
71
+ const deleterComponent = findKeyedChild(children, PropertyDeclaration.Deleter.tag) ?? undefined;
72
+ const setterChildren = nonEmptyOrNotImplemented(setterComponent?.props?.children);
73
+ const deleterChildren = nonEmptyOrNotImplemented(deleterComponent?.props?.children);
74
+ const unkeyedChildren = nonEmptyOrNotImplemented(findUnkeyedChildren(children));
75
+ const sym = createMethodSymbol(props.name, {
76
+ refkeys: props.refkey
77
+ });
78
+ return [_$createComponent(DeclarationContext.Provider, {
79
+ value: sym,
80
+ get children() {
81
+ return _$createComponent(PropertyContext.Provider, {
82
+ get value() {
83
+ return props.type;
84
+ },
85
+ get children() {
86
+ return _$createComponent(List, {
87
+ hardline: true,
88
+ enderPunctuation: true,
89
+ get children() {
90
+ return [_$createComponent(PropertyMethodDeclaration, {
91
+ get abstract() {
92
+ return props.abstract;
93
+ },
94
+ get doc() {
95
+ return props.doc;
96
+ },
97
+ children: unkeyedChildren
98
+ }, {
99
+ fileName: import.meta.url,
100
+ lineNumber: 120,
101
+ columnNumber: 13
102
+ }), _$createComponent(Show, {
103
+ get when() {
104
+ return Boolean(setterComponent);
105
+ },
106
+ get children() {
107
+ return _$createComponent(PropertyDeclaration.Setter, _$mergeProps(() => setterComponent?.props, {
108
+ get type() {
109
+ return setterComponent?.props?.type ?? props.type;
110
+ },
111
+ get abstract() {
112
+ return setterComponent?.props?.abstract ?? props.abstract;
113
+ },
114
+ children: setterChildren
115
+ }), {
116
+ fileName: import.meta.url,
117
+ lineNumber: 127,
118
+ columnNumber: 15
119
+ });
120
+ }
121
+ }, {
122
+ fileName: import.meta.url,
123
+ lineNumber: 126,
124
+ columnNumber: 13
125
+ }), _$createComponent(Show, {
126
+ get when() {
127
+ return Boolean(deleterComponent);
128
+ },
129
+ get children() {
130
+ return _$createComponent(PropertyDeclaration.Deleter, _$mergeProps(() => deleterComponent?.props, {
131
+ get abstract() {
132
+ return deleterComponent?.props?.abstract ?? props.abstract;
133
+ },
134
+ children: deleterChildren
135
+ }), {
136
+ fileName: import.meta.url,
137
+ lineNumber: 136,
138
+ columnNumber: 15
139
+ });
140
+ }
141
+ }, {
142
+ fileName: import.meta.url,
143
+ lineNumber: 135,
144
+ columnNumber: 13
145
+ })];
146
+ }
147
+ }, {
148
+ fileName: import.meta.url,
149
+ lineNumber: 119,
150
+ columnNumber: 11
151
+ });
152
+ }
153
+ }, {
154
+ fileName: import.meta.url,
155
+ lineNumber: 118,
156
+ columnNumber: 9
157
+ });
158
+ }
159
+ }, {
160
+ fileName: import.meta.url,
161
+ lineNumber: 117,
162
+ columnNumber: 7
163
+ })];
164
+ }
165
+ function PropertyMethodDeclaration(props) {
166
+ const propertySymbol = useContext(DeclarationContext);
167
+ const propertyType = useContext(PropertyContext);
168
+ return [code`@property`, _$createIntrinsic("hbr", {}, {
169
+ fileName: import.meta.url,
170
+ lineNumber: 162,
171
+ columnNumber: 7
172
+ }), _$createComponent(MethodDeclarationBase, _$mergeProps(props, {
173
+ get name() {
174
+ return propertySymbol.name;
175
+ },
176
+ functionType: "instance",
177
+ returnType: propertyType,
178
+ sym: propertySymbol,
179
+ get children() {
180
+ return props.children;
181
+ }
182
+ }), {
183
+ fileName: import.meta.url,
184
+ lineNumber: 163,
185
+ columnNumber: 7
186
+ })];
187
+ }
188
+ function PropertyMethodBase(props) {
189
+ const propertySymbol = useContext(DeclarationContext);
190
+ const {
191
+ decoratorType,
192
+ parameters,
193
+ children,
194
+ ...restProps
195
+ } = props;
196
+ return [_$memo(() => code`@${propertySymbol.name}.${decoratorType}`), _$createIntrinsic("hbr", {}, {
197
+ fileName: import.meta.url,
198
+ lineNumber: 189,
199
+ columnNumber: 7
200
+ }), _$createComponent(MethodDeclarationBase, _$mergeProps(restProps, {
201
+ get name() {
202
+ return propertySymbol.name;
203
+ },
204
+ functionType: "instance",
205
+ parameters: parameters,
206
+ get returnType() {
207
+ return _$createComponent(Atom, {
208
+ jsValue: null
209
+ }, {
210
+ fileName: import.meta.url,
211
+ lineNumber: 195,
212
+ columnNumber: 21
213
+ });
214
+ },
215
+ sym: propertySymbol,
216
+ children: children
217
+ }), {
218
+ fileName: import.meta.url,
219
+ lineNumber: 190,
220
+ columnNumber: 7
221
+ })];
222
+ }
223
+
224
+ /**
225
+ * Adds a setter to a `PropertyDeclaration`.
226
+ *
227
+ * @example
228
+ * ```tsx
229
+ * <py.PropertyDeclaration name="value" type={{ children: "int" }}>
230
+ * return self._value
231
+ * <py.PropertyDeclaration.Setter type={{ children: "int" }}>
232
+ * self._value = value
233
+ * </py.PropertyDeclaration.Setter>
234
+ * </py.PropertyDeclaration>
235
+ * ```
236
+ * Generates:
237
+ * ```python
238
+ * @value.setter
239
+ * def value(self, value: int) -> None:
240
+ * self._value = value
241
+ * ```
242
+ */
243
+ PropertyDeclaration.Setter = taggedComponent(setterTag, function PropertySetter(props) {
244
+ return _$createComponent(PropertyMethodBase, _$mergeProps({
245
+ decoratorType: "setter",
246
+ get parameters() {
247
+ return [{
248
+ name: "value",
249
+ type: props.type
250
+ }];
251
+ }
252
+ }, props), {
253
+ fileName: import.meta.url,
254
+ lineNumber: 229,
255
+ columnNumber: 7
256
+ });
257
+ });
258
+
259
+ /**
260
+ * Adds a deleter to a `PropertyDeclaration`.
261
+ *
262
+ * @example
263
+ * ```tsx
264
+ * <py.PropertyDeclaration name="value" type={{ children: "int" }}>
265
+ * return self._value
266
+ * <py.PropertyDeclaration.Deleter>
267
+ * del self._value
268
+ * </py.PropertyDeclaration.Deleter>
269
+ * </py.PropertyDeclaration>
270
+ * ```
271
+ * Generates:
272
+ * ```python
273
+ * @value.deleter
274
+ * def value(self) -> None:
275
+ * del self._value
276
+ * ```
277
+ */
278
+ PropertyDeclaration.Deleter = taggedComponent(deleterTag, function PropertyDeleter(props) {
279
+ return _$createComponent(PropertyMethodBase, _$mergeProps({
280
+ decoratorType: "deleter"
281
+ }, props), {
282
+ fileName: import.meta.url,
283
+ lineNumber: 262,
284
+ columnNumber: 12
285
+ });
286
+ });
287
+ //# sourceMappingURL=PropertyDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DeclarationContext","List","Show","childrenArray","code","createContext","findKeyedChild","findUnkeyedChildren","taggedComponent","useContext","createMethodSymbol","Atom","MethodDeclarationBase","setterTag","Symbol","deleterTag","PropertyContext","PropertyDeclaration","props","nonEmptyOrNotImplemented","children","length","setterComponent","Setter","tag","undefined","deleterComponent","Deleter","setterChildren","deleterChildren","unkeyedChildren","sym","name","refkeys","refkey","_$createComponent","Provider","value","type","hardline","enderPunctuation","PropertyMethodDeclaration","abstract","doc","fileName","import","meta","url","lineNumber","columnNumber","when","Boolean","_$mergeProps","propertySymbol","propertyType","_$createIntrinsic","functionType","returnType","PropertyMethodBase","decoratorType","parameters","restProps","_$memo","jsValue","PropertySetter","PropertyDeleter"],"sources":["../../../../src/components/PropertyDeclaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}