nodepyx 1.0.0

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 (184) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +399 -0
  3. package/binding.gyp +73 -0
  4. package/dist/core/PyCallable.d.ts +65 -0
  5. package/dist/core/PyCallable.d.ts.map +1 -0
  6. package/dist/core/PyCallable.js +109 -0
  7. package/dist/core/PyCallable.js.map +1 -0
  8. package/dist/core/PyContext.d.ts +76 -0
  9. package/dist/core/PyContext.d.ts.map +1 -0
  10. package/dist/core/PyContext.js +228 -0
  11. package/dist/core/PyContext.js.map +1 -0
  12. package/dist/core/PyIterator.d.ts +84 -0
  13. package/dist/core/PyIterator.d.ts.map +1 -0
  14. package/dist/core/PyIterator.js +243 -0
  15. package/dist/core/PyIterator.js.map +1 -0
  16. package/dist/core/PyModule.d.ts +55 -0
  17. package/dist/core/PyModule.d.ts.map +1 -0
  18. package/dist/core/PyModule.js +172 -0
  19. package/dist/core/PyModule.js.map +1 -0
  20. package/dist/core/PyProxy.d.ts +65 -0
  21. package/dist/core/PyProxy.d.ts.map +1 -0
  22. package/dist/core/PyProxy.js +483 -0
  23. package/dist/core/PyProxy.js.map +1 -0
  24. package/dist/core/PyRuntime.d.ts +105 -0
  25. package/dist/core/PyRuntime.d.ts.map +1 -0
  26. package/dist/core/PyRuntime.js +438 -0
  27. package/dist/core/PyRuntime.js.map +1 -0
  28. package/dist/env/CondaManager.d.ts +118 -0
  29. package/dist/env/CondaManager.d.ts.map +1 -0
  30. package/dist/env/CondaManager.js +401 -0
  31. package/dist/env/CondaManager.js.map +1 -0
  32. package/dist/env/PackageInstaller.d.ts +233 -0
  33. package/dist/env/PackageInstaller.d.ts.map +1 -0
  34. package/dist/env/PackageInstaller.js +609 -0
  35. package/dist/env/PackageInstaller.js.map +1 -0
  36. package/dist/env/PythonDetector.d.ts +103 -0
  37. package/dist/env/PythonDetector.d.ts.map +1 -0
  38. package/dist/env/PythonDetector.js +381 -0
  39. package/dist/env/PythonDetector.js.map +1 -0
  40. package/dist/env/VenvManager.d.ts +117 -0
  41. package/dist/env/VenvManager.d.ts.map +1 -0
  42. package/dist/env/VenvManager.js +331 -0
  43. package/dist/env/VenvManager.js.map +1 -0
  44. package/dist/index.d.ts +169 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +393 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/plugins/Plugin.interface.d.ts +41 -0
  49. package/dist/plugins/Plugin.interface.d.ts.map +1 -0
  50. package/dist/plugins/Plugin.interface.js +12 -0
  51. package/dist/plugins/Plugin.interface.js.map +1 -0
  52. package/dist/plugins/PluginManager.d.ts +26 -0
  53. package/dist/plugins/PluginManager.d.ts.map +1 -0
  54. package/dist/plugins/PluginManager.js +174 -0
  55. package/dist/plugins/PluginManager.js.map +1 -0
  56. package/dist/plugins/builtin/NumpyPlugin.d.ts +17 -0
  57. package/dist/plugins/builtin/NumpyPlugin.d.ts.map +1 -0
  58. package/dist/plugins/builtin/NumpyPlugin.js +41 -0
  59. package/dist/plugins/builtin/NumpyPlugin.js.map +1 -0
  60. package/dist/plugins/builtin/PandasPlugin.d.ts +19 -0
  61. package/dist/plugins/builtin/PandasPlugin.d.ts.map +1 -0
  62. package/dist/plugins/builtin/PandasPlugin.js +57 -0
  63. package/dist/plugins/builtin/PandasPlugin.js.map +1 -0
  64. package/dist/plugins/builtin/TorchPlugin.d.ts +23 -0
  65. package/dist/plugins/builtin/TorchPlugin.d.ts.map +1 -0
  66. package/dist/plugins/builtin/TorchPlugin.js +50 -0
  67. package/dist/plugins/builtin/TorchPlugin.js.map +1 -0
  68. package/dist/plugins/index.d.ts +7 -0
  69. package/dist/plugins/index.d.ts.map +1 -0
  70. package/dist/plugins/index.js +12 -0
  71. package/dist/plugins/index.js.map +1 -0
  72. package/dist/serialization/DataFrameBridge.d.ts +141 -0
  73. package/dist/serialization/DataFrameBridge.d.ts.map +1 -0
  74. package/dist/serialization/DataFrameBridge.js +355 -0
  75. package/dist/serialization/DataFrameBridge.js.map +1 -0
  76. package/dist/serialization/MsgPackSerializer.d.ts +45 -0
  77. package/dist/serialization/MsgPackSerializer.d.ts.map +1 -0
  78. package/dist/serialization/MsgPackSerializer.js +242 -0
  79. package/dist/serialization/MsgPackSerializer.js.map +1 -0
  80. package/dist/serialization/NumpyBridge.d.ts +96 -0
  81. package/dist/serialization/NumpyBridge.d.ts.map +1 -0
  82. package/dist/serialization/NumpyBridge.js +323 -0
  83. package/dist/serialization/NumpyBridge.js.map +1 -0
  84. package/dist/serialization/Serializer.d.ts +78 -0
  85. package/dist/serialization/Serializer.d.ts.map +1 -0
  86. package/dist/serialization/Serializer.js +281 -0
  87. package/dist/serialization/Serializer.js.map +1 -0
  88. package/dist/types/PythonTypeMapper.d.ts +87 -0
  89. package/dist/types/PythonTypeMapper.d.ts.map +1 -0
  90. package/dist/types/PythonTypeMapper.js +449 -0
  91. package/dist/types/PythonTypeMapper.js.map +1 -0
  92. package/dist/types/StubCache.d.ts +109 -0
  93. package/dist/types/StubCache.d.ts.map +1 -0
  94. package/dist/types/StubCache.js +333 -0
  95. package/dist/types/StubCache.js.map +1 -0
  96. package/dist/types/TypeGenerator.d.ts +139 -0
  97. package/dist/types/TypeGenerator.d.ts.map +1 -0
  98. package/dist/types/TypeGenerator.js +372 -0
  99. package/dist/types/TypeGenerator.js.map +1 -0
  100. package/dist/types/addon.d.ts +114 -0
  101. package/dist/types/addon.d.ts.map +1 -0
  102. package/dist/types/addon.js +32 -0
  103. package/dist/types/addon.js.map +1 -0
  104. package/dist/types/config.d.ts +175 -0
  105. package/dist/types/config.d.ts.map +1 -0
  106. package/dist/types/config.js +35 -0
  107. package/dist/types/config.js.map +1 -0
  108. package/dist/types/index.d.ts +10 -0
  109. package/dist/types/index.d.ts.map +1 -0
  110. package/dist/types/index.js +12 -0
  111. package/dist/types/index.js.map +1 -0
  112. package/dist/types/python.d.ts +235 -0
  113. package/dist/types/python.d.ts.map +1 -0
  114. package/dist/types/python.js +7 -0
  115. package/dist/types/python.js.map +1 -0
  116. package/dist/utils/ErrorTranslator.d.ts +83 -0
  117. package/dist/utils/ErrorTranslator.d.ts.map +1 -0
  118. package/dist/utils/ErrorTranslator.js +210 -0
  119. package/dist/utils/ErrorTranslator.js.map +1 -0
  120. package/dist/utils/Logger.d.ts +27 -0
  121. package/dist/utils/Logger.d.ts.map +1 -0
  122. package/dist/utils/Logger.js +115 -0
  123. package/dist/utils/Logger.js.map +1 -0
  124. package/dist/utils/MemoryMonitor.d.ts +44 -0
  125. package/dist/utils/MemoryMonitor.d.ts.map +1 -0
  126. package/dist/utils/MemoryMonitor.js +143 -0
  127. package/dist/utils/MemoryMonitor.js.map +1 -0
  128. package/package.json +177 -0
  129. package/python/error_handler.py +433 -0
  130. package/python/nodepyx_runtime.py +575 -0
  131. package/python/serializer.py +379 -0
  132. package/python/type_inspector.py +288 -0
  133. package/scripts/build-native.js +68 -0
  134. package/scripts/download-prebuilds.js +99 -0
  135. package/scripts/generate-stubs.js +405 -0
  136. package/scripts/install.js +260 -0
  137. package/src/core/PyCallable.ts +137 -0
  138. package/src/core/PyContext.ts +296 -0
  139. package/src/core/PyIterator.ts +294 -0
  140. package/src/core/PyModule.ts +194 -0
  141. package/src/core/PyProxy.ts +605 -0
  142. package/src/core/PyRuntime.ts +504 -0
  143. package/src/env/CondaManager.ts +451 -0
  144. package/src/env/PackageInstaller.ts +738 -0
  145. package/src/env/PythonDetector.ts +414 -0
  146. package/src/env/VenvManager.ts +396 -0
  147. package/src/index.ts +425 -0
  148. package/src/native/gil_guard.cpp +26 -0
  149. package/src/native/gil_guard.h +175 -0
  150. package/src/native/nodepyx_addon.cpp +886 -0
  151. package/src/native/python_bridge.cpp +790 -0
  152. package/src/native/python_bridge.h +257 -0
  153. package/src/native/thread_pool.cpp +336 -0
  154. package/src/native/thread_pool.h +175 -0
  155. package/src/native/type_converter.cpp +901 -0
  156. package/src/native/type_converter.h +272 -0
  157. package/src/nextjs/PyProvider.tsx +123 -0
  158. package/src/nextjs/index.ts +21 -0
  159. package/src/nextjs/usePython.ts +106 -0
  160. package/src/nextjs/withnodepyx.ts +88 -0
  161. package/src/plugins/Plugin.interface.ts +51 -0
  162. package/src/plugins/PluginManager.ts +155 -0
  163. package/src/plugins/builtin/NumpyPlugin.ts +36 -0
  164. package/src/plugins/builtin/PandasPlugin.ts +49 -0
  165. package/src/plugins/builtin/TorchPlugin.ts +56 -0
  166. package/src/plugins/index.ts +7 -0
  167. package/src/serialization/DataFrameBridge.ts +398 -0
  168. package/src/serialization/MsgPackSerializer.ts +220 -0
  169. package/src/serialization/NumpyBridge.ts +332 -0
  170. package/src/serialization/Serializer.ts +320 -0
  171. package/src/types/PythonTypeMapper.ts +495 -0
  172. package/src/types/StubCache.ts +340 -0
  173. package/src/types/TypeGenerator.ts +491 -0
  174. package/src/types/addon.ts +170 -0
  175. package/src/types/config.ts +226 -0
  176. package/src/types/index.ts +55 -0
  177. package/src/types/python.ts +309 -0
  178. package/src/types/stubs/numpy.d.ts +441 -0
  179. package/src/types/stubs/pandas.d.ts +575 -0
  180. package/src/types/stubs/sklearn.d.ts +728 -0
  181. package/src/types/stubs/torch.d.ts +694 -0
  182. package/src/utils/ErrorTranslator.ts +220 -0
  183. package/src/utils/Logger.ts +119 -0
  184. package/src/utils/MemoryMonitor.ts +175 -0
@@ -0,0 +1,575 @@
1
+ // =============================================================
2
+ // nodepyx — Pre-built TypeScript stub for pandas
3
+ // Version: 2.x
4
+ // Source: https://pandas.pydata.org
5
+ // =============================================================
6
+
7
+ import type { PyProxy, DataFrameResult, SeriesResult } from 'nodepyx';
8
+
9
+ declare module 'nodepyx/pandas' {
10
+
11
+ // ── Core constructors ──────────────────────────────────────────────────────
12
+
13
+ /**
14
+ * Two-dimensional, size-mutable, potentially heterogeneous tabular data.
15
+ */
16
+ export class DataFrame {
17
+ constructor(
18
+ data?: Record<string, unknown>[] | Record<string, unknown> | unknown[][],
19
+ index?: unknown[],
20
+ columns?: string[],
21
+ dtype?: string,
22
+ );
23
+
24
+ // Shape
25
+ readonly shape: Promise<[number, number]>;
26
+ readonly columns: Promise<string[]>;
27
+ readonly index: Promise<unknown[]>;
28
+ readonly dtypes: Promise<Record<string, string>>;
29
+ readonly size: Promise<number>;
30
+ readonly ndim: Promise<number>;
31
+ readonly empty: Promise<boolean>;
32
+
33
+ // Indexing
34
+ loc: PyProxy;
35
+ iloc: PyProxy;
36
+ at: PyProxy;
37
+ iat: PyProxy;
38
+
39
+ // Conversion
40
+ to_dict(orient?: 'records' | 'list' | 'dict' | 'split' | 'tight' | 'index'): Promise<unknown>;
41
+ to_json(path_or_buf?: string | null, orient?: string): Promise<string | null>;
42
+ to_csv(path_or_buf?: string | null, sep?: string, index?: boolean): Promise<string | null>;
43
+ to_parquet(path?: string, engine?: string): Promise<void>;
44
+ to_excel(excel_writer: string, sheet_name?: string): Promise<void>;
45
+ to_numpy(): Promise<Float64Array | unknown[][]>;
46
+ to_records(index?: boolean): Promise<unknown[]>;
47
+ to_string(): Promise<string>;
48
+ to_html(buf?: string | null): Promise<string | null>;
49
+ to_markdown(): Promise<string>;
50
+
51
+ // Selection
52
+ head(n?: number): Promise<DataFrameResult>;
53
+ tail(n?: number): Promise<DataFrameResult>;
54
+ sample(n?: number, frac?: number, replace?: boolean, random_state?: number): Promise<DataFrameResult>;
55
+ filter(items?: string[], like?: string, regex?: string, axis?: number | string): Promise<DataFrameResult>;
56
+ select_dtypes(include?: string | string[], exclude?: string | string[]): Promise<DataFrameResult>;
57
+
58
+ // Aggregation
59
+ groupby(by: string | string[], axis?: number | string, sort?: boolean, dropna?: boolean): PyProxy;
60
+ agg(func: string | string[] | Record<string, string | string[]>): Promise<DataFrameResult | SeriesResult>;
61
+ aggregate(func: string | string[] | Record<string, string | string[]>): Promise<DataFrameResult | SeriesResult>;
62
+ pivot_table(values?: string, index?: string | string[], columns?: string | string[], aggfunc?: string): Promise<DataFrameResult>;
63
+ pivot(index?: string, columns?: string, values?: string): Promise<DataFrameResult>;
64
+ melt(id_vars?: string | string[], value_vars?: string | string[], var_name?: string, value_name?: string): Promise<DataFrameResult>;
65
+ stack(level?: number | string): Promise<DataFrameResult | SeriesResult>;
66
+ unstack(level?: number | string): Promise<DataFrameResult | SeriesResult>;
67
+ crosstab(): Promise<DataFrameResult>;
68
+ resample(rule: string, axis?: number): PyProxy;
69
+
70
+ // Transformation
71
+ apply(func: PyProxy | ((...args: unknown[]) => unknown), axis?: number | string, raw?: boolean): Promise<DataFrameResult | SeriesResult>;
72
+ applymap(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<DataFrameResult>;
73
+ map(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<DataFrameResult>;
74
+ transform(func: string | ((...args: unknown[]) => unknown), axis?: number): Promise<DataFrameResult>;
75
+ pipe(func: PyProxy | ((...args: unknown[]) => unknown), ...args: unknown[]): Promise<DataFrameResult>;
76
+
77
+ // Sorting
78
+ sort_values(by: string | string[], ascending?: boolean | boolean[], inplace?: boolean, na_position?: 'first' | 'last'): Promise<DataFrameResult>;
79
+ sort_index(axis?: number, level?: number, ascending?: boolean, inplace?: boolean): Promise<DataFrameResult>;
80
+ rank(axis?: number, method?: 'average' | 'min' | 'max' | 'first' | 'dense', ascending?: boolean): Promise<DataFrameResult>;
81
+
82
+ // Missing data
83
+ isnull(): Promise<DataFrameResult>;
84
+ isna(): Promise<DataFrameResult>;
85
+ notna(): Promise<DataFrameResult>;
86
+ notnull(): Promise<DataFrameResult>;
87
+ dropna(axis?: number | string, how?: 'any' | 'all', subset?: string[]): Promise<DataFrameResult>;
88
+ fillna(value?: unknown, method?: 'backfill' | 'bfill' | 'ffill' | 'pad'): Promise<DataFrameResult>;
89
+ interpolate(method?: string): Promise<DataFrameResult>;
90
+
91
+ // Merging
92
+ merge(right: PyProxy, how?: 'left' | 'right' | 'inner' | 'outer' | 'cross', on?: string | string[], left_on?: string | string[], right_on?: string | string[]): Promise<DataFrameResult>;
93
+ join(other: PyProxy, on?: string, how?: 'left' | 'right' | 'inner' | 'outer'): Promise<DataFrameResult>;
94
+ concat(objs: PyProxy[], axis?: number): Promise<DataFrameResult>;
95
+ append(other: PyProxy | Record<string, unknown>, ignore_index?: boolean): Promise<DataFrameResult>;
96
+
97
+ // Statistics
98
+ describe(include?: string | string[], exclude?: string | string[]): Promise<DataFrameResult>;
99
+ info(): Promise<void>;
100
+ mean(axis?: number | string, numeric_only?: boolean): Promise<SeriesResult>;
101
+ median(axis?: number | string, numeric_only?: boolean): Promise<SeriesResult>;
102
+ std(axis?: number | string, ddof?: number): Promise<SeriesResult>;
103
+ var(axis?: number | string, ddof?: number): Promise<SeriesResult>;
104
+ min(axis?: number | string): Promise<SeriesResult>;
105
+ max(axis?: number | string): Promise<SeriesResult>;
106
+ sum(axis?: number | string, skipna?: boolean): Promise<SeriesResult>;
107
+ count(axis?: number | string): Promise<SeriesResult>;
108
+ corr(method?: 'pearson' | 'kendall' | 'spearman'): Promise<DataFrameResult>;
109
+ cov(): Promise<DataFrameResult>;
110
+ cumsum(axis?: number): Promise<DataFrameResult>;
111
+ cumprod(axis?: number): Promise<DataFrameResult>;
112
+ cummax(axis?: number): Promise<DataFrameResult>;
113
+ cummin(axis?: number): Promise<DataFrameResult>;
114
+ diff(periods?: number, axis?: number): Promise<DataFrameResult>;
115
+ pct_change(periods?: number): Promise<DataFrameResult>;
116
+ quantile(q?: number | number[], axis?: number, numeric_only?: boolean): Promise<DataFrameResult | SeriesResult>;
117
+ mode(axis?: number, numeric_only?: boolean, dropna?: boolean): Promise<DataFrameResult>;
118
+ abs(): Promise<DataFrameResult>;
119
+ clip(lower?: number, upper?: number): Promise<DataFrameResult>;
120
+ round(decimals?: number | Record<string, number>): Promise<DataFrameResult>;
121
+
122
+ // Index operations
123
+ reset_index(level?: number | string | (number | string)[], drop?: boolean, inplace?: boolean): Promise<DataFrameResult>;
124
+ set_index(keys: string | string[], drop?: boolean, inplace?: boolean): Promise<DataFrameResult>;
125
+ reindex(index?: unknown[], columns?: string[], fill_value?: unknown): Promise<DataFrameResult>;
126
+ rename(columns?: Record<string, string>, index?: Record<unknown, unknown>): Promise<DataFrameResult>;
127
+ rename_axis(mapper?: string | string[]): Promise<DataFrameResult>;
128
+ drop(labels?: string | string[], axis?: number | string, columns?: string | string[], index?: unknown[], inplace?: boolean): Promise<DataFrameResult>;
129
+ drop_duplicates(subset?: string | string[], keep?: 'first' | 'last' | false, inplace?: boolean): Promise<DataFrameResult>;
130
+ duplicated(subset?: string | string[], keep?: 'first' | 'last' | false): Promise<SeriesResult>;
131
+
132
+ // Type conversion
133
+ astype(dtype: string | Record<string, string>): Promise<DataFrameResult>;
134
+ convert_dtypes(): Promise<DataFrameResult>;
135
+ infer_objects(): Promise<DataFrameResult>;
136
+
137
+ // Utility
138
+ copy(deep?: boolean): Promise<DataFrameResult>;
139
+ equals(other: PyProxy): Promise<boolean>;
140
+ assign(...kwargs: Record<string, unknown>[]): Promise<DataFrameResult>;
141
+ eval(expr: string, inplace?: boolean): Promise<DataFrameResult | SeriesResult>;
142
+ query(expr: string, inplace?: boolean): Promise<DataFrameResult>;
143
+ items(): Promise<Array<[string, SeriesResult]>>;
144
+ iterrows(): PyProxy;
145
+ itertuples(index?: boolean, name?: string): PyProxy;
146
+ iteritems(): PyProxy;
147
+ __len__(): Promise<number>;
148
+ __str__(): Promise<string>;
149
+ [key: string]: unknown;
150
+ }
151
+
152
+ /**
153
+ * One-dimensional ndarray with axis labels.
154
+ */
155
+ export class Series {
156
+ constructor(
157
+ data?: unknown[] | Record<unknown, unknown>,
158
+ index?: unknown[],
159
+ dtype?: string,
160
+ name?: string,
161
+ );
162
+
163
+ readonly name: Promise<string>;
164
+ readonly dtype: Promise<string>;
165
+ readonly shape: Promise<[number]>;
166
+ readonly size: Promise<number>;
167
+ readonly ndim: Promise<number>;
168
+ readonly index: Promise<unknown[]>;
169
+ readonly values: Promise<unknown[]>;
170
+ readonly empty: Promise<boolean>;
171
+
172
+ // Conversion
173
+ tolist(): Promise<unknown[]>;
174
+ to_list(): Promise<unknown[]>;
175
+ to_numpy(): Promise<Float64Array>;
176
+ to_dict(): Promise<Record<unknown, unknown>>;
177
+ to_frame(name?: string): Promise<DataFrameResult>;
178
+ to_json(path_or_buf?: string | null, orient?: string): Promise<string | null>;
179
+ to_csv(path_or_buf?: string | null): Promise<string | null>;
180
+ to_string(): Promise<string>;
181
+
182
+ // Selection
183
+ head(n?: number): Promise<SeriesResult>;
184
+ tail(n?: number): Promise<SeriesResult>;
185
+ sample(n?: number, frac?: number): Promise<SeriesResult>;
186
+
187
+ // Statistics
188
+ describe(): Promise<SeriesResult>;
189
+ mean(): Promise<number>;
190
+ median(): Promise<number>;
191
+ std(ddof?: number): Promise<number>;
192
+ var(ddof?: number): Promise<number>;
193
+ min(): Promise<number>;
194
+ max(): Promise<number>;
195
+ sum(skipna?: boolean): Promise<number>;
196
+ count(): Promise<number>;
197
+ value_counts(normalize?: boolean, sort?: boolean, ascending?: boolean, dropna?: boolean): Promise<SeriesResult>;
198
+ unique(): Promise<unknown[]>;
199
+ nunique(dropna?: boolean): Promise<number>;
200
+ quantile(q?: number | number[]): Promise<number | SeriesResult>;
201
+ mode(dropna?: boolean): Promise<SeriesResult>;
202
+ corr(other: PyProxy, method?: string): Promise<number>;
203
+ cov(other: PyProxy, min_periods?: number): Promise<number>;
204
+ abs(): Promise<SeriesResult>;
205
+ round(decimals?: number): Promise<SeriesResult>;
206
+ clip(lower?: number, upper?: number): Promise<SeriesResult>;
207
+ cumsum(): Promise<SeriesResult>;
208
+ cumprod(): Promise<SeriesResult>;
209
+ diff(periods?: number): Promise<SeriesResult>;
210
+ pct_change(periods?: number): Promise<SeriesResult>;
211
+ rank(method?: string, ascending?: boolean): Promise<SeriesResult>;
212
+
213
+ // Transformation
214
+ apply(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<SeriesResult>;
215
+ map(arg: PyProxy | Record<unknown, unknown> | ((...args: unknown[]) => unknown)): Promise<SeriesResult>;
216
+ transform(func: string | ((...args: unknown[]) => unknown)): Promise<SeriesResult>;
217
+ pipe(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<SeriesResult>;
218
+
219
+ // Missing data
220
+ isnull(): Promise<SeriesResult>;
221
+ isna(): Promise<SeriesResult>;
222
+ notna(): Promise<SeriesResult>;
223
+ dropna(): Promise<SeriesResult>;
224
+ fillna(value?: unknown, method?: string): Promise<SeriesResult>;
225
+ interpolate(method?: string): Promise<SeriesResult>;
226
+
227
+ // Sorting
228
+ sort_values(ascending?: boolean, inplace?: boolean): Promise<SeriesResult>;
229
+ sort_index(ascending?: boolean, inplace?: boolean): Promise<SeriesResult>;
230
+
231
+ // Index operations
232
+ reset_index(drop?: boolean): Promise<SeriesResult | DataFrameResult>;
233
+ rename(index?: string | Record<unknown, unknown>): Promise<SeriesResult>;
234
+ reindex(index?: unknown[]): Promise<SeriesResult>;
235
+ drop(labels: unknown | unknown[]): Promise<SeriesResult>;
236
+ drop_duplicates(keep?: 'first' | 'last' | false): Promise<SeriesResult>;
237
+
238
+ // String operations
239
+ str: PyProxy;
240
+ dt: PyProxy;
241
+ cat: PyProxy;
242
+ plot: PyProxy;
243
+
244
+ // Type
245
+ astype(dtype: string): Promise<SeriesResult>;
246
+ copy(deep?: boolean): Promise<SeriesResult>;
247
+ __len__(): Promise<number>;
248
+ __str__(): Promise<string>;
249
+ [key: string]: unknown;
250
+ }
251
+
252
+ /**
253
+ * Immutable sequence used for indexing and alignment.
254
+ */
255
+ export class Index {
256
+ constructor(data: unknown[], dtype?: string, name?: string);
257
+ readonly name: Promise<string>;
258
+ readonly dtype: Promise<string>;
259
+ readonly shape: Promise<[number]>;
260
+ tolist(): Promise<unknown[]>;
261
+ to_list(): Promise<unknown[]>;
262
+ to_numpy(): Promise<unknown[]>;
263
+ sort_values(ascending?: boolean): Promise<unknown[]>;
264
+ unique(): Promise<unknown[]>;
265
+ [key: string]: unknown;
266
+ }
267
+
268
+ // ── Top-level functions ────────────────────────────────────────────────────
269
+
270
+ export function read_csv(
271
+ filepath_or_buffer: string | PyProxy,
272
+ sep?: string,
273
+ delimiter?: string,
274
+ header?: number | number[] | null,
275
+ names?: string[],
276
+ index_col?: string | number | (string | number)[] | false,
277
+ usecols?: string[] | number[],
278
+ dtype?: string | Record<string, string>,
279
+ na_values?: unknown,
280
+ skiprows?: number | number[],
281
+ nrows?: number,
282
+ encoding?: string,
283
+ compression?: string,
284
+ chunksize?: number,
285
+ low_memory?: boolean,
286
+ ): Promise<DataFrameResult>;
287
+
288
+ export function read_excel(
289
+ io: string | PyProxy,
290
+ sheet_name?: string | number | (string | number)[] | null,
291
+ header?: number | null,
292
+ names?: string[],
293
+ index_col?: string | number | null,
294
+ usecols?: string | number[],
295
+ dtype?: string | Record<string, string>,
296
+ skiprows?: number | number[],
297
+ nrows?: number,
298
+ ): Promise<DataFrameResult | Record<string, DataFrameResult>>;
299
+
300
+ export function read_json(
301
+ path_or_buf: string | PyProxy,
302
+ orient?: 'records' | 'split' | 'index' | 'columns' | 'values',
303
+ typ?: 'frame' | 'series',
304
+ lines?: boolean,
305
+ chunksize?: number,
306
+ ): Promise<DataFrameResult | SeriesResult>;
307
+
308
+ export function read_parquet(
309
+ path: string | PyProxy,
310
+ engine?: 'auto' | 'pyarrow' | 'fastparquet',
311
+ columns?: string[],
312
+ filters?: unknown,
313
+ ): Promise<DataFrameResult>;
314
+
315
+ export function read_sql(
316
+ sql: string | PyProxy,
317
+ con: PyProxy,
318
+ index_col?: string | string[],
319
+ params?: unknown[] | Record<string, unknown>,
320
+ columns?: string[],
321
+ chunksize?: number,
322
+ ): Promise<DataFrameResult>;
323
+
324
+ export function read_sql_query(
325
+ sql: string | PyProxy,
326
+ con: PyProxy,
327
+ index_col?: string | null,
328
+ params?: unknown[] | Record<string, unknown>,
329
+ chunksize?: number,
330
+ ): Promise<DataFrameResult>;
331
+
332
+ export function read_html(
333
+ io: string | PyProxy,
334
+ match?: string | RegExp,
335
+ header?: number | number[],
336
+ index_col?: number | number[],
337
+ attrs?: Record<string, string>,
338
+ ): Promise<DataFrameResult[]>;
339
+
340
+ export function read_clipboard(sep?: string): Promise<DataFrameResult>;
341
+
342
+ export function read_feather(path: string | PyProxy): Promise<DataFrameResult>;
343
+
344
+ export function read_orc(path: string | PyProxy): Promise<DataFrameResult>;
345
+
346
+ export function concat(
347
+ objs: PyProxy[] | DataFrameResult[],
348
+ axis?: 0 | 1,
349
+ join?: 'inner' | 'outer',
350
+ ignore_index?: boolean,
351
+ keys?: unknown[],
352
+ sort?: boolean,
353
+ copy?: boolean,
354
+ ): Promise<DataFrameResult>;
355
+
356
+ export function merge(
357
+ left: PyProxy,
358
+ right: PyProxy,
359
+ how?: 'left' | 'right' | 'inner' | 'outer' | 'cross',
360
+ on?: string | string[],
361
+ left_on?: string | string[],
362
+ right_on?: string | string[],
363
+ suffixes?: [string, string],
364
+ indicator?: boolean,
365
+ validate?: string,
366
+ ): Promise<DataFrameResult>;
367
+
368
+ export function merge_asof(
369
+ left: PyProxy,
370
+ right: PyProxy,
371
+ on?: string,
372
+ by?: string | string[],
373
+ direction?: 'backward' | 'forward' | 'nearest',
374
+ ): Promise<DataFrameResult>;
375
+
376
+ export function pivot_table(
377
+ data: PyProxy,
378
+ values?: string | string[],
379
+ index?: string | string[],
380
+ columns?: string | string[],
381
+ aggfunc?: string | ((...args: unknown[]) => unknown) | Record<string, string>,
382
+ fill_value?: unknown,
383
+ margins?: boolean,
384
+ ): Promise<DataFrameResult>;
385
+
386
+ export function crosstab(
387
+ index: PyProxy | unknown[],
388
+ columns: PyProxy | unknown[],
389
+ values?: PyProxy,
390
+ rownames?: string[],
391
+ colnames?: string[],
392
+ aggfunc?: string,
393
+ normalize?: boolean | 'all' | 'index' | 'columns',
394
+ margins?: boolean,
395
+ ): Promise<DataFrameResult>;
396
+
397
+ export function get_dummies(
398
+ data: PyProxy,
399
+ prefix?: string | string[],
400
+ prefix_sep?: string,
401
+ dummy_na?: boolean,
402
+ columns?: string[],
403
+ drop_first?: boolean,
404
+ dtype?: string,
405
+ ): Promise<DataFrameResult>;
406
+
407
+ export function to_datetime(
408
+ arg: string | string[] | number | number[] | PyProxy,
409
+ errors?: 'raise' | 'coerce' | 'ignore',
410
+ format?: string,
411
+ unit?: string,
412
+ infer_datetime_format?: boolean,
413
+ ): Promise<SeriesResult | PyProxy>;
414
+
415
+ export function to_timedelta(
416
+ arg: string | string[] | number | number[] | PyProxy,
417
+ unit?: string,
418
+ errors?: 'raise' | 'coerce' | 'ignore',
419
+ ): Promise<SeriesResult | PyProxy>;
420
+
421
+ export function isna(obj: unknown): Promise<boolean | DataFrameResult | SeriesResult>;
422
+ export function isnull(obj: unknown): Promise<boolean | DataFrameResult | SeriesResult>;
423
+ export function notna(obj: unknown): Promise<boolean | DataFrameResult | SeriesResult>;
424
+ export function notnull(obj: unknown): Promise<boolean | DataFrameResult | SeriesResult>;
425
+
426
+ export function cut(
427
+ x: PyProxy | unknown[],
428
+ bins: number | number[],
429
+ right?: boolean,
430
+ labels?: string[] | false,
431
+ retbins?: boolean,
432
+ precision?: number,
433
+ include_lowest?: boolean,
434
+ ): Promise<SeriesResult | PyProxy>;
435
+
436
+ export function qcut(
437
+ x: PyProxy | unknown[],
438
+ q: number | number[],
439
+ labels?: string[] | false,
440
+ retbins?: boolean,
441
+ precision?: number,
442
+ duplicates?: 'raise' | 'drop',
443
+ ): Promise<SeriesResult | PyProxy>;
444
+
445
+ export function melt(
446
+ frame: PyProxy,
447
+ id_vars?: string | string[],
448
+ value_vars?: string | string[],
449
+ var_name?: string,
450
+ value_name?: string,
451
+ ): Promise<DataFrameResult>;
452
+
453
+ export function wide_to_long(
454
+ df: PyProxy,
455
+ stubnames: string | string[],
456
+ i: string | string[],
457
+ j: string,
458
+ sep?: string,
459
+ suffix?: string,
460
+ ): Promise<DataFrameResult>;
461
+
462
+ export function factorize(
463
+ values: PyProxy | unknown[],
464
+ sort?: boolean,
465
+ na_sentinel?: number | null,
466
+ ): Promise<[Int32Array, unknown[]]>;
467
+
468
+ // ── Groupby ───────────────────────────────────────────────────────────────
469
+
470
+ export class GroupBy {
471
+ agg(func: string | string[] | Record<string, string>): Promise<DataFrameResult>;
472
+ aggregate(func: string | string[] | Record<string, string>): Promise<DataFrameResult>;
473
+ apply(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<DataFrameResult>;
474
+ transform(func: string | ((...args: unknown[]) => unknown)): Promise<DataFrameResult>;
475
+ filter(func: PyProxy | ((...args: unknown[]) => unknown)): Promise<DataFrameResult>;
476
+ sum(skipna?: boolean): Promise<DataFrameResult>;
477
+ mean(numeric_only?: boolean): Promise<DataFrameResult>;
478
+ median(numeric_only?: boolean): Promise<DataFrameResult>;
479
+ min(): Promise<DataFrameResult>;
480
+ max(): Promise<DataFrameResult>;
481
+ count(): Promise<DataFrameResult>;
482
+ std(ddof?: number): Promise<DataFrameResult>;
483
+ var(ddof?: number): Promise<DataFrameResult>;
484
+ first(): Promise<DataFrameResult>;
485
+ last(): Promise<DataFrameResult>;
486
+ head(n?: number): Promise<DataFrameResult>;
487
+ tail(n?: number): Promise<DataFrameResult>;
488
+ nth(n: number | number[]): Promise<DataFrameResult>;
489
+ cumsum(): Promise<DataFrameResult>;
490
+ cumprod(): Promise<DataFrameResult>;
491
+ cummax(): Promise<DataFrameResult>;
492
+ cummin(): Promise<DataFrameResult>;
493
+ diff(periods?: number): Promise<DataFrameResult>;
494
+ pct_change(periods?: number): Promise<DataFrameResult>;
495
+ rank(method?: string, ascending?: boolean): Promise<DataFrameResult>;
496
+ shift(periods?: number): Promise<DataFrameResult>;
497
+ size(): Promise<SeriesResult>;
498
+ ngroups: Promise<number>;
499
+ groups: Promise<Record<unknown, unknown[]>>;
500
+ [key: string]: unknown;
501
+ }
502
+
503
+ // ── Period / DatetimeIndex ─────────────────────────────────────────────────
504
+
505
+ export function date_range(
506
+ start?: string | Date,
507
+ end?: string | Date,
508
+ periods?: number,
509
+ freq?: string,
510
+ tz?: string,
511
+ normalize?: boolean,
512
+ name?: string,
513
+ ): Promise<PyProxy>;
514
+
515
+ export function period_range(
516
+ start?: string,
517
+ end?: string,
518
+ periods?: number,
519
+ freq?: string,
520
+ name?: string,
521
+ ): Promise<PyProxy>;
522
+
523
+ export function timedelta_range(
524
+ start?: string,
525
+ end?: string,
526
+ periods?: number,
527
+ freq?: string,
528
+ name?: string,
529
+ ): Promise<PyProxy>;
530
+
531
+ export function bdate_range(
532
+ start?: string,
533
+ end?: string,
534
+ periods?: number,
535
+ freq?: string,
536
+ tz?: string,
537
+ name?: string,
538
+ ): Promise<PyProxy>;
539
+
540
+ export function Timestamp(
541
+ ts_input?: string | number | Date,
542
+ freq?: string,
543
+ tz?: string,
544
+ unit?: string,
545
+ ): Promise<PyProxy>;
546
+
547
+ export function Timedelta(
548
+ value?: string | number,
549
+ unit?: string,
550
+ days?: number,
551
+ hours?: number,
552
+ minutes?: number,
553
+ seconds?: number,
554
+ ): Promise<PyProxy>;
555
+
556
+ export function Period(
557
+ value?: string,
558
+ freq?: string,
559
+ ordinal?: number,
560
+ year?: number,
561
+ month?: number,
562
+ ): Promise<PyProxy>;
563
+
564
+ // ── Options ────────────────────────────────────────────────────────────────
565
+
566
+ export const options: PyProxy;
567
+ export function set_option(pat: string, value: unknown): Promise<void>;
568
+ export function get_option(pat: string): Promise<unknown>;
569
+ export function reset_option(pat: string): Promise<void>;
570
+
571
+ // ── Versions ──────────────────────────────────────────────────────────────
572
+
573
+ export const __version__: string;
574
+ }
575
+