@alloy-js/python 0.4.0 → 0.5.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/dev/src/builtins/python.js +46 -0
  2. package/dist/dev/src/builtins/python.js.map +1 -1
  3. package/dist/dev/src/components/ClassDeclaration.js +19 -10
  4. package/dist/dev/src/components/ClassDeclaration.js.map +1 -1
  5. package/dist/dev/src/components/ClassMethodDeclaration.js +20 -5
  6. package/dist/dev/src/components/ClassMethodDeclaration.js.map +1 -1
  7. package/dist/dev/src/components/DataclassDeclaration.js +14 -12
  8. package/dist/dev/src/components/DataclassDeclaration.js.map +1 -1
  9. package/dist/dev/src/components/DecoratorList.js +55 -0
  10. package/dist/dev/src/components/DecoratorList.js.map +1 -0
  11. package/dist/dev/src/components/EnumDeclaration.js +21 -12
  12. package/dist/dev/src/components/EnumDeclaration.js.map +1 -1
  13. package/dist/dev/src/components/FunctionBase.js +21 -10
  14. package/dist/dev/src/components/FunctionBase.js.map +1 -1
  15. package/dist/dev/src/components/FutureStatement.js +1 -1
  16. package/dist/dev/src/components/MethodBase.js +16 -4
  17. package/dist/dev/src/components/MethodBase.js.map +1 -1
  18. package/dist/dev/src/components/PropertyDeclaration.js +68 -17
  19. package/dist/dev/src/components/PropertyDeclaration.js.map +1 -1
  20. package/dist/dev/src/components/PydanticClassDeclaration.js +136 -0
  21. package/dist/dev/src/components/PydanticClassDeclaration.js.map +1 -0
  22. package/dist/dev/src/components/StaticMethodDeclaration.js +19 -5
  23. package/dist/dev/src/components/StaticMethodDeclaration.js.map +1 -1
  24. package/dist/dev/src/components/index.js +1 -0
  25. package/dist/dev/src/components/index.js.map +1 -1
  26. package/dist/dev/test/classdeclarations.test.js +85 -52
  27. package/dist/dev/test/classdeclarations.test.js.map +1 -1
  28. package/dist/dev/test/dataclassdeclarations.test.js +122 -89
  29. package/dist/dev/test/dataclassdeclarations.test.js.map +1 -1
  30. package/dist/dev/test/decoratorlist.test.js +84 -0
  31. package/dist/dev/test/decoratorlist.test.js.map +1 -0
  32. package/dist/dev/test/enums.test.js +41 -10
  33. package/dist/dev/test/enums.test.js.map +1 -1
  34. package/dist/dev/test/functiondeclaration.test.js +81 -61
  35. package/dist/dev/test/functiondeclaration.test.js.map +1 -1
  36. package/dist/dev/test/methoddeclaration.test.js +117 -26
  37. package/dist/dev/test/methoddeclaration.test.js.map +1 -1
  38. package/dist/dev/test/propertydeclaration.test.js +109 -7
  39. package/dist/dev/test/propertydeclaration.test.js.map +1 -1
  40. package/dist/dev/test/pydanticclassdeclarations.test.js +1137 -0
  41. package/dist/dev/test/pydanticclassdeclarations.test.js.map +1 -0
  42. package/dist/src/builtins/python.d.ts +30 -0
  43. package/dist/src/builtins/python.d.ts.map +1 -1
  44. package/dist/src/builtins/python.js +46 -0
  45. package/dist/src/builtins/python.js.map +1 -1
  46. package/dist/src/components/ClassDeclaration.d.ts +21 -0
  47. package/dist/src/components/ClassDeclaration.d.ts.map +1 -1
  48. package/dist/src/components/ClassDeclaration.js +6 -1
  49. package/dist/src/components/ClassDeclaration.js.map +1 -1
  50. package/dist/src/components/ClassMethodDeclaration.d.ts +5 -1
  51. package/dist/src/components/ClassMethodDeclaration.d.ts.map +1 -1
  52. package/dist/src/components/ClassMethodDeclaration.js +14 -3
  53. package/dist/src/components/ClassMethodDeclaration.js.map +1 -1
  54. package/dist/src/components/DataclassDeclaration.d.ts.map +1 -1
  55. package/dist/src/components/DataclassDeclaration.js +10 -4
  56. package/dist/src/components/DataclassDeclaration.js.map +1 -1
  57. package/dist/src/components/DecoratorList.d.ts +43 -0
  58. package/dist/src/components/DecoratorList.d.ts.map +1 -0
  59. package/dist/src/components/DecoratorList.js +47 -0
  60. package/dist/src/components/DecoratorList.js.map +1 -0
  61. package/dist/src/components/EnumDeclaration.d.ts +9 -0
  62. package/dist/src/components/EnumDeclaration.d.ts.map +1 -1
  63. package/dist/src/components/EnumDeclaration.js +6 -1
  64. package/dist/src/components/EnumDeclaration.js.map +1 -1
  65. package/dist/src/components/FunctionBase.d.ts +31 -1
  66. package/dist/src/components/FunctionBase.d.ts.map +1 -1
  67. package/dist/src/components/FunctionBase.js +9 -2
  68. package/dist/src/components/FunctionBase.js.map +1 -1
  69. package/dist/src/components/FutureStatement.d.ts +1 -1
  70. package/dist/src/components/FutureStatement.js +1 -1
  71. package/dist/src/components/MethodBase.d.ts.map +1 -1
  72. package/dist/src/components/MethodBase.js +10 -2
  73. package/dist/src/components/MethodBase.js.map +1 -1
  74. package/dist/src/components/PropertyDeclaration.d.ts +29 -0
  75. package/dist/src/components/PropertyDeclaration.d.ts.map +1 -1
  76. package/dist/src/components/PropertyDeclaration.js +48 -1
  77. package/dist/src/components/PropertyDeclaration.js.map +1 -1
  78. package/dist/src/components/PydanticClassDeclaration.d.ts +120 -0
  79. package/dist/src/components/PydanticClassDeclaration.d.ts.map +1 -0
  80. package/dist/src/components/PydanticClassDeclaration.js +116 -0
  81. package/dist/src/components/PydanticClassDeclaration.js.map +1 -0
  82. package/dist/src/components/StaticMethodDeclaration.d.ts +3 -0
  83. package/dist/src/components/StaticMethodDeclaration.d.ts.map +1 -1
  84. package/dist/src/components/StaticMethodDeclaration.js +13 -3
  85. package/dist/src/components/StaticMethodDeclaration.js.map +1 -1
  86. package/dist/src/components/index.d.ts +1 -0
  87. package/dist/src/components/index.d.ts.map +1 -1
  88. package/dist/src/components/index.js +1 -0
  89. package/dist/src/components/index.js.map +1 -1
  90. package/dist/test/classdeclarations.test.js +25 -0
  91. package/dist/test/classdeclarations.test.js.map +1 -1
  92. package/dist/test/dataclassdeclarations.test.js +25 -0
  93. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  94. package/dist/test/decoratorlist.test.d.ts +2 -0
  95. package/dist/test/decoratorlist.test.d.ts.map +1 -0
  96. package/dist/test/decoratorlist.test.js +60 -0
  97. package/dist/test/decoratorlist.test.js.map +1 -0
  98. package/dist/test/enums.test.js +27 -0
  99. package/dist/test/enums.test.js.map +1 -1
  100. package/dist/test/functiondeclaration.test.js +16 -0
  101. package/dist/test/functiondeclaration.test.js.map +1 -1
  102. package/dist/test/methoddeclaration.test.js +67 -0
  103. package/dist/test/methoddeclaration.test.js.map +1 -1
  104. package/dist/test/propertydeclaration.test.js +71 -1
  105. package/dist/test/propertydeclaration.test.js.map +1 -1
  106. package/dist/test/pydanticclassdeclarations.test.d.ts +2 -0
  107. package/dist/test/pydanticclassdeclarations.test.d.ts.map +1 -0
  108. package/dist/test/pydanticclassdeclarations.test.js +829 -0
  109. package/dist/test/pydanticclassdeclarations.test.js.map +1 -0
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/docs/api/components/ClassDeclaration.md +10 -7
  112. package/docs/api/components/ClassEnumDeclaration.md +9 -6
  113. package/docs/api/components/ClassMethodDeclaration.md +7 -5
  114. package/docs/api/components/DataclassDeclaration.md +9 -5
  115. package/docs/api/components/DunderMethodDeclaration.md +7 -5
  116. package/docs/api/components/FunctionDeclaration.md +9 -5
  117. package/docs/api/components/FutureStatement.md +1 -1
  118. package/docs/api/components/MethodDeclaration.md +11 -6
  119. package/docs/api/components/PropertyDeclaration.md +11 -8
  120. package/docs/api/components/PydanticClassDeclaration.md +146 -0
  121. package/docs/api/components/StaticMethodDeclaration.md +7 -5
  122. package/docs/api/components/index.md +1 -0
  123. package/docs/api/index.md +3 -3
  124. package/docs/api/types/CommonFunctionProps.md +4 -3
  125. package/docs/api/types/PydanticModelConfigDictProps.md +32 -0
  126. package/docs/api/types/index.md +1 -0
  127. package/docs/api/variables/index.md +3 -0
  128. package/docs/api/variables/pydanticModule.md +27 -0
  129. package/docs/api/variables/pydanticSettingsModule.md +7 -0
  130. package/docs/api/variables/typingModule.md +9 -0
  131. package/package.json +6 -6
  132. package/src/builtins/python.ts +539 -1
  133. package/src/components/ClassDeclaration.tsx +23 -0
  134. package/src/components/ClassMethodDeclaration.tsx +9 -1
  135. package/src/components/DataclassDeclaration.tsx +18 -11
  136. package/src/components/DecoratorList.tsx +50 -0
  137. package/src/components/EnumDeclaration.tsx +11 -0
  138. package/src/components/FunctionBase.tsx +34 -3
  139. package/src/components/FutureStatement.tsx +1 -1
  140. package/src/components/MethodBase.tsx +6 -2
  141. package/src/components/PropertyDeclaration.tsx +48 -1
  142. package/src/components/PydanticClassDeclaration.tsx +222 -0
  143. package/src/components/StaticMethodDeclaration.tsx +7 -1
  144. package/src/components/index.ts +1 -0
  145. package/temp/api.json +1142 -84
  146. package/test/classdeclarations.test.tsx +27 -0
  147. package/test/dataclassdeclarations.test.tsx +25 -0
  148. package/test/decoratorlist.test.tsx +95 -0
  149. package/test/enums.test.tsx +29 -0
  150. package/test/functiondeclaration.test.tsx +17 -0
  151. package/test/methoddeclaration.test.tsx +70 -0
  152. package/test/propertydeclaration.test.tsx +66 -1
  153. package/test/pydanticclassdeclarations.test.tsx +836 -0
@@ -3,6 +3,7 @@ import { createContentSlot, Name, Show } from "@alloy-js/core";
3
3
  import { getCallSignatureProps } from "../utils.js";
4
4
  import { CallSignature } from "./CallSignature.js";
5
5
  import { Declaration } from "./Declaration.js";
6
+ import { DecoratorList } from "./DecoratorList.js";
6
7
  import { LexicalScope } from "./LexicalScope.js";
7
8
  import { PythonBlock } from "./PythonBlock.js";
8
9
 
@@ -42,6 +43,11 @@ import { PythonBlock } from "./PythonBlock.js";
42
43
  * ```
43
44
  */
44
45
  export function BaseFunctionDeclaration(props) {
46
+ const {
47
+ decorators,
48
+ sym,
49
+ ...declarationProps
50
+ } = props;
45
51
  const asyncKwd = props.async ? "async " : "";
46
52
  let parameters;
47
53
  switch (props.functionType) {
@@ -58,15 +64,20 @@ export function BaseFunctionDeclaration(props) {
58
64
  default:
59
65
  parameters = props.parameters;
60
66
  }
61
- const sym = props.sym;
62
67
  const ContentSlot = createContentSlot();
63
- return [_$createComponent(Declaration, _$mergeProps(props, {
68
+ return [_$createComponent(DecoratorList, {
69
+ decorators: decorators
70
+ }, {
71
+ fileName: import.meta.url,
72
+ lineNumber: 103,
73
+ columnNumber: 7
74
+ }), _$createComponent(Declaration, _$mergeProps(declarationProps, {
64
75
  nameKind: "function",
65
76
  symbol: sym,
66
77
  get children() {
67
78
  return [asyncKwd, "def ", _$createComponent(Name, {}, {
68
79
  fileName: import.meta.url,
69
- lineNumber: 74,
80
+ lineNumber: 105,
70
81
  columnNumber: 23
71
82
  }), _$createComponent(LexicalScope, {
72
83
  get name() {
@@ -77,7 +88,7 @@ export function BaseFunctionDeclaration(props) {
77
88
  parameters: parameters
78
89
  }), {
79
90
  fileName: import.meta.url,
80
- lineNumber: 76,
91
+ lineNumber: 107,
81
92
  columnNumber: 11
82
93
  }), _$createComponent(PythonBlock, {
83
94
  opener: ":",
@@ -91,13 +102,13 @@ export function BaseFunctionDeclaration(props) {
91
102
  }
92
103
  }, {
93
104
  fileName: import.meta.url,
94
- lineNumber: 81,
105
+ lineNumber: 112,
95
106
  columnNumber: 13
96
107
  }), _$createComponent(ContentSlot.WhenEmpty, {
97
108
  children: "pass"
98
109
  }, {
99
110
  fileName: import.meta.url,
100
- lineNumber: 82,
111
+ lineNumber: 113,
101
112
  columnNumber: 13
102
113
  }), _$createComponent(ContentSlot, {
103
114
  get children() {
@@ -105,25 +116,25 @@ export function BaseFunctionDeclaration(props) {
105
116
  }
106
117
  }, {
107
118
  fileName: import.meta.url,
108
- lineNumber: 83,
119
+ lineNumber: 114,
109
120
  columnNumber: 13
110
121
  })];
111
122
  }
112
123
  }, {
113
124
  fileName: import.meta.url,
114
- lineNumber: 80,
125
+ lineNumber: 111,
115
126
  columnNumber: 11
116
127
  })];
117
128
  }
118
129
  }, {
119
130
  fileName: import.meta.url,
120
- lineNumber: 75,
131
+ lineNumber: 106,
121
132
  columnNumber: 9
122
133
  })];
123
134
  }
124
135
  }), {
125
136
  fileName: import.meta.url,
126
- lineNumber: 73,
137
+ lineNumber: 104,
127
138
  columnNumber: 7
128
139
  })];
129
140
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createContentSlot","Name","Show","getCallSignatureProps","CallSignature","Declaration","LexicalScope","PythonBlock","BaseFunctionDeclaration","props","asyncKwd","async","parameters","functionType","name","sym","ContentSlot","_$createComponent","_$mergeProps","nameKind","symbol","children","fileName","import","meta","url","lineNumber","columnNumber","opener","when","Boolean","doc","WhenEmpty"],"sources":["../../../../src/components/FunctionBase.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContentSlot","Name","Show","getCallSignatureProps","CallSignature","Declaration","DecoratorList","LexicalScope","PythonBlock","BaseFunctionDeclaration","props","decorators","sym","declarationProps","asyncKwd","async","parameters","functionType","name","ContentSlot","_$createComponent","fileName","import","meta","url","lineNumber","columnNumber","_$mergeProps","nameKind","symbol","children","opener","when","Boolean","doc","WhenEmpty"],"sources":["../../../../src/components/FunctionBase.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
10
10
  *
11
11
  * @example
12
12
  * ```tsx
13
- * <SourceFile path="models.py" futureImports={<FutureStatement feature="annotations" />}>
13
+ * <SourceFile path="models.py" futureImports={[<FutureStatement feature="annotations" />]}>
14
14
  * <ClassDeclaration name="User">
15
15
  * <PropertyDeclaration name="manager" type="User" />
16
16
  * </ClassDeclaration>
@@ -1,5 +1,6 @@
1
1
  import { memo as _$memo, createIntrinsic as _$createIntrinsic, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
2
  import { abcModule } from "../builtins/python.js";
3
+ import { DecoratorList } from "./DecoratorList.js";
3
4
  import { BaseFunctionDeclaration } from "./FunctionBase.js";
4
5
 
5
6
  /**
@@ -26,14 +27,25 @@ import { BaseFunctionDeclaration } from "./FunctionBase.js";
26
27
  * ```
27
28
  */
28
29
  export function MethodDeclarationBase(props) {
29
- const abstractMethod = props.abstract ? ["@", _$memo(() => abcModule["."].abstractmethod, false, "abcModule[.].abstractmethod"), _$createIntrinsic("hbr", {}, {
30
+ const {
31
+ decorators,
32
+ abstract,
33
+ ...rest
34
+ } = props;
35
+ const abstractMethod = abstract ? ["@", _$memo(() => abcModule["."].abstractmethod, false, "abcModule[.].abstractmethod"), _$createIntrinsic("hbr", {}, {
30
36
  fileName: import.meta.url,
31
- lineNumber: 43,
37
+ lineNumber: 46,
32
38
  columnNumber: 9
33
39
  })] : undefined;
34
- return [abstractMethod, _$createComponent(BaseFunctionDeclaration, props, {
40
+ return [_$createComponent(DecoratorList, {
41
+ decorators: decorators
42
+ }, {
35
43
  fileName: import.meta.url,
36
- lineNumber: 50,
44
+ lineNumber: 52,
45
+ columnNumber: 7
46
+ }), abstractMethod, _$createComponent(BaseFunctionDeclaration, rest, {
47
+ fileName: import.meta.url,
48
+ lineNumber: 54,
37
49
  columnNumber: 7
38
50
  })];
39
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["abcModule","BaseFunctionDeclaration","MethodDeclarationBase","props","abstractMethod","abstract","_$memo","abstractmethod","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","undefined","_$createComponent"],"sources":["../../../../src/components/MethodBase.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,SAAS,QAAQ,uBAAuB;AACjD,SACEC,uBAAuB,QAGlB,mBAAmB;;AAE1B;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACnCC,KAC4D,EAC5D;EACA,MAAMC,cAAc,GAClBD,KAAK,CAACE,QAAQ,SAAAC,MAAA,OAERN,SAAS,CAAC,GAAG,CAAC,CAACO,cAAc,yCAAAC,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,MAGjCC,SAAS;EAEb,QAEKX,cAAc,EAAAY,iBAAA,CACdf,uBAAuB,EAAKE,KAAK;IAAAM,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGxC","ignoreList":[]}
1
+ {"version":3,"names":["abcModule","DecoratorList","BaseFunctionDeclaration","MethodDeclarationBase","props","decorators","abstract","rest","abstractMethod","_$memo","abstractmethod","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","undefined","_$createComponent"],"sources":["../../../../src/components/MethodBase.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,SAAS,QAAQ,uBAAuB;AACjD,SAASC,aAAa;AACtB,SACEC,uBAAuB,QAGlB,mBAAmB;;AAE1B;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACnCC,KAC4D,EAC5D;EACA,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE/C,MAAMI,cAAc,GAClBF,QAAQ,SAAAG,MAAA,OAEFT,SAAS,CAAC,GAAG,CAAC,CAACU,cAAc,yCAAAC,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,MAGjCC,SAAS;EAEb,QAAAC,iBAAA,CAEKlB,aAAa;IAACI,UAAU,EAAEA;EAAU;IAAAO,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IACpCT,cAAc,EAAAW,iBAAA,CACdjB,uBAAuB,EAAKK,IAAI;IAAAK,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGvC","ignoreList":[]}
@@ -2,6 +2,7 @@ import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$m
2
2
  import { DeclarationContext, List, Show, childrenArray, code, createContext, findKeyedChild, findUnkeyedChildren, taggedComponent, useContext } from "@alloy-js/core";
3
3
  import { createMethodSymbol } from "../symbols/factories.js";
4
4
  import { Atom } from "./Atom.js";
5
+ import { DecoratorList } from "./DecoratorList.js";
5
6
  import { MethodDeclarationBase } from "./MethodBase.js";
6
7
  const setterTag = Symbol();
7
8
  const deleterTag = Symbol();
@@ -56,6 +57,29 @@ const PropertyContext = createContext();
56
57
  * The property must be declared within a class. The getter method is
57
58
  * automatically generated using the `@property` decorator. Use the nested
58
59
  * `Setter` and `Deleter` components to add mutators.
60
+ *
61
+ * Use **`decorators`** for decorators that must appear **above** the intrinsic
62
+ * `@property` (for example Pydantic `@computed_field`, `@typing.final`,
63
+ * `@typing.override`). The first array entry is rendered topmost, matching
64
+ * Python source order.
65
+ *
66
+ * @example Pydantic computed field
67
+ * ```tsx
68
+ * <py.PropertyDeclaration
69
+ * name="area"
70
+ * type="float"
71
+ * decorators={[code`@${pydanticModule["."].computed_field}`]}
72
+ * >
73
+ * return self.width ** 2
74
+ * </py.PropertyDeclaration>
75
+ * ```
76
+ * Generates:
77
+ * ```python
78
+ * @computed_field
79
+ * @property
80
+ * def area(self) -> float:
81
+ * return self.width ** 2
82
+ * ```
59
83
  */
60
84
 
61
85
  export function PropertyDeclaration(props) {
@@ -94,10 +118,13 @@ export function PropertyDeclaration(props) {
94
118
  get doc() {
95
119
  return props.doc;
96
120
  },
121
+ get decorators() {
122
+ return props.decorators;
123
+ },
97
124
  children: unkeyedChildren
98
125
  }, {
99
126
  fileName: import.meta.url,
100
- lineNumber: 120,
127
+ lineNumber: 150,
101
128
  columnNumber: 13
102
129
  }), _$createComponent(Show, {
103
130
  get when() {
@@ -114,13 +141,13 @@ export function PropertyDeclaration(props) {
114
141
  children: setterChildren
115
142
  }), {
116
143
  fileName: import.meta.url,
117
- lineNumber: 127,
144
+ lineNumber: 158,
118
145
  columnNumber: 15
119
146
  });
120
147
  }
121
148
  }, {
122
149
  fileName: import.meta.url,
123
- lineNumber: 126,
150
+ lineNumber: 157,
124
151
  columnNumber: 13
125
152
  }), _$createComponent(Show, {
126
153
  get when() {
@@ -134,42 +161,52 @@ export function PropertyDeclaration(props) {
134
161
  children: deleterChildren
135
162
  }), {
136
163
  fileName: import.meta.url,
137
- lineNumber: 136,
164
+ lineNumber: 167,
138
165
  columnNumber: 15
139
166
  });
140
167
  }
141
168
  }, {
142
169
  fileName: import.meta.url,
143
- lineNumber: 135,
170
+ lineNumber: 166,
144
171
  columnNumber: 13
145
172
  })];
146
173
  }
147
174
  }, {
148
175
  fileName: import.meta.url,
149
- lineNumber: 119,
176
+ lineNumber: 149,
150
177
  columnNumber: 11
151
178
  });
152
179
  }
153
180
  }, {
154
181
  fileName: import.meta.url,
155
- lineNumber: 118,
182
+ lineNumber: 148,
156
183
  columnNumber: 9
157
184
  });
158
185
  }
159
186
  }, {
160
187
  fileName: import.meta.url,
161
- lineNumber: 117,
188
+ lineNumber: 147,
162
189
  columnNumber: 7
163
190
  })];
164
191
  }
165
192
  function PropertyMethodDeclaration(props) {
166
193
  const propertySymbol = useContext(DeclarationContext);
167
194
  const propertyType = useContext(PropertyContext);
168
- return [code`@property`, _$createIntrinsic("hbr", {}, {
195
+ const {
196
+ decorators,
197
+ ...rest
198
+ } = props;
199
+ return [_$createComponent(DecoratorList, {
200
+ decorators: decorators
201
+ }, {
202
+ fileName: import.meta.url,
203
+ lineNumber: 193,
204
+ columnNumber: 7
205
+ }), code`@property`, _$createIntrinsic("hbr", {}, {
169
206
  fileName: import.meta.url,
170
- lineNumber: 162,
207
+ lineNumber: 195,
171
208
  columnNumber: 7
172
- }), _$createComponent(MethodDeclarationBase, _$mergeProps(props, {
209
+ }), _$createComponent(MethodDeclarationBase, _$mergeProps(rest, {
173
210
  get name() {
174
211
  return propertySymbol.name;
175
212
  },
@@ -181,7 +218,7 @@ function PropertyMethodDeclaration(props) {
181
218
  }
182
219
  }), {
183
220
  fileName: import.meta.url,
184
- lineNumber: 163,
221
+ lineNumber: 196,
185
222
  columnNumber: 7
186
223
  })];
187
224
  }
@@ -195,7 +232,7 @@ function PropertyMethodBase(props) {
195
232
  } = props;
196
233
  return [_$memo(() => code`@${propertySymbol.name}.${decoratorType}`), _$createIntrinsic("hbr", {}, {
197
234
  fileName: import.meta.url,
198
- lineNumber: 189,
235
+ lineNumber: 222,
199
236
  columnNumber: 7
200
237
  }), _$createComponent(MethodDeclarationBase, _$mergeProps(restProps, {
201
238
  get name() {
@@ -208,7 +245,7 @@ function PropertyMethodBase(props) {
208
245
  jsValue: null
209
246
  }, {
210
247
  fileName: import.meta.url,
211
- lineNumber: 195,
248
+ lineNumber: 228,
212
249
  columnNumber: 21
213
250
  });
214
251
  },
@@ -216,7 +253,7 @@ function PropertyMethodBase(props) {
216
253
  children: children
217
254
  }), {
218
255
  fileName: import.meta.url,
219
- lineNumber: 190,
256
+ lineNumber: 223,
220
257
  columnNumber: 7
221
258
  })];
222
259
  }
@@ -239,6 +276,13 @@ function PropertyMethodBase(props) {
239
276
  * def value(self, value: int) -> None:
240
277
  * self._value = value
241
278
  * ```
279
+ *
280
+ * @remarks
281
+ * The intrinsic `@<name>.setter` decorator is always rendered topmost (it must
282
+ * remain the outermost decorator). Any `decorators` passed to this component
283
+ * are rendered **between** `@<name>.setter` and `def`, which is the correct
284
+ * position for wrappers that should decorate the underlying function before
285
+ * `setter` re-binds it to the property (e.g. `@deprecated`, `@abstractmethod`).
242
286
  */
243
287
  PropertyDeclaration.Setter = taggedComponent(setterTag, function PropertySetter(props) {
244
288
  return _$createComponent(PropertyMethodBase, _$mergeProps({
@@ -251,7 +295,7 @@ PropertyDeclaration.Setter = taggedComponent(setterTag, function PropertySetter(
251
295
  }
252
296
  }, props), {
253
297
  fileName: import.meta.url,
254
- lineNumber: 229,
298
+ lineNumber: 269,
255
299
  columnNumber: 7
256
300
  });
257
301
  });
@@ -274,13 +318,20 @@ PropertyDeclaration.Setter = taggedComponent(setterTag, function PropertySetter(
274
318
  * def value(self) -> None:
275
319
  * del self._value
276
320
  * ```
321
+ *
322
+ * @remarks
323
+ * The intrinsic `@<name>.deleter` decorator is always rendered topmost (it
324
+ * must remain the outermost decorator). Any `decorators` passed to this
325
+ * component are rendered **between** `@<name>.deleter` and `def`, which is
326
+ * the correct position for wrappers that should decorate the underlying
327
+ * function before `deleter` re-binds it to the property.
277
328
  */
278
329
  PropertyDeclaration.Deleter = taggedComponent(deleterTag, function PropertyDeleter(props) {
279
330
  return _$createComponent(PropertyMethodBase, _$mergeProps({
280
331
  decoratorType: "deleter"
281
332
  }, props), {
282
333
  fileName: import.meta.url,
283
- lineNumber: 262,
334
+ lineNumber: 309,
284
335
  columnNumber: 12
285
336
  });
286
337
  });
@@ -1 +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":[]}
1
+ {"version":3,"names":["DeclarationContext","List","Show","childrenArray","code","createContext","findKeyedChild","findUnkeyedChildren","taggedComponent","useContext","createMethodSymbol","Atom","DecoratorList","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","decorators","fileName","import","meta","url","lineNumber","columnNumber","when","Boolean","_$mergeProps","propertySymbol","propertyType","rest","_$createIntrinsic","functionType","returnType","PropertyMethodBase","decoratorType","parameters","restProps","_$memo","jsValue","PropertySetter","PropertyDeleter"],"sources":["../../../../src/components/PropertyDeclaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,136 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { For, List, childrenArray, splitProps } from "@alloy-js/core";
3
+ import { snakeCase } from "change-case";
4
+ import { pydanticModule } from "../builtins/python.js";
5
+ import { Atom } from "./Atom.js";
6
+ import { ClassDeclaration } from "./ClassDeclaration.js";
7
+
8
+ /**
9
+ * Keyword-style options for Pydantic v2 `ConfigDict`, using camelCase prop names
10
+ * that map to snake_case Python arguments (for example `validateAssignment` →
11
+ * `validate_assignment`).
12
+ */
13
+
14
+ const PydanticModelConfigKeys = ["aliasGenerator", "arbitraryTypesAllowed", "coerceNumbersToStr", "frozen", "extra", "fromAttributes", "hideInputInErrors", "jsonSchemaExtra", "locByAlias", "populateByName", "revalidateInstances", "serJsonBytes", "serJsonInfNan", "strMinLength", "strMaxLength", "strStripWhitespace", "strToLower", "strToUpper", "strict", "useEnumValues", "valJsonBytes", "validateAssignment", "validateDefault", "validateReturn"];
15
+ /**
16
+ * Renders a Python class that subclasses Pydantic's `BaseModel`:
17
+ * `class Name(BaseModel): ...`.
18
+ *
19
+ * When `bases` is omitted, the class extends `pydanticModule["."].BaseModel`.
20
+ * Pass `bases` to inherit from another generated class (or to combine bases explicitly).
21
+ *
22
+ * Optional `modelConfig={{...}}` and top-level config props (for example
23
+ * `frozen`, `strict`, `extra`) emit `model_config = ConfigDict(...)` for common
24
+ * Pydantic v2 model settings (see {@link PydanticModelConfigDictProps}).
25
+ * When both are used, top-level props override `modelConfig` keys.
26
+ *
27
+ * Fields are ordinary class body declarations; use `pydanticModule["."].Field` in
28
+ * initializers when you need `Field(...)`.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * import { pydanticModule } from "@alloy-js/python";
33
+ * import * as py from "@alloy-js/python";
34
+ *
35
+ * <py.PydanticClassDeclaration name="User" frozen>
36
+ * <py.VariableDeclaration instanceVariable omitNone name="id" type="int" />
37
+ * <py.VariableDeclaration
38
+ * instanceVariable
39
+ * name="name"
40
+ * type="str"
41
+ * initializer={"Field(default=\"anonymous\")"}
42
+ * />
43
+ * </py.PydanticClassDeclaration>
44
+ * ```
45
+ *
46
+ * ```py
47
+ * from pydantic import BaseModel
48
+ * from pydantic import ConfigDict
49
+ * from pydantic import Field
50
+ *
51
+ * class User(BaseModel):
52
+ * model_config = ConfigDict(frozen=True)
53
+ * id: int
54
+ * name: str = Field(default="anonymous")
55
+ * ```
56
+ */
57
+ export function PydanticClassDeclaration(props) {
58
+ const [modelConfigProps, bodyProps, rest] = splitProps(props, PydanticModelConfigKeys, ["modelConfig", "modelConfigExpression", "children"]);
59
+ const bases = rest.bases ?? [pydanticModule["."].BaseModel];
60
+ const {
61
+ modelConfig,
62
+ modelConfigExpression,
63
+ children
64
+ } = bodyProps;
65
+ const configEntries = [];
66
+ if (modelConfigExpression === undefined) {
67
+ for (const key of PydanticModelConfigKeys) {
68
+ const value = modelConfigProps[key] ?? modelConfig?.[key];
69
+ if (value === undefined) continue;
70
+ configEntries.push([snakeCase(key), value]);
71
+ }
72
+ }
73
+ const hasStructuredModelConfig = modelConfigExpression === undefined && configEntries.length > 0;
74
+ const hasExpressionModelConfig = modelConfigExpression !== undefined;
75
+ const bodyItems = [];
76
+ if (hasExpressionModelConfig) {
77
+ bodyItems.push(["model_config = ", modelConfigExpression]);
78
+ } else if (hasStructuredModelConfig) {
79
+ bodyItems.push(["model_config = ", _$memo(() => pydanticModule["."].ConfigDict, false, "pydanticModule[.].ConfigDict"), "(", _$createComponent(For, {
80
+ each: configEntries,
81
+ comma: true,
82
+ space: true,
83
+ children: ([k, v]) => [k, "=", _$createComponent(Atom, {
84
+ jsValue: v
85
+ }, {
86
+ fileName: import.meta.url,
87
+ lineNumber: 199,
88
+ columnNumber: 19
89
+ })]
90
+ }, {
91
+ fileName: import.meta.url,
92
+ lineNumber: 196,
93
+ columnNumber: 9
94
+ }), ")"]);
95
+ }
96
+ bodyItems.push(...childrenArray(() => children));
97
+ return _$createComponent(ClassDeclaration, {
98
+ get name() {
99
+ return rest.name;
100
+ },
101
+ bases: bases,
102
+ get doc() {
103
+ return rest.doc;
104
+ },
105
+ get refkey() {
106
+ return rest.refkey;
107
+ },
108
+ get decorators() {
109
+ return rest.decorators;
110
+ },
111
+ get children() {
112
+ return _$createComponent(List, {
113
+ hardline: true,
114
+ get children() {
115
+ return _$createComponent(For, {
116
+ each: bodyItems,
117
+ children: item => item
118
+ }, {
119
+ fileName: import.meta.url,
120
+ lineNumber: 218,
121
+ columnNumber: 9
122
+ });
123
+ }
124
+ }, {
125
+ fileName: import.meta.url,
126
+ lineNumber: 217,
127
+ columnNumber: 7
128
+ });
129
+ }
130
+ }, {
131
+ fileName: import.meta.url,
132
+ lineNumber: 210,
133
+ columnNumber: 5
134
+ });
135
+ }
136
+ //# sourceMappingURL=PydanticClassDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["For","List","childrenArray","splitProps","snakeCase","pydanticModule","Atom","ClassDeclaration","PydanticModelConfigKeys","PydanticClassDeclaration","props","modelConfigProps","bodyProps","rest","bases","BaseModel","modelConfig","modelConfigExpression","children","configEntries","undefined","key","value","push","hasStructuredModelConfig","length","hasExpressionModelConfig","bodyItems","_$memo","ConfigDict","_$createComponent","each","comma","space","k","v","jsValue","fileName","import","meta","url","lineNumber","columnNumber","name","doc","refkey","decorators","hardline","item"],"sources":["../../../../src/components/PydanticClassDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,GAAG,EACHC,IAAI,EACJC,aAAa,EACbC,UAAU,QAEL,gBAAgB;AACvB,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,IAAI;AAEb,SAASC,gBAAgB,QAAQ,uBAAuB;;AAExD;AACA;AACA;AACA;AACA;;AAoDA,MAAMC,uBAAuB,GAAG,CAC9B,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,CACkD;AAwBpE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACC,KAAoC,EAAE;EAC7E,MAAM,CAACC,gBAAgB,EAAEC,SAAS,EAAEC,IAAI,CAAC,GAAGV,UAAU,CACpDO,KAAK,EACLF,uBAAuB,EACvB,CAAC,aAAa,EAAE,uBAAuB,EAAE,UAAU,CACrD,CAAC;EACD,MAAMM,KAAK,GAAGD,IAAI,CAACC,KAAK,IAAI,CAACT,cAAc,CAAC,GAAG,CAAC,CAACU,SAAS,CAAC;EAC3D,MAAM;IAAEC,WAAW;IAAEC,qBAAqB;IAAEC;EAAS,CAAC,GAAGN,SAAS;EAElE,MAAMO,aAAuC,GAAG,EAAE;EAClD,IAAIF,qBAAqB,KAAKG,SAAS,EAAE;IACvC,KAAK,MAAMC,GAAG,IAAIb,uBAAuB,EAAE;MACzC,MAAMc,KAAK,GAAGX,gBAAgB,CAACU,GAAG,CAAC,IAAIL,WAAW,GAAGK,GAAG,CAAC;MACzD,IAAIC,KAAK,KAAKF,SAAS,EAAE;MACzBD,aAAa,CAACI,IAAI,CAAC,CAACnB,SAAS,CAACiB,GAAG,CAAC,EAAEC,KAAK,CAAC,CAAC;IAC7C;EACF;EACA,MAAME,wBAAwB,GAC5BP,qBAAqB,KAAKG,SAAS,IAAID,aAAa,CAACM,MAAM,GAAG,CAAC;EACjE,MAAMC,wBAAwB,GAAGT,qBAAqB,KAAKG,SAAS;EAEpE,MAAMO,SAAqB,GAAG,EAAE;EAChC,IAAID,wBAAwB,EAAE;IAC5BC,SAAS,CAACJ,IAAI,EAET,iBAAiB,EACjBN,qBAAqB,CAE1B,CAAC;EACH,CAAC,MAAM,IAAIO,wBAAwB,EAAE;IACnCG,SAAS,CAACJ,IAAI,EAET,iBAAiB,EAAAK,MAAA,OACjBvB,cAAc,CAAC,GAAG,CAAC,CAACwB,UAAU,0CAC9B,GAAG,EAAAC,iBAAA,CACH9B,GAAG;MAAC+B,IAAI,EAAEZ,aAAa;MAAEa,KAAK;MAACC,KAAK;MAAAf,QAAA,EAClCA,CAAC,CAACgB,CAAC,EAAEC,CAAC,CAAC,MAEHD,CAAC,OAAAJ,iBAAA,CAAGxB,IAAI;QAAC8B,OAAO,EAAED;MAAC;QAAAE,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAEvB;MAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,IAEF,GAAG,CAER,CAAC;EACH;EACAf,SAAS,CAACJ,IAAI,CAAC,GAAGrB,aAAa,CAAC,MAAMgB,QAAQ,CAAC,CAAC;EAEhD,OAAAY,iBAAA,CACGvB,gBAAgB;IAAA,IACfoC,IAAIA,CAAA;MAAA,OAAE9B,IAAI,CAAC8B,IAAI;IAAA;IACf7B,KAAK,EAAEA,KAAK;IAAA,IACZ8B,GAAGA,CAAA;MAAA,OAAE/B,IAAI,CAAC+B,GAAG;IAAA;IAAA,IACbC,MAAMA,CAAA;MAAA,OAAEhC,IAAI,CAACgC,MAAM;IAAA;IAAA,IACnBC,UAAUA,CAAA;MAAA,OAAEjC,IAAI,CAACiC,UAAU;IAAA;IAAA,IAAA5B,SAAA;MAAA,OAAAY,iBAAA,CAE1B7B,IAAI;QAAC8C,QAAQ;QAAA,IAAA7B,SAAA;UAAA,OAAAY,iBAAA,CACX9B,GAAG;YAAC+B,IAAI,EAAEJ,SAAS;YAAAT,QAAA,EAAI8B,IAAI,IAAKA;UAAI;YAAAX,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA;QAAA;MAAA;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;AAI7C","ignoreList":[]}
@@ -1,5 +1,6 @@
1
- import { createIntrinsic as _$createIntrinsic, mergeProps as _$mergeProps, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
2
2
  import { createMethodSymbol } from "../symbols/factories.js";
3
+ import { DecoratorList } from "./DecoratorList.js";
3
4
  import { MethodDeclarationBase } from "./MethodBase.js";
4
5
 
5
6
  /**
@@ -17,23 +18,36 @@ import { MethodDeclarationBase } from "./MethodBase.js";
17
18
  * def identity(value: int) -> None:
18
19
  * return value
19
20
  * ```
21
+ *
22
+ * @remarks
23
+ * Use **`decorators`** for decorators that must appear above `@staticmethod`.
20
24
  */
21
25
 
22
26
  export function StaticMethodDeclaration(props) {
23
27
  const sym = createMethodSymbol(props.name, {
24
28
  refkeys: props.refkey
25
29
  });
26
- return ["@staticmethod", _$createIntrinsic("hbr", {}, {
30
+ const {
31
+ decorators,
32
+ ...rest
33
+ } = props;
34
+ return [_$createComponent(DecoratorList, {
35
+ decorators: decorators
36
+ }, {
37
+ fileName: import.meta.url,
38
+ lineNumber: 34,
39
+ columnNumber: 7
40
+ }), "@staticmethod", _$createIntrinsic("hbr", {}, {
27
41
  fileName: import.meta.url,
28
- lineNumber: 30,
42
+ lineNumber: 36,
29
43
  columnNumber: 7
30
44
  }), _$createComponent(MethodDeclarationBase, _$mergeProps({
31
45
  functionType: "static"
32
- }, props, {
46
+ }, rest, {
33
47
  sym: sym
34
48
  }), {
35
49
  fileName: import.meta.url,
36
- lineNumber: 31,
50
+ lineNumber: 37,
37
51
  columnNumber: 7
38
52
  })];
39
53
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createMethodSymbol","MethodDeclarationBase","StaticMethodDeclaration","props","sym","name","refkeys","refkey","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","_$createComponent","_$mergeProps","functionType"],"sources":["../../../../src/components/StaticMethodDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,qBAAqB,QAAQ,iBAAiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASC,uBAAuBA,CAACC,KAAmC,EAAE;EAC3E,MAAMC,GAAG,GAAGJ,kBAAkB,CAACG,KAAK,CAACE,IAAI,EAAE;IAAEC,OAAO,EAAEH,KAAK,CAACI;EAAO,CAAC,CAAC;EACrE,QAEK,eAAe,EAAAC,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAC,iBAAA,CAEfd,qBAAqB,EAAAe,YAAA;IAACC,YAAY;EAAA,GAAcd,KAAK;IAAEC,GAAG,EAAEA;EAAG;IAAAK,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGtE","ignoreList":[]}
1
+ {"version":3,"names":["createMethodSymbol","DecoratorList","MethodDeclarationBase","StaticMethodDeclaration","props","sym","name","refkeys","refkey","decorators","rest","_$createComponent","fileName","import","meta","url","lineNumber","columnNumber","_$createIntrinsic","_$mergeProps","functionType"],"sources":["../../../../src/components/StaticMethodDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,aAAa;AAEtB,SAASC,qBAAqB,QAAQ,iBAAiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASC,uBAAuBA,CAACC,KAAmC,EAAE;EAC3E,MAAMC,GAAG,GAAGL,kBAAkB,CAACI,KAAK,CAACE,IAAI,EAAE;IAAEC,OAAO,EAAEH,KAAK,CAACI;EAAO,CAAC,CAAC;EACrE,MAAM;IAAEC,UAAU;IAAE,GAAGC;EAAK,CAAC,GAAGN,KAAK;EACrC,QAAAO,iBAAA,CAEKV,aAAa;IAACQ,UAAU,EAAEA;EAAU;IAAAG,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IACpC,eAAe,EAAAC,iBAAA;IAAAN,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAN,iBAAA,CAEfT,qBAAqB,EAAAiB,YAAA;IAACC,YAAY;EAAA,GAAcV,IAAI;IAAEL,GAAG,EAAEA;EAAG;IAAAO,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrE","ignoreList":[]}
@@ -17,6 +17,7 @@ export * from "./MemberExpression.js";
17
17
  export * from "./MemberScope.js";
18
18
  export * from "./MethodDeclaration.js";
19
19
  export * from "./PropertyDeclaration.js";
20
+ export * from "./PydanticClassDeclaration.js";
20
21
  export * from "./PyDoc.js";
21
22
  export * from "./PythonBlock.js";
22
23
  export * from "./Reference.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,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":[]}
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,+BAA+B;AAC7C,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":[]}