@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
@@ -1,9 +1,10 @@
1
1
  import { memo as _$memo, createIntrinsic as _$createIntrinsic, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
- import { childrenArray, SourceFile as CoreSourceFile, createNamedContext, createScope, isComponentCreator, List, Scope, Show, SourceDirectoryContext, useContext } from "@alloy-js/core";
2
+ import { childrenArray, computed, SourceFile as CoreSourceFile, createNamedContext, createScope, isComponentCreator, List, Scope, Show, SourceDirectoryContext, useContext } from "@alloy-js/core";
3
3
  import { join } from "pathe";
4
4
  import { PythonModuleScope } from "../symbols/index.js";
5
- import { ImportStatements } from "./ImportStatement.js";
5
+ import { categorizeImportRecords, ImportStatements } from "./ImportStatement.js";
6
6
  import { SimpleCommentBlock } from "./PyDoc.js";
7
+ import { PythonBlock } from "./PythonBlock.js";
7
8
  import { Reference } from "./Reference.js";
8
9
 
9
10
  // Non top-level definitions
@@ -100,6 +101,24 @@ export function SourceFile(props) {
100
101
 
101
102
  // Check if there's any preamble content (header, doc, imports, etc.)
102
103
  const hasPreamble = props.header !== undefined || props.headerComment !== undefined || props.doc !== undefined || props.futureImports !== undefined;
104
+ const imports = computed(() => {
105
+ // Quick scan for any type-only imports
106
+ const hasTypeImports = [...scope.importedModules.values()].some(props => props.symbols && [...props.symbols].some(s => s.local.isTypeOnly));
107
+
108
+ // Add TYPE_CHECKING before categorizing so it's naturally included
109
+ const typeImportSymbol = hasTypeImports ? scope.addTypeImport() : undefined;
110
+
111
+ // Single categorize - TYPE_CHECKING is already in scope.importedModules
112
+ const {
113
+ valueImports,
114
+ typeImports
115
+ } = categorizeImportRecords(scope.importedModules);
116
+ return {
117
+ valueImports,
118
+ typeImports,
119
+ typeImportSymbol
120
+ };
121
+ });
103
122
  return _$createComponent(CoreSourceFile, {
104
123
  get path() {
105
124
  return props.path;
@@ -170,20 +189,40 @@ export function SourceFile(props) {
170
189
  }
171
190
  }), _$createComponent(Show, {
172
191
  get when() {
173
- return scope.importedModules.size > 0;
192
+ return imports.value.valueImports.size > 0;
174
193
  },
175
194
  get children() {
176
195
  return [_$createComponent(ImportStatements, {
177
196
  get records() {
178
- return scope.importedModules;
197
+ return imports.value.valueImports;
179
198
  }
180
- }), _$createComponent(Show, {
181
- when: hasChildren,
199
+ }), _$createIntrinsic("hbr", {})];
200
+ }
201
+ }), _$createComponent(Show, {
202
+ get when() {
203
+ return imports.value.typeImports.size > 0;
204
+ },
205
+ get children() {
206
+ return [_$createIntrinsic("hbr", {}), _$createComponent(PythonBlock, {
207
+ get opener() {
208
+ return `if ${imports.value.typeImportSymbol.name}:`;
209
+ },
182
210
  get children() {
183
- return [_$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})];
211
+ return _$createComponent(ImportStatements, {
212
+ get records() {
213
+ return imports.value.typeImports;
214
+ }
215
+ });
184
216
  }
185
217
  })];
186
218
  }
219
+ }), _$createComponent(Show, {
220
+ get when() {
221
+ return hasChildren && scope.importedModules.size > 0;
222
+ },
223
+ get children() {
224
+ return _$createIntrinsic("hbr", {});
225
+ }
187
226
  }), _$createComponent(Show, {
188
227
  get when() {
189
228
  return needsExtraSpacing && (hasPreamble || scope.importedModules.size > 0);
@@ -1 +1 @@
1
- {"version":3,"names":["childrenArray","SourceFile","CoreSourceFile","createNamedContext","createScope","isComponentCreator","List","Scope","Show","SourceDirectoryContext","useContext","join","PythonModuleScope","ImportStatements","SimpleCommentBlock","Reference","NON_DEFINITION_NAMES","Set","WRAPPER_COMPONENT_NAMES","firstChildIsDefinition","children","arr","length","first","name","component","has","props","PythonSourceFileContext","useSourceFile","directoryContext","currentDir","path","replace","scope","undefined","sfContext","module","hasChildren","needsExtraSpacing","hasPreamble","header","headerComment","doc","futureImports","_$createComponent","filetype","reference","when","_$createIntrinsic","_$memo","importedModules","size","records","Provider","value","doubleHardline"],"sources":["../../../src/components/SourceFile.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["childrenArray","computed","SourceFile","CoreSourceFile","createNamedContext","createScope","isComponentCreator","List","Scope","Show","SourceDirectoryContext","useContext","join","PythonModuleScope","categorizeImportRecords","ImportStatements","SimpleCommentBlock","PythonBlock","Reference","NON_DEFINITION_NAMES","Set","WRAPPER_COMPONENT_NAMES","firstChildIsDefinition","children","arr","length","first","name","component","has","props","PythonSourceFileContext","useSourceFile","directoryContext","currentDir","path","replace","scope","undefined","sfContext","module","hasChildren","needsExtraSpacing","hasPreamble","header","headerComment","doc","futureImports","imports","hasTypeImports","importedModules","values","some","symbols","s","local","isTypeOnly","typeImportSymbol","addTypeImport","valueImports","typeImports","_$createComponent","filetype","reference","when","_$createIntrinsic","_$memo","value","size","records","opener","Provider","doubleHardline"],"sources":["../../../src/components/SourceFile.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import type { Children } from "@alloy-js/core";
2
+ import { isTypeRefContext } from "../context/type-ref-context.js";
3
+ export { isTypeRefContext };
4
+ export interface TypeRefContextProps {
5
+ /**
6
+ * Children
7
+ */
8
+ children: Children;
9
+ }
10
+ /**
11
+ * Set the current context of reference to be type reference.
12
+ *
13
+ * @remarks
14
+ * References used inside the children of this component will be treated as
15
+ * type-only references. When a symbol is only referenced in type contexts,
16
+ * it will be imported inside a `if TYPE_CHECKING:` block.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <TypeRefContext>
21
+ * {someTypeRefkey}
22
+ * </TypeRefContext>
23
+ * ```
24
+ */
25
+ export declare const TypeRefContext: ({ children }: TypeRefContextProps) => Children;
26
+ //# sourceMappingURL=TypeRefContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeRefContext.d.ts","sourceRoot":"","sources":["../../../src/components/TypeRefContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,GAAI,cAAc,mBAAmB,aAI/D,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { isTypeRefContext, TypeRefContextDef } from "../context/type-ref-context.js";
3
+
4
+ // Re-export for external use
5
+ export { isTypeRefContext };
6
+ /**
7
+ * Set the current context of reference to be type reference.
8
+ *
9
+ * @remarks
10
+ * References used inside the children of this component will be treated as
11
+ * type-only references. When a symbol is only referenced in type contexts,
12
+ * it will be imported inside a `if TYPE_CHECKING:` block.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <TypeRefContext>
17
+ * {someTypeRefkey}
18
+ * </TypeRefContext>
19
+ * ```
20
+ */
21
+ export const TypeRefContext = ({
22
+ children
23
+ }) => {
24
+ return _$createComponent(TypeRefContextDef.Provider, {
25
+ value: true,
26
+ children: children
27
+ });
28
+ };
29
+ //# sourceMappingURL=TypeRefContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isTypeRefContext","TypeRefContextDef","TypeRefContext","children","_$createComponent","Provider","value"],"sources":["../../../src/components/TypeRefContext.tsx"],"sourcesContent":[null],"mappings":";AACA,SACEA,gBAAgB,EAChBC,iBAAiB,QACZ,gCAAgC;;AAEvC;AACA,SAASD,gBAAgB;AASzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,cAAc,GAAGA,CAAC;EAAEC;AAA8B,CAAC,KAAK;EACnE,OAAAC,iBAAA,CACGH,iBAAiB,CAACI,QAAQ;IAACC,KAAK;IAAAH,QAAA,EAAEA;EAAQ;AAE/C,CAAC","ignoreList":[]}
@@ -9,6 +9,11 @@ export interface TypeReferenceProps {
9
9
  }
10
10
  /**
11
11
  * A type reference like Foo[T, P] or int.
12
+ *
13
+ * @remarks
14
+ * This component automatically wraps its content in a type reference context,
15
+ * so any symbols referenced via refkey will be imported as type-only
16
+ * (inside a `if TYPE_CHECKING:` block) unless also used as values elsewhere.
12
17
  */
13
18
  export declare function TypeReference(props: TypeReferenceProps): Children;
14
19
  //# sourceMappingURL=TypeReference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeReference.d.ts","sourceRoot":"","sources":["../../../src/components/TypeReference.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAQ,MAAM,gBAAgB,CAAC;AAGxD,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,YAiBtD"}
1
+ {"version":3,"file":"TypeReference.d.ts","sourceRoot":"","sources":["../../../src/components/TypeReference.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAQ,MAAM,gBAAgB,CAAC;AAIxD,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,YAmBtD"}
@@ -1,8 +1,14 @@
1
1
  import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
2
  import { Show } from "@alloy-js/core";
3
3
  import { TypeArguments } from "./TypeArguments.js";
4
+ import { TypeRefContext } from "./TypeRefContext.js";
4
5
  /**
5
6
  * A type reference like Foo[T, P] or int.
7
+ *
8
+ * @remarks
9
+ * This component automatically wraps its content in a type reference context,
10
+ * so any symbols referenced via refkey will be imported as type-only
11
+ * (inside a `if TYPE_CHECKING:` block) unless also used as values elsewhere.
6
12
  */
7
13
  export function TypeReference(props) {
8
14
  const type = props.refkey ? props.refkey : props.name;
@@ -11,18 +17,22 @@ export function TypeReference(props) {
11
17
  return props.typeArgs;
12
18
  }
13
19
  }) : undefined;
14
- return _$createIntrinsic("group", {
20
+ return _$createComponent(TypeRefContext, {
15
21
  get children() {
16
- return [_$createIntrinsic("indent", {
22
+ return _$createIntrinsic("group", {
17
23
  get children() {
18
- return [_$createIntrinsic("sbr", {}), type, _$createComponent(Show, {
19
- get when() {
20
- return Boolean(typeArgs);
21
- },
22
- children: typeArgs
23
- })];
24
+ return [_$createIntrinsic("indent", {
25
+ get children() {
26
+ return [_$createIntrinsic("sbr", {}), type, _$createComponent(Show, {
27
+ get when() {
28
+ return Boolean(typeArgs);
29
+ },
30
+ children: typeArgs
31
+ })];
32
+ }
33
+ }), _$createIntrinsic("sbr", {})];
24
34
  }
25
- }), _$createIntrinsic("sbr", {})];
35
+ });
26
36
  }
27
37
  });
28
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Show","TypeArguments","TypeReference","props","type","refkey","name","typeArgs","length","_$createComponent","args","undefined","_$createIntrinsic","children","when","Boolean"],"sources":["../../../src/components/TypeReference.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAA2BA,IAAI,QAAQ,gBAAgB;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAWlD;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,IAAI,GAAGD,KAAK,CAACE,MAAM,GAAGF,KAAK,CAACE,MAAM,GAAGF,KAAK,CAACG,IAAI;EACrD,MAAMC,QAAQ,GACZJ,KAAK,CAACI,QAAQ,IAAIJ,KAAK,CAACI,QAAQ,CAACC,MAAM,GAAAC,iBAAA,CACpCR,aAAa;IAAA,IAACS,IAAIA,CAAA;MAAA,OAAEP,KAAK,CAACI,QAAQ;IAAA;EAAA,KACnCI,SAAS;EAEb,OAAAC,iBAAA;IAAA,IAAAC,SAAA;MAAA,QAAAD,iBAAA;QAAA,IAAAC,SAAA;UAAA,QAAAD,iBAAA,aAIOR,IAAI,EAAAK,iBAAA,CACJT,IAAI;YAAA,IAACc,IAAIA,CAAA;cAAA,OAAEC,OAAO,CAACR,QAAQ,CAAC;YAAA;YAAAM,QAAA,EAAGN;UAAQ;QAAA;MAAA,IAAAK,iBAAA;IAAA;EAAA;AAKhD","ignoreList":[]}
1
+ {"version":3,"names":["Show","TypeArguments","TypeRefContext","TypeReference","props","type","refkey","name","typeArgs","length","_$createComponent","args","undefined","children","_$createIntrinsic","when","Boolean"],"sources":["../../../src/components/TypeReference.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAA2BA,IAAI,QAAQ,gBAAgB;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,cAAc,QAAQ,qBAAqB;AAWpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,IAAI,GAAGD,KAAK,CAACE,MAAM,GAAGF,KAAK,CAACE,MAAM,GAAGF,KAAK,CAACG,IAAI;EACrD,MAAMC,QAAQ,GACZJ,KAAK,CAACI,QAAQ,IAAIJ,KAAK,CAACI,QAAQ,CAACC,MAAM,GAAAC,iBAAA,CACpCT,aAAa;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAEP,KAAK,CAACI,QAAQ;IAAA;EAAA,KACnCI,SAAS;EAEb,OAAAF,iBAAA,CACGR,cAAc;IAAA,IAAAW,SAAA;MAAA,OAAAC,iBAAA;QAAA,IAAAD,SAAA;UAAA,QAAAC,iBAAA;YAAA,IAAAD,SAAA;cAAA,QAAAC,iBAAA,aAIRT,IAAI,EAAAK,iBAAA,CACJV,IAAI;gBAAA,IAACe,IAAIA,CAAA;kBAAA,OAAEC,OAAO,CAACR,QAAQ,CAAC;gBAAA;gBAAAK,QAAA,EAAGL;cAAQ;YAAA;UAAA,IAAAM,iBAAA;QAAA;MAAA;IAAA;EAAA;AAMlD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VariableDeclaration.d.ts","sourceRoot":"","sources":["../../../src/components/VariableDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,YA6ElE"}
1
+ {"version":3,"file":"VariableDeclaration.d.ts","sourceRoot":"","sources":["../../../src/components/VariableDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,YAgFlE"}
@@ -3,6 +3,7 @@ import { Declaration as CoreDeclaration, Name, Show, createSymbolSlot, memo } fr
3
3
  import { createPythonSymbol } from "../symbol-creation.js";
4
4
  import { Atom } from "./Atom.js";
5
5
  import { SimpleCommentBlock } from "./PyDoc.js";
6
+ import { TypeRefContext } from "./TypeRefContext.js";
6
7
  /**
7
8
  * A variable declaration component for Python.
8
9
  *
@@ -52,9 +53,13 @@ export function VariableDeclaration(props) {
52
53
  // Handle optional type annotation
53
54
  const type = memo(() => {
54
55
  if (!props.type || props.callStatementVar) return undefined;
55
- return [": ", _$createComponent(TypeSymbolSlot, {
56
+ return [":", " ", _$createComponent(TypeRefContext, {
56
57
  get children() {
57
- return props.type;
58
+ return _$createComponent(TypeSymbolSlot, {
59
+ get children() {
60
+ return props.type;
61
+ }
62
+ });
58
63
  }
59
64
  })];
60
65
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Declaration","CoreDeclaration","Name","Show","createSymbolSlot","memo","createPythonSymbol","Atom","SimpleCommentBlock","VariableDeclaration","props","TypeSymbolSlot","ValueTypeSymbolSlot","sym","name","instance","instanceVariable","refkeys","refkey","type","firstSymbol","undefined","moveMembersTo","callStatementVar","_$createComponent","children","value","initializer","assignmentOperator","getRightSide","omitNone","renderRightSideOperator","jsValue","rightSide","when","Boolean","doc","_$createIntrinsic","symbol","_$memo"],"sources":["../../../src/components/VariableDeclaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Declaration","CoreDeclaration","Name","Show","createSymbolSlot","memo","createPythonSymbol","Atom","SimpleCommentBlock","TypeRefContext","VariableDeclaration","props","TypeSymbolSlot","ValueTypeSymbolSlot","sym","name","instance","instanceVariable","refkeys","refkey","type","firstSymbol","undefined","moveMembersTo","callStatementVar","_$createComponent","children","value","initializer","assignmentOperator","getRightSide","omitNone","renderRightSideOperator","jsValue","rightSide","when","Boolean","doc","_$createIntrinsic","symbol","_$memo"],"sources":["../../../src/components/VariableDeclaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,6 @@ export type { CommonFunctionProps } from "./FunctionBase.js";
13
13
  export * from "./FunctionCallExpression.js";
14
14
  export * from "./FunctionDeclaration.js";
15
15
  export * from "./FutureStatement.js";
16
- export * from "./ImportStatement.js";
17
16
  export * from "./LexicalScope.js";
18
17
  export * from "./MemberExpression.js";
19
18
  export * from "./MemberScope.jsx";
@@ -27,6 +26,7 @@ export * from "./SourceFile.js";
27
26
  export * from "./StatementList.js";
28
27
  export * from "./StaticMethodDeclaration.js";
29
28
  export * from "./TypeArguments.js";
29
+ export * from "./TypeRefContext.js";
30
30
  export * from "./TypeReference.js";
31
31
  export * from "./UnionTypeExpression.js";
32
32
  export * from "./VariableDeclaration.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
@@ -12,7 +12,6 @@ export * from "./EnumMember.js";
12
12
  export * from "./FunctionCallExpression.js";
13
13
  export * from "./FunctionDeclaration.js";
14
14
  export * from "./FutureStatement.js";
15
- export * from "./ImportStatement.js";
16
15
  export * from "./LexicalScope.js";
17
16
  export * from "./MemberExpression.js";
18
17
  export * from "./MemberScope.js";
@@ -25,6 +24,7 @@ export * from "./SourceFile.js";
25
24
  export * from "./StatementList.js";
26
25
  export * from "./StaticMethodDeclaration.js";
27
26
  export * from "./TypeArguments.js";
27
+ export * from "./TypeRefContext.js";
28
28
  export * from "./TypeReference.js";
29
29
  export * from "./UnionTypeExpression.js";
30
30
  export * from "./VariableDeclaration.js";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,oBAAoB;AAClC,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC,cAAc,6BAA6B;AAC3C,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,8BAA8B;AAC5C,cAAc,sBAAsB;AACpC,cAAc,iBAAiB;AAE/B,cAAc,6BAA6B;AAC3C,cAAc,0BAA0B;AACxC,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC;AAEA,cAAc,wBAAwB;AACtC,cAAc,0BAA0B;AACxC,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,oBAAoB;AAClC,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,0BAA0B;AACxC,cAAc,0BAA0B;AAAC","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,oBAAoB;AAClC,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC,cAAc,6BAA6B;AAC3C,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,8BAA8B;AAC5C,cAAc,sBAAsB;AACpC,cAAc,iBAAiB;AAE/B,cAAc,6BAA6B;AAC3C,cAAc,0BAA0B;AACxC,cAAc,sBAAsB;AACpC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC;AAEA,cAAc,wBAAwB;AACtC,cAAc,0BAA0B;AACxC,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,oBAAoB;AAClC,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,0BAA0B;AACxC,cAAc,0BAA0B;AAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./type-ref-context.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./type-ref-context.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/context/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,uBAAuB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { ComponentContext } from "@alloy-js/core";
2
+ /**
3
+ * Context for tracking whether we are in a type annotation position.
4
+ * Used to determine if imports should be guarded with TYPE_CHECKING.
5
+ *
6
+ * @internal Use the TypeRefContext component instead.
7
+ */
8
+ export declare const TypeRefContextDef: ComponentContext<true>;
9
+ /**
10
+ * @returns 'true' if in a type context, 'false' if in a value context.
11
+ */
12
+ export declare function isTypeRefContext(): boolean;
13
+ //# sourceMappingURL=type-ref-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-ref-context.d.ts","sourceRoot":"","sources":["../../../src/context/type-ref-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6B,MAAM,gBAAgB,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAyB,CAAC;AAE/E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C"}
@@ -0,0 +1,17 @@
1
+ import { createContext, useContext } from "@alloy-js/core";
2
+
3
+ /**
4
+ * Context for tracking whether we are in a type annotation position.
5
+ * Used to determine if imports should be guarded with TYPE_CHECKING.
6
+ *
7
+ * @internal Use the TypeRefContext component instead.
8
+ */
9
+ export const TypeRefContextDef = createContext();
10
+
11
+ /**
12
+ * @returns 'true' if in a type context, 'false' if in a value context.
13
+ */
14
+ export function isTypeRefContext() {
15
+ return useContext(TypeRefContextDef) === true;
16
+ }
17
+ //# sourceMappingURL=type-ref-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","TypeRefContextDef","isTypeRefContext"],"sources":["../../../src/context/type-ref-context.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAA2BA,aAAa,EAAEC,UAAU,QAAQ,gBAAgB;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAyC,GAAGF,aAAa,CAAO,CAAC;;AAE9E;AACA;AACA;AACA,OAAO,SAASG,gBAAgBA,CAAA,EAAY;EAC1C,OAAOF,UAAU,CAACC,iBAAiB,CAAC,KAAK,IAAI;AAC/C","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { PythonOutputSymbol } from "./symbols/python-output-symbol.js";
2
- export declare function pythonNameConflictResolver(_: string, symbols: PythonOutputSymbol[]): void;
1
+ import { OutputSymbol } from "@alloy-js/core";
2
+ export declare function pythonNameConflictResolver(_: string, symbols: OutputSymbol[]): void;
3
3
  //# sourceMappingURL=name-conflict-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-conflict-resolver.d.ts","sourceRoot":"","sources":["../../src/name-conflict-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,kBAAkB,EAAE,QAgB9B"}
1
+ {"version":3,"file":"name-conflict-resolver.d.ts","sourceRoot":"","sources":["../../src/name-conflict-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAW5E"}
@@ -1,8 +1,8 @@
1
1
  export function pythonNameConflictResolver(_, symbols) {
2
2
  for (let i = 1; i < symbols.length; i++) {
3
- // Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
4
3
  const symbol = symbols[i];
5
- symbol.name = symbol.originalName + "_" + (i + 1) + "_" + (symbols[i].aliasTarget?.scope?.name ?? symbol.module ?? "");
4
+ // Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
5
+ symbol.name = symbol.originalName + "_" + (i + 1) + "_" + (symbol.aliasTarget?.scope?.name ?? symbol.module ?? "");
6
6
  }
7
7
  }
8
8
  //# sourceMappingURL=name-conflict-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["pythonNameConflictResolver","_","symbols","i","length","symbol","name","originalName","aliasTarget","scope","module"],"sources":["../../src/name-conflict-resolver.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,SAASA,0BAA0BA,CACxCC,CAAS,EACTC,OAA6B,EAC7B;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACvC;IACA,MAAME,MAAM,GAAGH,OAAO,CAACC,CAAC,CAIvB;IACDE,MAAM,CAACC,IAAI,GACTD,MAAM,CAACE,YAAY,GACnB,GAAG,IACFJ,CAAC,GAAG,CAAC,CAAC,GACP,GAAG,IACFD,OAAO,CAACC,CAAC,CAAC,CAACK,WAAW,EAAEC,KAAK,EAAEH,IAAI,IAAID,MAAM,CAACK,MAAM,IAAI,EAAE,CAAC;EAChE;AACF","ignoreList":[]}
1
+ {"version":3,"names":["pythonNameConflictResolver","_","symbols","i","length","symbol","name","originalName","aliasTarget","scope","module"],"sources":["../../src/name-conflict-resolver.ts"],"sourcesContent":[null],"mappings":"AAGA,OAAO,SAASA,0BAA0BA,CAACC,CAAS,EAAEC,OAAuB,EAAE;EAC7E,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACvC,MAAME,MAAM,GAAGH,OAAO,CAACC,CAAC,CAAuB;IAC/C;IACAE,MAAM,CAACC,IAAI,GACTD,MAAM,CAACE,YAAY,GACnB,GAAG,IACFJ,CAAC,GAAG,CAAC,CAAC,GACP,GAAG,IACFE,MAAM,CAACG,WAAW,EAAEC,KAAK,EAAEH,IAAI,IAAID,MAAM,CAACK,MAAM,IAAI,EAAE,CAAC;EAC5D;AACF","ignoreList":[]}
@@ -11,11 +11,23 @@ export interface ImportRecordProps {
11
11
  }
12
12
  export declare class ImportRecords extends Map<PythonModuleScope, ImportRecordProps> {
13
13
  }
14
+ export interface AddImportOptions {
15
+ /**
16
+ * If true, this import is only used in type annotation contexts.
17
+ * Such imports will be guarded with `if TYPE_CHECKING:`.
18
+ */
19
+ type?: boolean;
20
+ }
14
21
  export declare class PythonModuleScope extends PythonLexicalScope {
15
22
  #private;
16
23
  get importedSymbols(): Map<PythonOutputSymbol, PythonOutputSymbol>;
17
24
  get importedModules(): ImportRecords;
18
- addImport(targetSymbol: PythonOutputSymbol, targetModule: PythonModuleScope): PythonOutputSymbol;
25
+ addImport(targetSymbol: PythonOutputSymbol, targetModule: PythonModuleScope, options?: AddImportOptions): PythonOutputSymbol;
26
+ /**
27
+ * Add TYPE_CHECKING import from the typing module.
28
+ * Returns the local symbol for use in the if block opener.
29
+ */
30
+ addTypeImport(): PythonOutputSymbol;
19
31
  get debugInfo(): Record<string, unknown>;
20
32
  }
21
33
  //# sourceMappingURL=python-module-scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"python-module-scope.d.ts","sourceRoot":"","sources":["../../../src/symbols/python-module-scope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,qBAAa,cAAc;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;gBAEf,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;IAKjE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;CAGlE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC9B;AAED,qBAAa,aAAc,SAAQ,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;CAAG;AAE/E,qBAAa,iBAAkB,SAAQ,kBAAkB;;IAGvD,IAAI,eAAe,gDAElB;IAGD,IAAI,eAAe,kBAElB;IAED,SAAS,CAAC,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB;IA4B3E,IAAa,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMhD;CACF"}
1
+ {"version":3,"file":"python-module-scope.d.ts","sourceRoot":"","sources":["../../../src/symbols/python-module-scope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0B/D,qBAAa,cAAc;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;gBAEf,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;IAKjE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;CAGlE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC9B;AAED,qBAAa,aAAc,SAAQ,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;CAAG;AAE/E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,iBAAkB,SAAQ,kBAAkB;;IAGvD,IAAI,eAAe,gDAElB;IAGD,IAAI,eAAe,kBAElB;IAED,SAAS,CACP,YAAY,EAAE,kBAAkB,EAChC,YAAY,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE,gBAAgB;IAqC5B;;;OAGG;IACH,aAAa,IAAI,kBAAkB;IAKnC,IAAa,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMhD;CACF"}
@@ -1,6 +1,26 @@
1
1
  import { createSymbol, reactive, shallowReactive } from "@alloy-js/core";
2
2
  import { PythonLexicalScope } from "./python-lexical-scope.js";
3
3
  import { PythonOutputSymbol } from "./python-output-symbol.js";
4
+
5
+ // Internal typing module for TYPE_CHECKING imports
6
+ let _typingModuleScope;
7
+ let _typeCheckingSymbol;
8
+
9
+ /**
10
+ * Get the internal typing module scope and TYPE_CHECKING symbol.
11
+ * Used by addTypeImport() to add TYPE_CHECKING imports without
12
+ * going through the binder's refkey resolution.
13
+ */
14
+ function getTypingModuleInternal() {
15
+ if (!_typingModuleScope) {
16
+ _typingModuleScope = new PythonModuleScope("typing", undefined);
17
+ _typeCheckingSymbol = new PythonOutputSymbol("TYPE_CHECKING", _typingModuleScope.symbols, {});
18
+ }
19
+ return {
20
+ scope: _typingModuleScope,
21
+ TYPE_CHECKING: _typeCheckingSymbol
22
+ };
23
+ }
4
24
  export class ImportedSymbol {
5
25
  constructor(target, local) {
6
26
  this.target = target;
@@ -20,9 +40,13 @@ export class PythonModuleScope extends PythonLexicalScope {
20
40
  get importedModules() {
21
41
  return this.#importedModules;
22
42
  }
23
- addImport(targetSymbol, targetModule) {
43
+ addImport(targetSymbol, targetModule, options) {
24
44
  const existing = this.importedSymbols.get(targetSymbol);
25
45
  if (existing) {
46
+ // If existing is type-only but now used as value, upgrade it
47
+ if (!options?.type && existing.isTypeOnly) {
48
+ existing.markAsValue();
49
+ }
26
50
  return existing;
27
51
  }
28
52
  if (!this.importedModules.has(targetModule)) {
@@ -32,7 +56,8 @@ export class PythonModuleScope extends PythonLexicalScope {
32
56
  }
33
57
  const localSymbol = createSymbol(PythonOutputSymbol, targetSymbol.name, this.symbols, {
34
58
  binder: this.binder,
35
- aliasTarget: targetSymbol
59
+ aliasTarget: targetSymbol,
60
+ typeOnly: options?.type
36
61
  });
37
62
  this.importedSymbols.set(targetSymbol, localSymbol);
38
63
  this.importedModules.get(targetModule).symbols?.add({
@@ -41,6 +66,15 @@ export class PythonModuleScope extends PythonLexicalScope {
41
66
  });
42
67
  return localSymbol;
43
68
  }
69
+
70
+ /**
71
+ * Add TYPE_CHECKING import from the typing module.
72
+ * Returns the local symbol for use in the if block opener.
73
+ */
74
+ addTypeImport() {
75
+ const typing = getTypingModuleInternal();
76
+ return this.addImport(typing.TYPE_CHECKING, typing.scope);
77
+ }
44
78
  get debugInfo() {
45
79
  return {
46
80
  ...super.debugInfo,
@@ -1 +1 @@
1
- {"version":3,"names":["createSymbol","reactive","shallowReactive","PythonLexicalScope","PythonOutputSymbol","ImportedSymbol","constructor","target","local","from","ImportRecords","Map","PythonModuleScope","importedSymbols","importedModules","addImport","targetSymbol","targetModule","existing","get","has","set","symbols","Set","localSymbol","name","binder","aliasTarget","add","debugInfo","importedSymbolCount","size","importedModuleCount"],"sources":["../../../src/symbols/python-module-scope.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,EAAEC,eAAe,QAAQ,gBAAgB;AACxE,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,kBAAkB,QAAQ,2BAA2B;AAE9D,OAAO,MAAMC,cAAc,CAAC;EAI1BC,WAAWA,CAACC,MAA0B,EAAEC,KAAyB,EAAE;IACjE,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEA,OAAOC,IAAIA,CAACF,MAA0B,EAAEC,KAAyB,EAAE;IACjE,OAAO,IAAIH,cAAc,CAACE,MAAM,EAAEC,KAAK,CAAC;EAC1C;AACF;AAMA,OAAO,MAAME,aAAa,SAASC,GAAG,CAAuC;AAE7E,OAAO,MAAMC,iBAAiB,SAAST,kBAAkB,CAAC;EACxD,CAACU,eAAe,GACdX,eAAe,CAAC,IAAIS,GAAG,CAAC,CAAC,CAAC;EAC5B,IAAIE,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAAC,CAACA,eAAe;EAC9B;EAEA,CAACC,eAAe,GAAkBb,QAAQ,CAAC,IAAIU,GAAG,CAAC,CAAC,CAAC;EACrD,IAAIG,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAAC,CAACA,eAAe;EAC9B;EAEAC,SAASA,CAACC,YAAgC,EAAEC,YAA+B,EAAE;IAC3E,MAAMC,QAAQ,GAAG,IAAI,CAACL,eAAe,CAACM,GAAG,CAACH,YAAY,CAAC;IACvD,IAAIE,QAAQ,EAAE;MACZ,OAAOA,QAAQ;IACjB;IAEA,IAAI,CAAC,IAAI,CAACJ,eAAe,CAACM,GAAG,CAACH,YAAY,CAAC,EAAE;MAC3C,IAAI,CAACH,eAAe,CAACO,GAAG,CAACJ,YAAY,EAAE;QACrCK,OAAO,EAAE,IAAIC,GAAG,CAAiB;MACnC,CAAC,CAAC;IACJ;IAEA,MAAMC,WAAW,GAAGxB,YAAY,CAC9BI,kBAAkB,EAClBY,YAAY,CAACS,IAAI,EACjB,IAAI,CAACH,OAAO,EACZ;MAAEI,MAAM,EAAE,IAAI,CAACA,MAAM;MAAEC,WAAW,EAAEX;IAAa,CACnD,CAAC;IAED,IAAI,CAACH,eAAe,CAACQ,GAAG,CAACL,YAAY,EAAEQ,WAAW,CAAC;IACnD,IAAI,CAACV,eAAe,CAACK,GAAG,CAACF,YAAY,CAAC,CAAEK,OAAO,EAAEM,GAAG,CAAC;MACnDpB,KAAK,EAAEgB,WAAW;MAClBjB,MAAM,EAAES;IACV,CAAC,CAAC;IAEF,OAAOQ,WAAW;EACpB;EAEA,IAAaK,SAASA,CAAA,EAA4B;IAChD,OAAO;MACL,GAAG,KAAK,CAACA,SAAS;MAClBC,mBAAmB,EAAE,IAAI,CAAC,CAACjB,eAAe,CAACkB,IAAI;MAC/CC,mBAAmB,EAAE,IAAI,CAAC,CAAClB,eAAe,CAACiB;IAC7C,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createSymbol","reactive","shallowReactive","PythonLexicalScope","PythonOutputSymbol","_typingModuleScope","_typeCheckingSymbol","getTypingModuleInternal","PythonModuleScope","undefined","symbols","scope","TYPE_CHECKING","ImportedSymbol","constructor","target","local","from","ImportRecords","Map","importedSymbols","importedModules","addImport","targetSymbol","targetModule","options","existing","get","type","isTypeOnly","markAsValue","has","set","Set","localSymbol","name","binder","aliasTarget","typeOnly","add","addTypeImport","typing","debugInfo","importedSymbolCount","size","importedModuleCount"],"sources":["../../../src/symbols/python-module-scope.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  import { Namekey, OutputSpace, OutputSymbol, OutputSymbolOptions } from "@alloy-js/core";
2
2
  export interface PythonOutputSymbolOptions extends OutputSymbolOptions {
3
3
  module?: string;
4
+ /** Whether this symbol is only used in type annotation contexts */
5
+ typeOnly?: boolean;
4
6
  }
5
7
  export interface CreatePythonSymbolFunctionOptions extends PythonOutputSymbolOptions {
6
8
  name: string;
@@ -13,6 +15,15 @@ export declare class PythonOutputSymbol extends OutputSymbol {
13
15
  static readonly memberSpaces: readonly ["static", "instance"];
14
16
  constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, options: PythonOutputSymbolOptions);
15
17
  get module(): string | undefined;
18
+ /**
19
+ * Returns true if this symbol is only used in type annotation contexts.
20
+ * Such symbols can be imported inside a TYPE_CHECKING block.
21
+ */
22
+ get isTypeOnly(): boolean;
23
+ /**
24
+ * Mark this symbol as also being used as a value (not just a type).
25
+ */
26
+ markAsValue(): void;
16
27
  get staticMembers(): import("@alloy-js/core").OutputMemberSpace;
17
28
  get instanceMembers(): import("@alloy-js/core").OutputMemberSpace;
18
29
  get isStaticMemberSymbol(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"python-output-symbol.d.ts","sourceRoot":"","sources":["../../../src/symbols/python-output-symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iCACf,SAAQ,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,kCAAmC;gBAG7D,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,EAAE,yBAAyB;IASpC,IAAI,MAAM,uBAET;IAED,IAAI,aAAa,+CAEhB;IAED,IAAI,eAAe,+CAElB;IAED,IAAI,oBAAoB,YAEvB;IAED,IAAI,sBAAsB,YAEzB;IAED,IAAa,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOhD;IAED,IAAI;CAaL"}
1
+ {"version":3,"file":"python-output-symbol.d.ts","sourceRoot":"","sources":["../../../src/symbols/python-output-symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAKpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iCACf,SAAQ,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,kCAAmC;gBAG7D,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,EAAE,yBAAyB;IAUpC,IAAI,MAAM,uBAET;IAID;;;OAGG;IACH,IAAI,UAAU,YAGb;IAED;;OAEG;IACH,WAAW;IASX,IAAI,aAAa,+CAEhB;IAED,IAAI,eAAe,+CAElB;IAED,IAAI,oBAAoB,YAEvB;IAED,IAAI,sBAAsB,YAEzB;IAED,IAAa,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOhD;IAED,IAAI;CAcL"}