quantwave 0.1.14__py3-none-win_amd64.whl

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.
@@ -0,0 +1,4038 @@
1
+ # This file was autogenerated by some hot garbage in the `uniffi` crate.
2
+ # Trust me, you don't want to mess with it!
3
+
4
+ # Common helper code.
5
+ #
6
+ # Ideally this would live in a separate .py file where it can be unittested etc
7
+ # in isolation, and perhaps even published as a re-useable package.
8
+ #
9
+ # However, it's important that the details of how this helper code works (e.g. the
10
+ # way that different builtin types are passed across the FFI) exactly match what's
11
+ # expected by the rust code on the other side of the interface. In practice right
12
+ # now that means coming from the exact some version of `uniffi` that was used to
13
+ # compile the rust component. The easiest way to ensure this is to bundle the Python
14
+ # helpers directly inline like we're doing here.
15
+
16
+ from __future__ import annotations
17
+ import os
18
+ import sys
19
+ import ctypes
20
+ from dataclasses import dataclass
21
+ import enum
22
+ import struct
23
+ import contextlib
24
+ import datetime
25
+ import threading
26
+ import itertools
27
+ import traceback
28
+ import typing
29
+ import platform
30
+
31
+
32
+ # Used for default argument values
33
+ _DEFAULT = object() # type: typing.Any
34
+
35
+
36
+ class _UniffiRustBuffer(ctypes.Structure):
37
+ _fields_ = [
38
+ ("capacity", ctypes.c_uint64),
39
+ ("len", ctypes.c_uint64),
40
+ ("data", ctypes.POINTER(ctypes.c_char)),
41
+ ]
42
+
43
+ @staticmethod
44
+ def default():
45
+ return _UniffiRustBuffer(0, 0, None)
46
+
47
+ @staticmethod
48
+ def alloc(size):
49
+ return _uniffi_rust_call(_UniffiLib.ffi_quantwave_python_rustbuffer_alloc, size)
50
+
51
+ @staticmethod
52
+ def reserve(rbuf, additional):
53
+ return _uniffi_rust_call(_UniffiLib.ffi_quantwave_python_rustbuffer_reserve, rbuf, additional)
54
+
55
+ def free(self):
56
+ return _uniffi_rust_call(_UniffiLib.ffi_quantwave_python_rustbuffer_free, self)
57
+
58
+ def __str__(self):
59
+ return "_UniffiRustBuffer(capacity={}, len={}, data={})".format(
60
+ self.capacity,
61
+ self.len,
62
+ self.data[0:self.len]
63
+ )
64
+
65
+ @contextlib.contextmanager
66
+ def alloc_with_builder(*args):
67
+ """Context-manger to allocate a buffer using a _UniffiRustBufferBuilder.
68
+
69
+ The allocated buffer will be automatically freed if an error occurs, ensuring that
70
+ we don't accidentally leak it.
71
+ """
72
+ builder = _UniffiRustBufferBuilder()
73
+ try:
74
+ yield builder
75
+ except:
76
+ builder.discard()
77
+ raise
78
+
79
+ @contextlib.contextmanager
80
+ def consume_with_stream(self):
81
+ """Context-manager to consume a buffer using a _UniffiRustBufferStream.
82
+
83
+ The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't
84
+ leak it even if an error occurs.
85
+ """
86
+ try:
87
+ s = _UniffiRustBufferStream.from_rust_buffer(self)
88
+ yield s
89
+ if s.remaining() != 0:
90
+ raise RuntimeError(f"junk data left in buffer at end of consume_with_stream {s.remaining()}")
91
+ finally:
92
+ self.free()
93
+
94
+ @contextlib.contextmanager
95
+ def read_with_stream(self):
96
+ """Context-manager to read a buffer using a _UniffiRustBufferStream.
97
+
98
+ This is like consume_with_stream, but doesn't free the buffer afterwards.
99
+ It should only be used with borrowed `_UniffiRustBuffer` data.
100
+ """
101
+ s = _UniffiRustBufferStream.from_rust_buffer(self)
102
+ yield s
103
+ if s.remaining() != 0:
104
+ raise RuntimeError(f"junk data left in buffer at end of read_with_stream {s.remaining()}")
105
+
106
+ class _UniffiForeignBytes(ctypes.Structure):
107
+ _fields_ = [
108
+ ("len", ctypes.c_int32),
109
+ ("data", ctypes.POINTER(ctypes.c_char)),
110
+ ]
111
+
112
+ def __str__(self):
113
+ return "_UniffiForeignBytes(len={}, data={})".format(self.len, self.data[0:self.len])
114
+
115
+
116
+ class _UniffiRustBufferStream:
117
+ """
118
+ Helper for structured reading of bytes from a _UniffiRustBuffer
119
+ """
120
+
121
+ def __init__(self, data, len):
122
+ self.data = data
123
+ self.len = len
124
+ self.offset = 0
125
+
126
+ @classmethod
127
+ def from_rust_buffer(cls, buf):
128
+ return cls(buf.data, buf.len)
129
+
130
+ def remaining(self):
131
+ return self.len - self.offset
132
+
133
+ def _unpack_from(self, size, format):
134
+ if self.offset + size > self.len:
135
+ raise InternalError("read past end of rust buffer")
136
+ value = struct.unpack(format, self.data[self.offset:self.offset+size])[0]
137
+ self.offset += size
138
+ return value
139
+
140
+ def read(self, size):
141
+ if self.offset + size > self.len:
142
+ raise InternalError("read past end of rust buffer")
143
+ data = self.data[self.offset:self.offset+size]
144
+ self.offset += size
145
+ return data
146
+
147
+ def read_i8(self):
148
+ return self._unpack_from(1, ">b")
149
+
150
+ def read_u8(self):
151
+ return self._unpack_from(1, ">B")
152
+
153
+ def read_i16(self):
154
+ return self._unpack_from(2, ">h")
155
+
156
+ def read_u16(self):
157
+ return self._unpack_from(2, ">H")
158
+
159
+ def read_i32(self):
160
+ return self._unpack_from(4, ">i")
161
+
162
+ def read_u32(self):
163
+ return self._unpack_from(4, ">I")
164
+
165
+ def read_i64(self):
166
+ return self._unpack_from(8, ">q")
167
+
168
+ def read_u64(self):
169
+ return self._unpack_from(8, ">Q")
170
+
171
+ def read_float(self):
172
+ v = self._unpack_from(4, ">f")
173
+ return v
174
+
175
+ def read_double(self):
176
+ return self._unpack_from(8, ">d")
177
+
178
+ class _UniffiRustBufferBuilder:
179
+ """
180
+ Helper for structured writing of bytes into a _UniffiRustBuffer.
181
+ """
182
+
183
+ def __init__(self):
184
+ self.rbuf = _UniffiRustBuffer.alloc(16)
185
+ self.rbuf.len = 0
186
+
187
+ def finalize(self):
188
+ rbuf = self.rbuf
189
+ self.rbuf = None
190
+ return rbuf
191
+
192
+ def discard(self):
193
+ if self.rbuf is not None:
194
+ rbuf = self.finalize()
195
+ rbuf.free()
196
+
197
+ @contextlib.contextmanager
198
+ def _reserve(self, num_bytes):
199
+ if self.rbuf.len + num_bytes > self.rbuf.capacity:
200
+ self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes)
201
+ yield None
202
+ self.rbuf.len += num_bytes
203
+
204
+ def _pack_into(self, size, format, value):
205
+ with self._reserve(size):
206
+ # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out.
207
+ for i, byte in enumerate(struct.pack(format, value)):
208
+ self.rbuf.data[self.rbuf.len + i] = byte
209
+
210
+ def write(self, value):
211
+ with self._reserve(len(value)):
212
+ for i, byte in enumerate(value):
213
+ self.rbuf.data[self.rbuf.len + i] = byte
214
+
215
+ def write_i8(self, v):
216
+ self._pack_into(1, ">b", v)
217
+
218
+ def write_u8(self, v):
219
+ self._pack_into(1, ">B", v)
220
+
221
+ def write_i16(self, v):
222
+ self._pack_into(2, ">h", v)
223
+
224
+ def write_u16(self, v):
225
+ self._pack_into(2, ">H", v)
226
+
227
+ def write_i32(self, v):
228
+ self._pack_into(4, ">i", v)
229
+
230
+ def write_u32(self, v):
231
+ self._pack_into(4, ">I", v)
232
+
233
+ def write_i64(self, v):
234
+ self._pack_into(8, ">q", v)
235
+
236
+ def write_u64(self, v):
237
+ self._pack_into(8, ">Q", v)
238
+
239
+ def write_float(self, v):
240
+ self._pack_into(4, ">f", v)
241
+
242
+ def write_double(self, v):
243
+ self._pack_into(8, ">d", v)
244
+
245
+ def write_c_size_t(self, v):
246
+ self._pack_into(ctypes.sizeof(ctypes.c_size_t) , "@N", v)
247
+ # A handful of classes and functions to support the generated data structures.
248
+ # This would be a good candidate for isolating in its own ffi-support lib.
249
+
250
+ class InternalError(Exception):
251
+ pass
252
+
253
+ class _UniffiRustCallStatus(ctypes.Structure):
254
+ """
255
+ Error runtime.
256
+ """
257
+ _fields_ = [
258
+ ("code", ctypes.c_int8),
259
+ ("error_buf", _UniffiRustBuffer),
260
+ ]
261
+
262
+ # These match the values from the uniffi::rustcalls module
263
+ CALL_SUCCESS = 0
264
+ CALL_ERROR = 1
265
+ CALL_UNEXPECTED_ERROR = 2
266
+
267
+ @staticmethod
268
+ def default():
269
+ return _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer.default())
270
+
271
+ def __str__(self):
272
+ if self.code == _UniffiRustCallStatus.CALL_SUCCESS:
273
+ return "_UniffiRustCallStatus(CALL_SUCCESS)"
274
+ elif self.code == _UniffiRustCallStatus.CALL_ERROR:
275
+ return "_UniffiRustCallStatus(CALL_ERROR)"
276
+ elif self.code == _UniffiRustCallStatus.CALL_UNEXPECTED_ERROR:
277
+ return "_UniffiRustCallStatus(CALL_UNEXPECTED_ERROR)"
278
+ else:
279
+ return "_UniffiRustCallStatus(<invalid code>)"
280
+
281
+ def _uniffi_rust_call(fn, *args):
282
+ # Call a rust function
283
+ return _uniffi_rust_call_with_error(None, fn, *args)
284
+
285
+ def _uniffi_rust_call_with_error(error_ffi_converter, fn, *args):
286
+ # Call a rust function and handle any errors
287
+ #
288
+ # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code.
289
+ # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result.
290
+ call_status = _UniffiRustCallStatus.default()
291
+
292
+ args_with_error = args + (ctypes.byref(call_status),)
293
+ result = fn(*args_with_error)
294
+ _uniffi_check_call_status(error_ffi_converter, call_status)
295
+ return result
296
+
297
+ def _uniffi_check_call_status(error_ffi_converter, call_status):
298
+ if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS:
299
+ pass
300
+ elif call_status.code == _UniffiRustCallStatus.CALL_ERROR:
301
+ if error_ffi_converter is None:
302
+ call_status.error_buf.free()
303
+ raise InternalError("_uniffi_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None")
304
+ else:
305
+ raise error_ffi_converter.lift(call_status.error_buf)
306
+ elif call_status.code == _UniffiRustCallStatus.CALL_UNEXPECTED_ERROR:
307
+ # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer
308
+ # with the message. But if that code panics, then it just sends back
309
+ # an empty buffer.
310
+ if call_status.error_buf.len > 0:
311
+ msg = _UniffiFfiConverterString.lift(call_status.error_buf)
312
+ else:
313
+ msg = "Unknown rust panic"
314
+ raise InternalError(msg)
315
+ else:
316
+ raise InternalError("Invalid _UniffiRustCallStatus code: {}".format(
317
+ call_status.code))
318
+
319
+ def _uniffi_trait_interface_call(call_status, make_call, write_return_value):
320
+ try:
321
+ return write_return_value(make_call())
322
+ except Exception as e:
323
+ call_status.code = _UniffiRustCallStatus.CALL_UNEXPECTED_ERROR
324
+ call_status.error_buf = _UniffiFfiConverterString.lower(repr(e))
325
+
326
+ def _uniffi_trait_interface_call_with_error(call_status, make_call, write_return_value, error_type, lower_error):
327
+ try:
328
+ try:
329
+ return write_return_value(make_call())
330
+ except error_type as e:
331
+ call_status.code = _UniffiRustCallStatus.CALL_ERROR
332
+ call_status.error_buf = lower_error(e)
333
+ except Exception as e:
334
+ call_status.code = _UniffiRustCallStatus.CALL_UNEXPECTED_ERROR
335
+ call_status.error_buf = _UniffiFfiConverterString.lower(repr(e))
336
+ # Initial value and increment amount for handles.
337
+ # These ensure that Python-generated handles always have the lowest bit set
338
+ _UNIFFI_HANDLEMAP_INITIAL = 1
339
+ _UNIFFI_HANDLEMAP_DELTA = 2
340
+
341
+ class _UniffiHandleMap:
342
+ """
343
+ A map where inserting, getting and removing data is synchronized with a lock.
344
+ """
345
+
346
+ def __init__(self):
347
+ # type Handle = int
348
+ self._map = {} # type: Dict[Handle, Any]
349
+ self._lock = threading.Lock()
350
+ self._counter = _UNIFFI_HANDLEMAP_INITIAL
351
+
352
+ def insert(self, obj):
353
+ with self._lock:
354
+ return self._insert(obj)
355
+
356
+ """Low-level insert, this assumes `self._lock` is held."""
357
+ def _insert(self, obj):
358
+ handle = self._counter
359
+ self._counter += _UNIFFI_HANDLEMAP_DELTA
360
+ self._map[handle] = obj
361
+ return handle
362
+
363
+ def get(self, handle):
364
+ try:
365
+ with self._lock:
366
+ return self._map[handle]
367
+ except KeyError:
368
+ raise InternalError(f"_UniffiHandleMap.get: Invalid handle {handle}")
369
+
370
+ def clone(self, handle):
371
+ try:
372
+ with self._lock:
373
+ obj = self._map[handle]
374
+ return self._insert(obj)
375
+ except KeyError:
376
+ raise InternalError(f"_UniffiHandleMap.clone: Invalid handle {handle}")
377
+
378
+ def remove(self, handle):
379
+ try:
380
+ with self._lock:
381
+ return self._map.pop(handle)
382
+ except KeyError:
383
+ raise InternalError(f"_UniffiHandleMap.remove: Invalid handle: {handle}")
384
+
385
+ def __len__(self):
386
+ return len(self._map)
387
+ # Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI.
388
+ class _UniffiConverterPrimitive:
389
+ @classmethod
390
+ def lift(cls, value):
391
+ return value
392
+
393
+ @classmethod
394
+ def lower(cls, value):
395
+ return value
396
+
397
+ class _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive):
398
+ @classmethod
399
+ def check_lower(cls, value):
400
+ try:
401
+ value = value.__index__()
402
+ except Exception:
403
+ raise TypeError("'{}' object cannot be interpreted as an integer".format(type(value).__name__))
404
+ if not isinstance(value, int):
405
+ raise TypeError("__index__ returned non-int (type {})".format(type(value).__name__))
406
+ if not cls.VALUE_MIN <= value < cls.VALUE_MAX:
407
+ raise ValueError("{} requires {} <= value < {}".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX))
408
+
409
+ class _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive):
410
+ @classmethod
411
+ def check_lower(cls, value):
412
+ try:
413
+ value = value.__float__()
414
+ except Exception:
415
+ raise TypeError("must be real number, not {}".format(type(value).__name__))
416
+ if not isinstance(value, float):
417
+ raise TypeError("__float__ returned non-float (type {})".format(type(value).__name__))
418
+
419
+ # Helper class for wrapper types that will always go through a _UniffiRustBuffer.
420
+ # Classes should inherit from this and implement the `read` and `write` static methods.
421
+ class _UniffiConverterRustBuffer:
422
+ @classmethod
423
+ def lift(cls, rbuf):
424
+ with rbuf.consume_with_stream() as stream:
425
+ return cls.read(stream)
426
+
427
+ @classmethod
428
+ def lower(cls, value):
429
+ with _UniffiRustBuffer.alloc_with_builder() as builder:
430
+ cls.write(value, builder)
431
+ return builder.finalize()
432
+
433
+ # Contains loading, initialization code, and the FFI Function declarations.
434
+ # Define some ctypes FFI types that we use in the library
435
+
436
+ """
437
+ Function pointer for a Rust task, which a callback function that takes a opaque pointer
438
+ """
439
+ _UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8)
440
+
441
+ def _uniffi_future_callback_t(return_type):
442
+ """
443
+ Factory function to create callback function types for async functions
444
+ """
445
+ return ctypes.CFUNCTYPE(None, ctypes.c_uint64, return_type, _UniffiRustCallStatus)
446
+
447
+ def _uniffi_load_indirect():
448
+ """
449
+ This is how we find and load the dynamic library provided by the component.
450
+ For now we just look it up by name.
451
+ """
452
+ if sys.platform == "darwin":
453
+ libname = "lib{}.dylib"
454
+ elif sys.platform.startswith("win"):
455
+ # As of python3.8, ctypes does not seem to search $PATH when loading DLLs.
456
+ # We could use `os.add_dll_directory` to configure the search path, but
457
+ # it doesn't feel right to mess with application-wide settings. Let's
458
+ # assume that the `.dll` is next to the `.py` file and load by full path.
459
+ libname = os.path.join(
460
+ os.path.dirname(__file__),
461
+ "{}.dll",
462
+ )
463
+ else:
464
+ # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos
465
+ libname = "lib{}.so"
466
+
467
+ libname = libname.format("quantwave_python")
468
+ path = os.path.join(os.path.dirname(__file__), libname)
469
+ lib = ctypes.cdll.LoadLibrary(path)
470
+ return lib
471
+
472
+ def _uniffi_check_contract_api_version(lib):
473
+ # Get the bindings contract version from our ComponentInterface
474
+ bindings_contract_version = 30
475
+ # Get the scaffolding contract version by calling the into the dylib
476
+ scaffolding_contract_version = lib.ffi_quantwave_python_uniffi_contract_version()
477
+ if bindings_contract_version != scaffolding_contract_version:
478
+ raise InternalError("UniFFI contract version mismatch: try cleaning and rebuilding your project")
479
+
480
+ def _uniffi_check_api_checksums(lib):
481
+ if lib.uniffi_quantwave_python_checksum_func_adx() != 29272:
482
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
483
+ if lib.uniffi_quantwave_python_checksum_func_aroon() != 19580:
484
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
485
+ if lib.uniffi_quantwave_python_checksum_func_atr() != 51556:
486
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
487
+ if lib.uniffi_quantwave_python_checksum_func_bbands() != 8036:
488
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
489
+ if lib.uniffi_quantwave_python_checksum_func_cci() != 3494:
490
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
491
+ if lib.uniffi_quantwave_python_checksum_func_dema() != 26054:
492
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
493
+ if lib.uniffi_quantwave_python_checksum_func_ema() != 37217:
494
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
495
+ if lib.uniffi_quantwave_python_checksum_func_ichimoku_batch() != 60138:
496
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
497
+ if lib.uniffi_quantwave_python_checksum_func_kama() != 56018:
498
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
499
+ if lib.uniffi_quantwave_python_checksum_func_macd() != 813:
500
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
501
+ if lib.uniffi_quantwave_python_checksum_func_mama() != 14526:
502
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
503
+ if lib.uniffi_quantwave_python_checksum_func_mom() != 9823:
504
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
505
+ if lib.uniffi_quantwave_python_checksum_func_roc() != 52035:
506
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
507
+ if lib.uniffi_quantwave_python_checksum_func_rsi() != 17470:
508
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
509
+ if lib.uniffi_quantwave_python_checksum_func_sar() != 1260:
510
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
511
+ if lib.uniffi_quantwave_python_checksum_func_sma() != 65417:
512
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
513
+ if lib.uniffi_quantwave_python_checksum_func_stoch() != 29426:
514
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
515
+ if lib.uniffi_quantwave_python_checksum_func_supertrend_batch() != 13144:
516
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
517
+ if lib.uniffi_quantwave_python_checksum_func_t3() != 2991:
518
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
519
+ if lib.uniffi_quantwave_python_checksum_func_tema() != 19791:
520
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
521
+ if lib.uniffi_quantwave_python_checksum_func_willr() != 6232:
522
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
523
+ if lib.uniffi_quantwave_python_checksum_func_wma() != 54822:
524
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
525
+ if lib.uniffi_quantwave_python_checksum_constructor_adx_new() != 24369:
526
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
527
+ if lib.uniffi_quantwave_python_checksum_method_adx_next() != 13949:
528
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
529
+ if lib.uniffi_quantwave_python_checksum_constructor_atr_new() != 9842:
530
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
531
+ if lib.uniffi_quantwave_python_checksum_method_atr_next() != 5508:
532
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
533
+ if lib.uniffi_quantwave_python_checksum_constructor_bbands_new() != 19772:
534
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
535
+ if lib.uniffi_quantwave_python_checksum_method_bbands_next() != 18423:
536
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
537
+ if lib.uniffi_quantwave_python_checksum_constructor_cci_new() != 61766:
538
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
539
+ if lib.uniffi_quantwave_python_checksum_method_cci_next() != 6750:
540
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
541
+ if lib.uniffi_quantwave_python_checksum_constructor_ema_new() != 52537:
542
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
543
+ if lib.uniffi_quantwave_python_checksum_method_ema_next() != 21608:
544
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
545
+ if lib.uniffi_quantwave_python_checksum_constructor_ichimoku_new() != 17155:
546
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
547
+ if lib.uniffi_quantwave_python_checksum_method_ichimoku_next() != 34652:
548
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
549
+ if lib.uniffi_quantwave_python_checksum_constructor_kama_new() != 13791:
550
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
551
+ if lib.uniffi_quantwave_python_checksum_method_kama_next() != 1941:
552
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
553
+ if lib.uniffi_quantwave_python_checksum_constructor_macd_new() != 64226:
554
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
555
+ if lib.uniffi_quantwave_python_checksum_method_macd_next() != 60380:
556
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
557
+ if lib.uniffi_quantwave_python_checksum_constructor_mama_new() != 3570:
558
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
559
+ if lib.uniffi_quantwave_python_checksum_method_mama_next() != 56773:
560
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
561
+ if lib.uniffi_quantwave_python_checksum_constructor_rsi_new() != 54433:
562
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
563
+ if lib.uniffi_quantwave_python_checksum_method_rsi_next() != 36470:
564
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
565
+ if lib.uniffi_quantwave_python_checksum_constructor_sar_new() != 55036:
566
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
567
+ if lib.uniffi_quantwave_python_checksum_method_sar_next() != 13494:
568
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
569
+ if lib.uniffi_quantwave_python_checksum_constructor_sma_new() != 549:
570
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
571
+ if lib.uniffi_quantwave_python_checksum_method_sma_next() != 43956:
572
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
573
+ if lib.uniffi_quantwave_python_checksum_constructor_stoch_new() != 16954:
574
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
575
+ if lib.uniffi_quantwave_python_checksum_method_stoch_next() != 16298:
576
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
577
+ if lib.uniffi_quantwave_python_checksum_constructor_supertrend_new() != 33689:
578
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
579
+ if lib.uniffi_quantwave_python_checksum_method_supertrend_next() != 16495:
580
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
581
+ if lib.uniffi_quantwave_python_checksum_constructor_t3_new() != 16265:
582
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
583
+ if lib.uniffi_quantwave_python_checksum_method_t3_next() != 4066:
584
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
585
+ if lib.uniffi_quantwave_python_checksum_constructor_wma_new() != 20766:
586
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
587
+ if lib.uniffi_quantwave_python_checksum_method_wma_next() != 17686:
588
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
589
+
590
+ # A ctypes library to expose the extern-C FFI definitions.
591
+ # This is an implementation detail which will be called internally by the public API.
592
+
593
+ _UniffiLib = _uniffi_load_indirect()
594
+ _UniffiLib.ffi_quantwave_python_rustbuffer_alloc.argtypes = (
595
+ ctypes.c_uint64,
596
+ ctypes.POINTER(_UniffiRustCallStatus),
597
+ )
598
+ _UniffiLib.ffi_quantwave_python_rustbuffer_alloc.restype = _UniffiRustBuffer
599
+ _UniffiLib.ffi_quantwave_python_rustbuffer_from_bytes.argtypes = (
600
+ _UniffiForeignBytes,
601
+ ctypes.POINTER(_UniffiRustCallStatus),
602
+ )
603
+ _UniffiLib.ffi_quantwave_python_rustbuffer_from_bytes.restype = _UniffiRustBuffer
604
+ _UniffiLib.ffi_quantwave_python_rustbuffer_free.argtypes = (
605
+ _UniffiRustBuffer,
606
+ ctypes.POINTER(_UniffiRustCallStatus),
607
+ )
608
+ _UniffiLib.ffi_quantwave_python_rustbuffer_free.restype = None
609
+ _UniffiLib.ffi_quantwave_python_rustbuffer_reserve.argtypes = (
610
+ _UniffiRustBuffer,
611
+ ctypes.c_uint64,
612
+ ctypes.POINTER(_UniffiRustCallStatus),
613
+ )
614
+ _UniffiLib.ffi_quantwave_python_rustbuffer_reserve.restype = _UniffiRustBuffer
615
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK = ctypes.CFUNCTYPE(None,ctypes.c_uint64,ctypes.c_int8,
616
+ )
617
+ _UNIFFI_FOREIGN_FUTURE_DROPPED_CALLBACK = ctypes.CFUNCTYPE(None,ctypes.c_uint64,
618
+ )
619
+ class _UniffiForeignFutureDroppedCallbackStruct(ctypes.Structure):
620
+ _fields_ = [
621
+ ("handle", ctypes.c_uint64),
622
+ ("free", _UNIFFI_FOREIGN_FUTURE_DROPPED_CALLBACK),
623
+ ]
624
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u8.argtypes = (
625
+ ctypes.c_uint64,
626
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
627
+ ctypes.c_uint64,
628
+ )
629
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u8.restype = None
630
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u8.argtypes = (
631
+ ctypes.c_uint64,
632
+ )
633
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u8.restype = None
634
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u8.argtypes = (
635
+ ctypes.c_uint64,
636
+ ctypes.POINTER(_UniffiRustCallStatus),
637
+ )
638
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u8.restype = ctypes.c_uint8
639
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u8.argtypes = (
640
+ ctypes.c_uint64,
641
+ )
642
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u8.restype = None
643
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i8.argtypes = (
644
+ ctypes.c_uint64,
645
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
646
+ ctypes.c_uint64,
647
+ )
648
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i8.restype = None
649
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i8.argtypes = (
650
+ ctypes.c_uint64,
651
+ )
652
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i8.restype = None
653
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i8.argtypes = (
654
+ ctypes.c_uint64,
655
+ ctypes.POINTER(_UniffiRustCallStatus),
656
+ )
657
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i8.restype = ctypes.c_int8
658
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i8.argtypes = (
659
+ ctypes.c_uint64,
660
+ )
661
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i8.restype = None
662
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u16.argtypes = (
663
+ ctypes.c_uint64,
664
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
665
+ ctypes.c_uint64,
666
+ )
667
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u16.restype = None
668
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u16.argtypes = (
669
+ ctypes.c_uint64,
670
+ )
671
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u16.restype = None
672
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u16.argtypes = (
673
+ ctypes.c_uint64,
674
+ ctypes.POINTER(_UniffiRustCallStatus),
675
+ )
676
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u16.restype = ctypes.c_uint16
677
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u16.argtypes = (
678
+ ctypes.c_uint64,
679
+ )
680
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u16.restype = None
681
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i16.argtypes = (
682
+ ctypes.c_uint64,
683
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
684
+ ctypes.c_uint64,
685
+ )
686
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i16.restype = None
687
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i16.argtypes = (
688
+ ctypes.c_uint64,
689
+ )
690
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i16.restype = None
691
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i16.argtypes = (
692
+ ctypes.c_uint64,
693
+ ctypes.POINTER(_UniffiRustCallStatus),
694
+ )
695
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i16.restype = ctypes.c_int16
696
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i16.argtypes = (
697
+ ctypes.c_uint64,
698
+ )
699
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i16.restype = None
700
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u32.argtypes = (
701
+ ctypes.c_uint64,
702
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
703
+ ctypes.c_uint64,
704
+ )
705
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u32.restype = None
706
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u32.argtypes = (
707
+ ctypes.c_uint64,
708
+ )
709
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u32.restype = None
710
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u32.argtypes = (
711
+ ctypes.c_uint64,
712
+ ctypes.POINTER(_UniffiRustCallStatus),
713
+ )
714
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u32.restype = ctypes.c_uint32
715
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u32.argtypes = (
716
+ ctypes.c_uint64,
717
+ )
718
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u32.restype = None
719
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i32.argtypes = (
720
+ ctypes.c_uint64,
721
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
722
+ ctypes.c_uint64,
723
+ )
724
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i32.restype = None
725
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i32.argtypes = (
726
+ ctypes.c_uint64,
727
+ )
728
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i32.restype = None
729
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i32.argtypes = (
730
+ ctypes.c_uint64,
731
+ ctypes.POINTER(_UniffiRustCallStatus),
732
+ )
733
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i32.restype = ctypes.c_int32
734
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i32.argtypes = (
735
+ ctypes.c_uint64,
736
+ )
737
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i32.restype = None
738
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u64.argtypes = (
739
+ ctypes.c_uint64,
740
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
741
+ ctypes.c_uint64,
742
+ )
743
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_u64.restype = None
744
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u64.argtypes = (
745
+ ctypes.c_uint64,
746
+ )
747
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_u64.restype = None
748
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u64.argtypes = (
749
+ ctypes.c_uint64,
750
+ ctypes.POINTER(_UniffiRustCallStatus),
751
+ )
752
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_u64.restype = ctypes.c_uint64
753
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u64.argtypes = (
754
+ ctypes.c_uint64,
755
+ )
756
+ _UniffiLib.ffi_quantwave_python_rust_future_free_u64.restype = None
757
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i64.argtypes = (
758
+ ctypes.c_uint64,
759
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
760
+ ctypes.c_uint64,
761
+ )
762
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_i64.restype = None
763
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i64.argtypes = (
764
+ ctypes.c_uint64,
765
+ )
766
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_i64.restype = None
767
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i64.argtypes = (
768
+ ctypes.c_uint64,
769
+ ctypes.POINTER(_UniffiRustCallStatus),
770
+ )
771
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_i64.restype = ctypes.c_int64
772
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i64.argtypes = (
773
+ ctypes.c_uint64,
774
+ )
775
+ _UniffiLib.ffi_quantwave_python_rust_future_free_i64.restype = None
776
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_f32.argtypes = (
777
+ ctypes.c_uint64,
778
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
779
+ ctypes.c_uint64,
780
+ )
781
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_f32.restype = None
782
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_f32.argtypes = (
783
+ ctypes.c_uint64,
784
+ )
785
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_f32.restype = None
786
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_f32.argtypes = (
787
+ ctypes.c_uint64,
788
+ ctypes.POINTER(_UniffiRustCallStatus),
789
+ )
790
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_f32.restype = ctypes.c_float
791
+ _UniffiLib.ffi_quantwave_python_rust_future_free_f32.argtypes = (
792
+ ctypes.c_uint64,
793
+ )
794
+ _UniffiLib.ffi_quantwave_python_rust_future_free_f32.restype = None
795
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_f64.argtypes = (
796
+ ctypes.c_uint64,
797
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
798
+ ctypes.c_uint64,
799
+ )
800
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_f64.restype = None
801
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_f64.argtypes = (
802
+ ctypes.c_uint64,
803
+ )
804
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_f64.restype = None
805
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_f64.argtypes = (
806
+ ctypes.c_uint64,
807
+ ctypes.POINTER(_UniffiRustCallStatus),
808
+ )
809
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_f64.restype = ctypes.c_double
810
+ _UniffiLib.ffi_quantwave_python_rust_future_free_f64.argtypes = (
811
+ ctypes.c_uint64,
812
+ )
813
+ _UniffiLib.ffi_quantwave_python_rust_future_free_f64.restype = None
814
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_rust_buffer.argtypes = (
815
+ ctypes.c_uint64,
816
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
817
+ ctypes.c_uint64,
818
+ )
819
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_rust_buffer.restype = None
820
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_rust_buffer.argtypes = (
821
+ ctypes.c_uint64,
822
+ )
823
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_rust_buffer.restype = None
824
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_rust_buffer.argtypes = (
825
+ ctypes.c_uint64,
826
+ ctypes.POINTER(_UniffiRustCallStatus),
827
+ )
828
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer
829
+ _UniffiLib.ffi_quantwave_python_rust_future_free_rust_buffer.argtypes = (
830
+ ctypes.c_uint64,
831
+ )
832
+ _UniffiLib.ffi_quantwave_python_rust_future_free_rust_buffer.restype = None
833
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_void.argtypes = (
834
+ ctypes.c_uint64,
835
+ _UNIFFI_RUST_FUTURE_CONTINUATION_CALLBACK,
836
+ ctypes.c_uint64,
837
+ )
838
+ _UniffiLib.ffi_quantwave_python_rust_future_poll_void.restype = None
839
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_void.argtypes = (
840
+ ctypes.c_uint64,
841
+ )
842
+ _UniffiLib.ffi_quantwave_python_rust_future_cancel_void.restype = None
843
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_void.argtypes = (
844
+ ctypes.c_uint64,
845
+ ctypes.POINTER(_UniffiRustCallStatus),
846
+ )
847
+ _UniffiLib.ffi_quantwave_python_rust_future_complete_void.restype = None
848
+ _UniffiLib.ffi_quantwave_python_rust_future_free_void.argtypes = (
849
+ ctypes.c_uint64,
850
+ )
851
+ _UniffiLib.ffi_quantwave_python_rust_future_free_void.restype = None
852
+ _UniffiLib.uniffi_quantwave_python_fn_clone_adx.argtypes = (
853
+ ctypes.c_uint64,
854
+ ctypes.POINTER(_UniffiRustCallStatus),
855
+ )
856
+ _UniffiLib.uniffi_quantwave_python_fn_clone_adx.restype = ctypes.c_uint64
857
+ _UniffiLib.uniffi_quantwave_python_fn_free_adx.argtypes = (
858
+ ctypes.c_uint64,
859
+ ctypes.POINTER(_UniffiRustCallStatus),
860
+ )
861
+ _UniffiLib.uniffi_quantwave_python_fn_free_adx.restype = None
862
+ _UniffiLib.uniffi_quantwave_python_fn_clone_atr.argtypes = (
863
+ ctypes.c_uint64,
864
+ ctypes.POINTER(_UniffiRustCallStatus),
865
+ )
866
+ _UniffiLib.uniffi_quantwave_python_fn_clone_atr.restype = ctypes.c_uint64
867
+ _UniffiLib.uniffi_quantwave_python_fn_free_atr.argtypes = (
868
+ ctypes.c_uint64,
869
+ ctypes.POINTER(_UniffiRustCallStatus),
870
+ )
871
+ _UniffiLib.uniffi_quantwave_python_fn_free_atr.restype = None
872
+ _UniffiLib.uniffi_quantwave_python_fn_clone_bbands.argtypes = (
873
+ ctypes.c_uint64,
874
+ ctypes.POINTER(_UniffiRustCallStatus),
875
+ )
876
+ _UniffiLib.uniffi_quantwave_python_fn_clone_bbands.restype = ctypes.c_uint64
877
+ _UniffiLib.uniffi_quantwave_python_fn_free_bbands.argtypes = (
878
+ ctypes.c_uint64,
879
+ ctypes.POINTER(_UniffiRustCallStatus),
880
+ )
881
+ _UniffiLib.uniffi_quantwave_python_fn_free_bbands.restype = None
882
+ _UniffiLib.uniffi_quantwave_python_fn_clone_cci.argtypes = (
883
+ ctypes.c_uint64,
884
+ ctypes.POINTER(_UniffiRustCallStatus),
885
+ )
886
+ _UniffiLib.uniffi_quantwave_python_fn_clone_cci.restype = ctypes.c_uint64
887
+ _UniffiLib.uniffi_quantwave_python_fn_free_cci.argtypes = (
888
+ ctypes.c_uint64,
889
+ ctypes.POINTER(_UniffiRustCallStatus),
890
+ )
891
+ _UniffiLib.uniffi_quantwave_python_fn_free_cci.restype = None
892
+ _UniffiLib.uniffi_quantwave_python_fn_clone_ema.argtypes = (
893
+ ctypes.c_uint64,
894
+ ctypes.POINTER(_UniffiRustCallStatus),
895
+ )
896
+ _UniffiLib.uniffi_quantwave_python_fn_clone_ema.restype = ctypes.c_uint64
897
+ _UniffiLib.uniffi_quantwave_python_fn_free_ema.argtypes = (
898
+ ctypes.c_uint64,
899
+ ctypes.POINTER(_UniffiRustCallStatus),
900
+ )
901
+ _UniffiLib.uniffi_quantwave_python_fn_free_ema.restype = None
902
+ _UniffiLib.uniffi_quantwave_python_fn_clone_ichimoku.argtypes = (
903
+ ctypes.c_uint64,
904
+ ctypes.POINTER(_UniffiRustCallStatus),
905
+ )
906
+ _UniffiLib.uniffi_quantwave_python_fn_clone_ichimoku.restype = ctypes.c_uint64
907
+ _UniffiLib.uniffi_quantwave_python_fn_free_ichimoku.argtypes = (
908
+ ctypes.c_uint64,
909
+ ctypes.POINTER(_UniffiRustCallStatus),
910
+ )
911
+ _UniffiLib.uniffi_quantwave_python_fn_free_ichimoku.restype = None
912
+ _UniffiLib.uniffi_quantwave_python_fn_clone_kama.argtypes = (
913
+ ctypes.c_uint64,
914
+ ctypes.POINTER(_UniffiRustCallStatus),
915
+ )
916
+ _UniffiLib.uniffi_quantwave_python_fn_clone_kama.restype = ctypes.c_uint64
917
+ _UniffiLib.uniffi_quantwave_python_fn_free_kama.argtypes = (
918
+ ctypes.c_uint64,
919
+ ctypes.POINTER(_UniffiRustCallStatus),
920
+ )
921
+ _UniffiLib.uniffi_quantwave_python_fn_free_kama.restype = None
922
+ _UniffiLib.uniffi_quantwave_python_fn_clone_macd.argtypes = (
923
+ ctypes.c_uint64,
924
+ ctypes.POINTER(_UniffiRustCallStatus),
925
+ )
926
+ _UniffiLib.uniffi_quantwave_python_fn_clone_macd.restype = ctypes.c_uint64
927
+ _UniffiLib.uniffi_quantwave_python_fn_free_macd.argtypes = (
928
+ ctypes.c_uint64,
929
+ ctypes.POINTER(_UniffiRustCallStatus),
930
+ )
931
+ _UniffiLib.uniffi_quantwave_python_fn_free_macd.restype = None
932
+ _UniffiLib.uniffi_quantwave_python_fn_clone_mama.argtypes = (
933
+ ctypes.c_uint64,
934
+ ctypes.POINTER(_UniffiRustCallStatus),
935
+ )
936
+ _UniffiLib.uniffi_quantwave_python_fn_clone_mama.restype = ctypes.c_uint64
937
+ _UniffiLib.uniffi_quantwave_python_fn_free_mama.argtypes = (
938
+ ctypes.c_uint64,
939
+ ctypes.POINTER(_UniffiRustCallStatus),
940
+ )
941
+ _UniffiLib.uniffi_quantwave_python_fn_free_mama.restype = None
942
+ _UniffiLib.uniffi_quantwave_python_fn_clone_rsi.argtypes = (
943
+ ctypes.c_uint64,
944
+ ctypes.POINTER(_UniffiRustCallStatus),
945
+ )
946
+ _UniffiLib.uniffi_quantwave_python_fn_clone_rsi.restype = ctypes.c_uint64
947
+ _UniffiLib.uniffi_quantwave_python_fn_free_rsi.argtypes = (
948
+ ctypes.c_uint64,
949
+ ctypes.POINTER(_UniffiRustCallStatus),
950
+ )
951
+ _UniffiLib.uniffi_quantwave_python_fn_free_rsi.restype = None
952
+ _UniffiLib.uniffi_quantwave_python_fn_clone_sar.argtypes = (
953
+ ctypes.c_uint64,
954
+ ctypes.POINTER(_UniffiRustCallStatus),
955
+ )
956
+ _UniffiLib.uniffi_quantwave_python_fn_clone_sar.restype = ctypes.c_uint64
957
+ _UniffiLib.uniffi_quantwave_python_fn_free_sar.argtypes = (
958
+ ctypes.c_uint64,
959
+ ctypes.POINTER(_UniffiRustCallStatus),
960
+ )
961
+ _UniffiLib.uniffi_quantwave_python_fn_free_sar.restype = None
962
+ _UniffiLib.uniffi_quantwave_python_fn_clone_sma.argtypes = (
963
+ ctypes.c_uint64,
964
+ ctypes.POINTER(_UniffiRustCallStatus),
965
+ )
966
+ _UniffiLib.uniffi_quantwave_python_fn_clone_sma.restype = ctypes.c_uint64
967
+ _UniffiLib.uniffi_quantwave_python_fn_free_sma.argtypes = (
968
+ ctypes.c_uint64,
969
+ ctypes.POINTER(_UniffiRustCallStatus),
970
+ )
971
+ _UniffiLib.uniffi_quantwave_python_fn_free_sma.restype = None
972
+ _UniffiLib.uniffi_quantwave_python_fn_clone_stoch.argtypes = (
973
+ ctypes.c_uint64,
974
+ ctypes.POINTER(_UniffiRustCallStatus),
975
+ )
976
+ _UniffiLib.uniffi_quantwave_python_fn_clone_stoch.restype = ctypes.c_uint64
977
+ _UniffiLib.uniffi_quantwave_python_fn_free_stoch.argtypes = (
978
+ ctypes.c_uint64,
979
+ ctypes.POINTER(_UniffiRustCallStatus),
980
+ )
981
+ _UniffiLib.uniffi_quantwave_python_fn_free_stoch.restype = None
982
+ _UniffiLib.uniffi_quantwave_python_fn_clone_supertrend.argtypes = (
983
+ ctypes.c_uint64,
984
+ ctypes.POINTER(_UniffiRustCallStatus),
985
+ )
986
+ _UniffiLib.uniffi_quantwave_python_fn_clone_supertrend.restype = ctypes.c_uint64
987
+ _UniffiLib.uniffi_quantwave_python_fn_free_supertrend.argtypes = (
988
+ ctypes.c_uint64,
989
+ ctypes.POINTER(_UniffiRustCallStatus),
990
+ )
991
+ _UniffiLib.uniffi_quantwave_python_fn_free_supertrend.restype = None
992
+ _UniffiLib.uniffi_quantwave_python_fn_clone_t3.argtypes = (
993
+ ctypes.c_uint64,
994
+ ctypes.POINTER(_UniffiRustCallStatus),
995
+ )
996
+ _UniffiLib.uniffi_quantwave_python_fn_clone_t3.restype = ctypes.c_uint64
997
+ _UniffiLib.uniffi_quantwave_python_fn_free_t3.argtypes = (
998
+ ctypes.c_uint64,
999
+ ctypes.POINTER(_UniffiRustCallStatus),
1000
+ )
1001
+ _UniffiLib.uniffi_quantwave_python_fn_free_t3.restype = None
1002
+ _UniffiLib.uniffi_quantwave_python_fn_clone_wma.argtypes = (
1003
+ ctypes.c_uint64,
1004
+ ctypes.POINTER(_UniffiRustCallStatus),
1005
+ )
1006
+ _UniffiLib.uniffi_quantwave_python_fn_clone_wma.restype = ctypes.c_uint64
1007
+ _UniffiLib.uniffi_quantwave_python_fn_free_wma.argtypes = (
1008
+ ctypes.c_uint64,
1009
+ ctypes.POINTER(_UniffiRustCallStatus),
1010
+ )
1011
+ _UniffiLib.uniffi_quantwave_python_fn_free_wma.restype = None
1012
+ _UniffiLib.uniffi_quantwave_python_fn_func_adx.argtypes = (
1013
+ _UniffiRustBuffer,
1014
+ _UniffiRustBuffer,
1015
+ _UniffiRustBuffer,
1016
+ ctypes.c_uint64,
1017
+ ctypes.POINTER(_UniffiRustCallStatus),
1018
+ )
1019
+ _UniffiLib.uniffi_quantwave_python_fn_func_adx.restype = _UniffiRustBuffer
1020
+ _UniffiLib.uniffi_quantwave_python_fn_func_aroon.argtypes = (
1021
+ _UniffiRustBuffer,
1022
+ _UniffiRustBuffer,
1023
+ ctypes.c_uint64,
1024
+ ctypes.POINTER(_UniffiRustCallStatus),
1025
+ )
1026
+ _UniffiLib.uniffi_quantwave_python_fn_func_aroon.restype = _UniffiRustBuffer
1027
+ _UniffiLib.uniffi_quantwave_python_fn_func_atr.argtypes = (
1028
+ _UniffiRustBuffer,
1029
+ _UniffiRustBuffer,
1030
+ _UniffiRustBuffer,
1031
+ ctypes.c_uint64,
1032
+ ctypes.POINTER(_UniffiRustCallStatus),
1033
+ )
1034
+ _UniffiLib.uniffi_quantwave_python_fn_func_atr.restype = _UniffiRustBuffer
1035
+ _UniffiLib.uniffi_quantwave_python_fn_func_bbands.argtypes = (
1036
+ _UniffiRustBuffer,
1037
+ ctypes.c_uint64,
1038
+ ctypes.c_double,
1039
+ ctypes.c_double,
1040
+ ctypes.POINTER(_UniffiRustCallStatus),
1041
+ )
1042
+ _UniffiLib.uniffi_quantwave_python_fn_func_bbands.restype = _UniffiRustBuffer
1043
+ _UniffiLib.uniffi_quantwave_python_fn_func_cci.argtypes = (
1044
+ _UniffiRustBuffer,
1045
+ _UniffiRustBuffer,
1046
+ _UniffiRustBuffer,
1047
+ ctypes.c_uint64,
1048
+ ctypes.POINTER(_UniffiRustCallStatus),
1049
+ )
1050
+ _UniffiLib.uniffi_quantwave_python_fn_func_cci.restype = _UniffiRustBuffer
1051
+ _UniffiLib.uniffi_quantwave_python_fn_func_dema.argtypes = (
1052
+ _UniffiRustBuffer,
1053
+ ctypes.c_uint64,
1054
+ ctypes.POINTER(_UniffiRustCallStatus),
1055
+ )
1056
+ _UniffiLib.uniffi_quantwave_python_fn_func_dema.restype = _UniffiRustBuffer
1057
+ _UniffiLib.uniffi_quantwave_python_fn_func_ema.argtypes = (
1058
+ _UniffiRustBuffer,
1059
+ ctypes.c_uint64,
1060
+ ctypes.POINTER(_UniffiRustCallStatus),
1061
+ )
1062
+ _UniffiLib.uniffi_quantwave_python_fn_func_ema.restype = _UniffiRustBuffer
1063
+ _UniffiLib.uniffi_quantwave_python_fn_func_ichimoku_batch.argtypes = (
1064
+ _UniffiRustBuffer,
1065
+ _UniffiRustBuffer,
1066
+ ctypes.c_uint64,
1067
+ ctypes.c_uint64,
1068
+ ctypes.c_uint64,
1069
+ ctypes.POINTER(_UniffiRustCallStatus),
1070
+ )
1071
+ _UniffiLib.uniffi_quantwave_python_fn_func_ichimoku_batch.restype = _UniffiRustBuffer
1072
+ _UniffiLib.uniffi_quantwave_python_fn_func_kama.argtypes = (
1073
+ _UniffiRustBuffer,
1074
+ ctypes.c_uint64,
1075
+ ctypes.POINTER(_UniffiRustCallStatus),
1076
+ )
1077
+ _UniffiLib.uniffi_quantwave_python_fn_func_kama.restype = _UniffiRustBuffer
1078
+ _UniffiLib.uniffi_quantwave_python_fn_func_macd.argtypes = (
1079
+ _UniffiRustBuffer,
1080
+ ctypes.c_uint64,
1081
+ ctypes.c_uint64,
1082
+ ctypes.c_uint64,
1083
+ ctypes.POINTER(_UniffiRustCallStatus),
1084
+ )
1085
+ _UniffiLib.uniffi_quantwave_python_fn_func_macd.restype = _UniffiRustBuffer
1086
+ _UniffiLib.uniffi_quantwave_python_fn_func_mama.argtypes = (
1087
+ _UniffiRustBuffer,
1088
+ ctypes.c_double,
1089
+ ctypes.c_double,
1090
+ ctypes.POINTER(_UniffiRustCallStatus),
1091
+ )
1092
+ _UniffiLib.uniffi_quantwave_python_fn_func_mama.restype = _UniffiRustBuffer
1093
+ _UniffiLib.uniffi_quantwave_python_fn_func_mom.argtypes = (
1094
+ _UniffiRustBuffer,
1095
+ ctypes.c_uint64,
1096
+ ctypes.POINTER(_UniffiRustCallStatus),
1097
+ )
1098
+ _UniffiLib.uniffi_quantwave_python_fn_func_mom.restype = _UniffiRustBuffer
1099
+ _UniffiLib.uniffi_quantwave_python_fn_func_roc.argtypes = (
1100
+ _UniffiRustBuffer,
1101
+ ctypes.c_uint64,
1102
+ ctypes.POINTER(_UniffiRustCallStatus),
1103
+ )
1104
+ _UniffiLib.uniffi_quantwave_python_fn_func_roc.restype = _UniffiRustBuffer
1105
+ _UniffiLib.uniffi_quantwave_python_fn_func_rsi.argtypes = (
1106
+ _UniffiRustBuffer,
1107
+ ctypes.c_uint64,
1108
+ ctypes.POINTER(_UniffiRustCallStatus),
1109
+ )
1110
+ _UniffiLib.uniffi_quantwave_python_fn_func_rsi.restype = _UniffiRustBuffer
1111
+ _UniffiLib.uniffi_quantwave_python_fn_func_sar.argtypes = (
1112
+ _UniffiRustBuffer,
1113
+ _UniffiRustBuffer,
1114
+ ctypes.c_double,
1115
+ ctypes.c_double,
1116
+ ctypes.POINTER(_UniffiRustCallStatus),
1117
+ )
1118
+ _UniffiLib.uniffi_quantwave_python_fn_func_sar.restype = _UniffiRustBuffer
1119
+ _UniffiLib.uniffi_quantwave_python_fn_func_sma.argtypes = (
1120
+ _UniffiRustBuffer,
1121
+ ctypes.c_uint64,
1122
+ ctypes.POINTER(_UniffiRustCallStatus),
1123
+ )
1124
+ _UniffiLib.uniffi_quantwave_python_fn_func_sma.restype = _UniffiRustBuffer
1125
+ _UniffiLib.uniffi_quantwave_python_fn_func_stoch.argtypes = (
1126
+ _UniffiRustBuffer,
1127
+ _UniffiRustBuffer,
1128
+ _UniffiRustBuffer,
1129
+ ctypes.c_uint64,
1130
+ ctypes.c_uint64,
1131
+ ctypes.c_uint64,
1132
+ ctypes.POINTER(_UniffiRustCallStatus),
1133
+ )
1134
+ _UniffiLib.uniffi_quantwave_python_fn_func_stoch.restype = _UniffiRustBuffer
1135
+ _UniffiLib.uniffi_quantwave_python_fn_func_supertrend_batch.argtypes = (
1136
+ _UniffiRustBuffer,
1137
+ _UniffiRustBuffer,
1138
+ _UniffiRustBuffer,
1139
+ ctypes.c_uint64,
1140
+ ctypes.c_double,
1141
+ ctypes.POINTER(_UniffiRustCallStatus),
1142
+ )
1143
+ _UniffiLib.uniffi_quantwave_python_fn_func_supertrend_batch.restype = _UniffiRustBuffer
1144
+ _UniffiLib.uniffi_quantwave_python_fn_func_t3.argtypes = (
1145
+ _UniffiRustBuffer,
1146
+ ctypes.c_uint64,
1147
+ ctypes.c_double,
1148
+ ctypes.POINTER(_UniffiRustCallStatus),
1149
+ )
1150
+ _UniffiLib.uniffi_quantwave_python_fn_func_t3.restype = _UniffiRustBuffer
1151
+ _UniffiLib.uniffi_quantwave_python_fn_func_tema.argtypes = (
1152
+ _UniffiRustBuffer,
1153
+ ctypes.c_uint64,
1154
+ ctypes.POINTER(_UniffiRustCallStatus),
1155
+ )
1156
+ _UniffiLib.uniffi_quantwave_python_fn_func_tema.restype = _UniffiRustBuffer
1157
+ _UniffiLib.uniffi_quantwave_python_fn_func_willr.argtypes = (
1158
+ _UniffiRustBuffer,
1159
+ _UniffiRustBuffer,
1160
+ _UniffiRustBuffer,
1161
+ ctypes.c_uint64,
1162
+ ctypes.POINTER(_UniffiRustCallStatus),
1163
+ )
1164
+ _UniffiLib.uniffi_quantwave_python_fn_func_willr.restype = _UniffiRustBuffer
1165
+ _UniffiLib.uniffi_quantwave_python_fn_func_wma.argtypes = (
1166
+ _UniffiRustBuffer,
1167
+ ctypes.c_uint64,
1168
+ ctypes.POINTER(_UniffiRustCallStatus),
1169
+ )
1170
+ _UniffiLib.uniffi_quantwave_python_fn_func_wma.restype = _UniffiRustBuffer
1171
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_adx_new.argtypes = (
1172
+ ctypes.c_uint64,
1173
+ ctypes.POINTER(_UniffiRustCallStatus),
1174
+ )
1175
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_adx_new.restype = ctypes.c_uint64
1176
+ _UniffiLib.uniffi_quantwave_python_fn_method_adx_next.argtypes = (
1177
+ ctypes.c_uint64,
1178
+ ctypes.c_double,
1179
+ ctypes.c_double,
1180
+ ctypes.c_double,
1181
+ ctypes.POINTER(_UniffiRustCallStatus),
1182
+ )
1183
+ _UniffiLib.uniffi_quantwave_python_fn_method_adx_next.restype = ctypes.c_double
1184
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_atr_new.argtypes = (
1185
+ ctypes.c_uint64,
1186
+ ctypes.POINTER(_UniffiRustCallStatus),
1187
+ )
1188
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_atr_new.restype = ctypes.c_uint64
1189
+ _UniffiLib.uniffi_quantwave_python_fn_method_atr_next.argtypes = (
1190
+ ctypes.c_uint64,
1191
+ ctypes.c_double,
1192
+ ctypes.c_double,
1193
+ ctypes.c_double,
1194
+ ctypes.POINTER(_UniffiRustCallStatus),
1195
+ )
1196
+ _UniffiLib.uniffi_quantwave_python_fn_method_atr_next.restype = ctypes.c_double
1197
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_bbands_new.argtypes = (
1198
+ ctypes.c_uint64,
1199
+ ctypes.c_double,
1200
+ ctypes.c_double,
1201
+ ctypes.POINTER(_UniffiRustCallStatus),
1202
+ )
1203
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_bbands_new.restype = ctypes.c_uint64
1204
+ _UniffiLib.uniffi_quantwave_python_fn_method_bbands_next.argtypes = (
1205
+ ctypes.c_uint64,
1206
+ ctypes.c_double,
1207
+ ctypes.POINTER(_UniffiRustCallStatus),
1208
+ )
1209
+ _UniffiLib.uniffi_quantwave_python_fn_method_bbands_next.restype = _UniffiRustBuffer
1210
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_cci_new.argtypes = (
1211
+ ctypes.c_uint64,
1212
+ ctypes.POINTER(_UniffiRustCallStatus),
1213
+ )
1214
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_cci_new.restype = ctypes.c_uint64
1215
+ _UniffiLib.uniffi_quantwave_python_fn_method_cci_next.argtypes = (
1216
+ ctypes.c_uint64,
1217
+ ctypes.c_double,
1218
+ ctypes.c_double,
1219
+ ctypes.c_double,
1220
+ ctypes.POINTER(_UniffiRustCallStatus),
1221
+ )
1222
+ _UniffiLib.uniffi_quantwave_python_fn_method_cci_next.restype = ctypes.c_double
1223
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ema_new.argtypes = (
1224
+ ctypes.c_uint64,
1225
+ ctypes.POINTER(_UniffiRustCallStatus),
1226
+ )
1227
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ema_new.restype = ctypes.c_uint64
1228
+ _UniffiLib.uniffi_quantwave_python_fn_method_ema_next.argtypes = (
1229
+ ctypes.c_uint64,
1230
+ ctypes.c_double,
1231
+ ctypes.POINTER(_UniffiRustCallStatus),
1232
+ )
1233
+ _UniffiLib.uniffi_quantwave_python_fn_method_ema_next.restype = ctypes.c_double
1234
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ichimoku_new.argtypes = (
1235
+ ctypes.c_uint64,
1236
+ ctypes.c_uint64,
1237
+ ctypes.c_uint64,
1238
+ ctypes.POINTER(_UniffiRustCallStatus),
1239
+ )
1240
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ichimoku_new.restype = ctypes.c_uint64
1241
+ _UniffiLib.uniffi_quantwave_python_fn_method_ichimoku_next.argtypes = (
1242
+ ctypes.c_uint64,
1243
+ ctypes.c_double,
1244
+ ctypes.c_double,
1245
+ ctypes.POINTER(_UniffiRustCallStatus),
1246
+ )
1247
+ _UniffiLib.uniffi_quantwave_python_fn_method_ichimoku_next.restype = _UniffiRustBuffer
1248
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_kama_new.argtypes = (
1249
+ ctypes.c_uint64,
1250
+ ctypes.POINTER(_UniffiRustCallStatus),
1251
+ )
1252
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_kama_new.restype = ctypes.c_uint64
1253
+ _UniffiLib.uniffi_quantwave_python_fn_method_kama_next.argtypes = (
1254
+ ctypes.c_uint64,
1255
+ ctypes.c_double,
1256
+ ctypes.POINTER(_UniffiRustCallStatus),
1257
+ )
1258
+ _UniffiLib.uniffi_quantwave_python_fn_method_kama_next.restype = ctypes.c_double
1259
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_macd_new.argtypes = (
1260
+ ctypes.c_uint64,
1261
+ ctypes.c_uint64,
1262
+ ctypes.c_uint64,
1263
+ ctypes.POINTER(_UniffiRustCallStatus),
1264
+ )
1265
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_macd_new.restype = ctypes.c_uint64
1266
+ _UniffiLib.uniffi_quantwave_python_fn_method_macd_next.argtypes = (
1267
+ ctypes.c_uint64,
1268
+ ctypes.c_double,
1269
+ ctypes.POINTER(_UniffiRustCallStatus),
1270
+ )
1271
+ _UniffiLib.uniffi_quantwave_python_fn_method_macd_next.restype = _UniffiRustBuffer
1272
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_mama_new.argtypes = (
1273
+ ctypes.c_double,
1274
+ ctypes.c_double,
1275
+ ctypes.POINTER(_UniffiRustCallStatus),
1276
+ )
1277
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_mama_new.restype = ctypes.c_uint64
1278
+ _UniffiLib.uniffi_quantwave_python_fn_method_mama_next.argtypes = (
1279
+ ctypes.c_uint64,
1280
+ ctypes.c_double,
1281
+ ctypes.POINTER(_UniffiRustCallStatus),
1282
+ )
1283
+ _UniffiLib.uniffi_quantwave_python_fn_method_mama_next.restype = _UniffiRustBuffer
1284
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_rsi_new.argtypes = (
1285
+ ctypes.c_uint64,
1286
+ ctypes.POINTER(_UniffiRustCallStatus),
1287
+ )
1288
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_rsi_new.restype = ctypes.c_uint64
1289
+ _UniffiLib.uniffi_quantwave_python_fn_method_rsi_next.argtypes = (
1290
+ ctypes.c_uint64,
1291
+ ctypes.c_double,
1292
+ ctypes.POINTER(_UniffiRustCallStatus),
1293
+ )
1294
+ _UniffiLib.uniffi_quantwave_python_fn_method_rsi_next.restype = ctypes.c_double
1295
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sar_new.argtypes = (
1296
+ ctypes.c_double,
1297
+ ctypes.c_double,
1298
+ ctypes.POINTER(_UniffiRustCallStatus),
1299
+ )
1300
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sar_new.restype = ctypes.c_uint64
1301
+ _UniffiLib.uniffi_quantwave_python_fn_method_sar_next.argtypes = (
1302
+ ctypes.c_uint64,
1303
+ ctypes.c_double,
1304
+ ctypes.c_double,
1305
+ ctypes.POINTER(_UniffiRustCallStatus),
1306
+ )
1307
+ _UniffiLib.uniffi_quantwave_python_fn_method_sar_next.restype = ctypes.c_double
1308
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sma_new.argtypes = (
1309
+ ctypes.c_uint64,
1310
+ ctypes.POINTER(_UniffiRustCallStatus),
1311
+ )
1312
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sma_new.restype = ctypes.c_uint64
1313
+ _UniffiLib.uniffi_quantwave_python_fn_method_sma_next.argtypes = (
1314
+ ctypes.c_uint64,
1315
+ ctypes.c_double,
1316
+ ctypes.POINTER(_UniffiRustCallStatus),
1317
+ )
1318
+ _UniffiLib.uniffi_quantwave_python_fn_method_sma_next.restype = ctypes.c_double
1319
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_stoch_new.argtypes = (
1320
+ ctypes.c_uint64,
1321
+ ctypes.c_uint64,
1322
+ ctypes.c_uint64,
1323
+ ctypes.POINTER(_UniffiRustCallStatus),
1324
+ )
1325
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_stoch_new.restype = ctypes.c_uint64
1326
+ _UniffiLib.uniffi_quantwave_python_fn_method_stoch_next.argtypes = (
1327
+ ctypes.c_uint64,
1328
+ ctypes.c_double,
1329
+ ctypes.c_double,
1330
+ ctypes.c_double,
1331
+ ctypes.POINTER(_UniffiRustCallStatus),
1332
+ )
1333
+ _UniffiLib.uniffi_quantwave_python_fn_method_stoch_next.restype = _UniffiRustBuffer
1334
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_supertrend_new.argtypes = (
1335
+ ctypes.c_uint64,
1336
+ ctypes.c_double,
1337
+ ctypes.POINTER(_UniffiRustCallStatus),
1338
+ )
1339
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_supertrend_new.restype = ctypes.c_uint64
1340
+ _UniffiLib.uniffi_quantwave_python_fn_method_supertrend_next.argtypes = (
1341
+ ctypes.c_uint64,
1342
+ ctypes.c_double,
1343
+ ctypes.c_double,
1344
+ ctypes.c_double,
1345
+ ctypes.POINTER(_UniffiRustCallStatus),
1346
+ )
1347
+ _UniffiLib.uniffi_quantwave_python_fn_method_supertrend_next.restype = _UniffiRustBuffer
1348
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_t3_new.argtypes = (
1349
+ ctypes.c_uint64,
1350
+ ctypes.c_double,
1351
+ ctypes.POINTER(_UniffiRustCallStatus),
1352
+ )
1353
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_t3_new.restype = ctypes.c_uint64
1354
+ _UniffiLib.uniffi_quantwave_python_fn_method_t3_next.argtypes = (
1355
+ ctypes.c_uint64,
1356
+ ctypes.c_double,
1357
+ ctypes.POINTER(_UniffiRustCallStatus),
1358
+ )
1359
+ _UniffiLib.uniffi_quantwave_python_fn_method_t3_next.restype = ctypes.c_double
1360
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_wma_new.argtypes = (
1361
+ ctypes.c_uint64,
1362
+ ctypes.POINTER(_UniffiRustCallStatus),
1363
+ )
1364
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_wma_new.restype = ctypes.c_uint64
1365
+ _UniffiLib.uniffi_quantwave_python_fn_method_wma_next.argtypes = (
1366
+ ctypes.c_uint64,
1367
+ ctypes.c_double,
1368
+ ctypes.POINTER(_UniffiRustCallStatus),
1369
+ )
1370
+ _UniffiLib.uniffi_quantwave_python_fn_method_wma_next.restype = ctypes.c_double
1371
+ _UniffiLib.ffi_quantwave_python_uniffi_contract_version.argtypes = (
1372
+ )
1373
+ _UniffiLib.ffi_quantwave_python_uniffi_contract_version.restype = ctypes.c_uint32
1374
+ _UniffiLib.uniffi_quantwave_python_checksum_func_adx.argtypes = (
1375
+ )
1376
+ _UniffiLib.uniffi_quantwave_python_checksum_func_adx.restype = ctypes.c_uint16
1377
+ _UniffiLib.uniffi_quantwave_python_checksum_func_aroon.argtypes = (
1378
+ )
1379
+ _UniffiLib.uniffi_quantwave_python_checksum_func_aroon.restype = ctypes.c_uint16
1380
+ _UniffiLib.uniffi_quantwave_python_checksum_func_atr.argtypes = (
1381
+ )
1382
+ _UniffiLib.uniffi_quantwave_python_checksum_func_atr.restype = ctypes.c_uint16
1383
+ _UniffiLib.uniffi_quantwave_python_checksum_func_bbands.argtypes = (
1384
+ )
1385
+ _UniffiLib.uniffi_quantwave_python_checksum_func_bbands.restype = ctypes.c_uint16
1386
+ _UniffiLib.uniffi_quantwave_python_checksum_func_cci.argtypes = (
1387
+ )
1388
+ _UniffiLib.uniffi_quantwave_python_checksum_func_cci.restype = ctypes.c_uint16
1389
+ _UniffiLib.uniffi_quantwave_python_checksum_func_dema.argtypes = (
1390
+ )
1391
+ _UniffiLib.uniffi_quantwave_python_checksum_func_dema.restype = ctypes.c_uint16
1392
+ _UniffiLib.uniffi_quantwave_python_checksum_func_ema.argtypes = (
1393
+ )
1394
+ _UniffiLib.uniffi_quantwave_python_checksum_func_ema.restype = ctypes.c_uint16
1395
+ _UniffiLib.uniffi_quantwave_python_checksum_func_ichimoku_batch.argtypes = (
1396
+ )
1397
+ _UniffiLib.uniffi_quantwave_python_checksum_func_ichimoku_batch.restype = ctypes.c_uint16
1398
+ _UniffiLib.uniffi_quantwave_python_checksum_func_kama.argtypes = (
1399
+ )
1400
+ _UniffiLib.uniffi_quantwave_python_checksum_func_kama.restype = ctypes.c_uint16
1401
+ _UniffiLib.uniffi_quantwave_python_checksum_func_macd.argtypes = (
1402
+ )
1403
+ _UniffiLib.uniffi_quantwave_python_checksum_func_macd.restype = ctypes.c_uint16
1404
+ _UniffiLib.uniffi_quantwave_python_checksum_func_mama.argtypes = (
1405
+ )
1406
+ _UniffiLib.uniffi_quantwave_python_checksum_func_mama.restype = ctypes.c_uint16
1407
+ _UniffiLib.uniffi_quantwave_python_checksum_func_mom.argtypes = (
1408
+ )
1409
+ _UniffiLib.uniffi_quantwave_python_checksum_func_mom.restype = ctypes.c_uint16
1410
+ _UniffiLib.uniffi_quantwave_python_checksum_func_roc.argtypes = (
1411
+ )
1412
+ _UniffiLib.uniffi_quantwave_python_checksum_func_roc.restype = ctypes.c_uint16
1413
+ _UniffiLib.uniffi_quantwave_python_checksum_func_rsi.argtypes = (
1414
+ )
1415
+ _UniffiLib.uniffi_quantwave_python_checksum_func_rsi.restype = ctypes.c_uint16
1416
+ _UniffiLib.uniffi_quantwave_python_checksum_func_sar.argtypes = (
1417
+ )
1418
+ _UniffiLib.uniffi_quantwave_python_checksum_func_sar.restype = ctypes.c_uint16
1419
+ _UniffiLib.uniffi_quantwave_python_checksum_func_sma.argtypes = (
1420
+ )
1421
+ _UniffiLib.uniffi_quantwave_python_checksum_func_sma.restype = ctypes.c_uint16
1422
+ _UniffiLib.uniffi_quantwave_python_checksum_func_stoch.argtypes = (
1423
+ )
1424
+ _UniffiLib.uniffi_quantwave_python_checksum_func_stoch.restype = ctypes.c_uint16
1425
+ _UniffiLib.uniffi_quantwave_python_checksum_func_supertrend_batch.argtypes = (
1426
+ )
1427
+ _UniffiLib.uniffi_quantwave_python_checksum_func_supertrend_batch.restype = ctypes.c_uint16
1428
+ _UniffiLib.uniffi_quantwave_python_checksum_func_t3.argtypes = (
1429
+ )
1430
+ _UniffiLib.uniffi_quantwave_python_checksum_func_t3.restype = ctypes.c_uint16
1431
+ _UniffiLib.uniffi_quantwave_python_checksum_func_tema.argtypes = (
1432
+ )
1433
+ _UniffiLib.uniffi_quantwave_python_checksum_func_tema.restype = ctypes.c_uint16
1434
+ _UniffiLib.uniffi_quantwave_python_checksum_func_willr.argtypes = (
1435
+ )
1436
+ _UniffiLib.uniffi_quantwave_python_checksum_func_willr.restype = ctypes.c_uint16
1437
+ _UniffiLib.uniffi_quantwave_python_checksum_func_wma.argtypes = (
1438
+ )
1439
+ _UniffiLib.uniffi_quantwave_python_checksum_func_wma.restype = ctypes.c_uint16
1440
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_adx_new.argtypes = (
1441
+ )
1442
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_adx_new.restype = ctypes.c_uint16
1443
+ _UniffiLib.uniffi_quantwave_python_checksum_method_adx_next.argtypes = (
1444
+ )
1445
+ _UniffiLib.uniffi_quantwave_python_checksum_method_adx_next.restype = ctypes.c_uint16
1446
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_atr_new.argtypes = (
1447
+ )
1448
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_atr_new.restype = ctypes.c_uint16
1449
+ _UniffiLib.uniffi_quantwave_python_checksum_method_atr_next.argtypes = (
1450
+ )
1451
+ _UniffiLib.uniffi_quantwave_python_checksum_method_atr_next.restype = ctypes.c_uint16
1452
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_bbands_new.argtypes = (
1453
+ )
1454
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_bbands_new.restype = ctypes.c_uint16
1455
+ _UniffiLib.uniffi_quantwave_python_checksum_method_bbands_next.argtypes = (
1456
+ )
1457
+ _UniffiLib.uniffi_quantwave_python_checksum_method_bbands_next.restype = ctypes.c_uint16
1458
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_cci_new.argtypes = (
1459
+ )
1460
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_cci_new.restype = ctypes.c_uint16
1461
+ _UniffiLib.uniffi_quantwave_python_checksum_method_cci_next.argtypes = (
1462
+ )
1463
+ _UniffiLib.uniffi_quantwave_python_checksum_method_cci_next.restype = ctypes.c_uint16
1464
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_ema_new.argtypes = (
1465
+ )
1466
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_ema_new.restype = ctypes.c_uint16
1467
+ _UniffiLib.uniffi_quantwave_python_checksum_method_ema_next.argtypes = (
1468
+ )
1469
+ _UniffiLib.uniffi_quantwave_python_checksum_method_ema_next.restype = ctypes.c_uint16
1470
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_ichimoku_new.argtypes = (
1471
+ )
1472
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_ichimoku_new.restype = ctypes.c_uint16
1473
+ _UniffiLib.uniffi_quantwave_python_checksum_method_ichimoku_next.argtypes = (
1474
+ )
1475
+ _UniffiLib.uniffi_quantwave_python_checksum_method_ichimoku_next.restype = ctypes.c_uint16
1476
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_kama_new.argtypes = (
1477
+ )
1478
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_kama_new.restype = ctypes.c_uint16
1479
+ _UniffiLib.uniffi_quantwave_python_checksum_method_kama_next.argtypes = (
1480
+ )
1481
+ _UniffiLib.uniffi_quantwave_python_checksum_method_kama_next.restype = ctypes.c_uint16
1482
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_macd_new.argtypes = (
1483
+ )
1484
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_macd_new.restype = ctypes.c_uint16
1485
+ _UniffiLib.uniffi_quantwave_python_checksum_method_macd_next.argtypes = (
1486
+ )
1487
+ _UniffiLib.uniffi_quantwave_python_checksum_method_macd_next.restype = ctypes.c_uint16
1488
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_mama_new.argtypes = (
1489
+ )
1490
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_mama_new.restype = ctypes.c_uint16
1491
+ _UniffiLib.uniffi_quantwave_python_checksum_method_mama_next.argtypes = (
1492
+ )
1493
+ _UniffiLib.uniffi_quantwave_python_checksum_method_mama_next.restype = ctypes.c_uint16
1494
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_rsi_new.argtypes = (
1495
+ )
1496
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_rsi_new.restype = ctypes.c_uint16
1497
+ _UniffiLib.uniffi_quantwave_python_checksum_method_rsi_next.argtypes = (
1498
+ )
1499
+ _UniffiLib.uniffi_quantwave_python_checksum_method_rsi_next.restype = ctypes.c_uint16
1500
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_sar_new.argtypes = (
1501
+ )
1502
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_sar_new.restype = ctypes.c_uint16
1503
+ _UniffiLib.uniffi_quantwave_python_checksum_method_sar_next.argtypes = (
1504
+ )
1505
+ _UniffiLib.uniffi_quantwave_python_checksum_method_sar_next.restype = ctypes.c_uint16
1506
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_sma_new.argtypes = (
1507
+ )
1508
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_sma_new.restype = ctypes.c_uint16
1509
+ _UniffiLib.uniffi_quantwave_python_checksum_method_sma_next.argtypes = (
1510
+ )
1511
+ _UniffiLib.uniffi_quantwave_python_checksum_method_sma_next.restype = ctypes.c_uint16
1512
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_stoch_new.argtypes = (
1513
+ )
1514
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_stoch_new.restype = ctypes.c_uint16
1515
+ _UniffiLib.uniffi_quantwave_python_checksum_method_stoch_next.argtypes = (
1516
+ )
1517
+ _UniffiLib.uniffi_quantwave_python_checksum_method_stoch_next.restype = ctypes.c_uint16
1518
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_supertrend_new.argtypes = (
1519
+ )
1520
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_supertrend_new.restype = ctypes.c_uint16
1521
+ _UniffiLib.uniffi_quantwave_python_checksum_method_supertrend_next.argtypes = (
1522
+ )
1523
+ _UniffiLib.uniffi_quantwave_python_checksum_method_supertrend_next.restype = ctypes.c_uint16
1524
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_t3_new.argtypes = (
1525
+ )
1526
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_t3_new.restype = ctypes.c_uint16
1527
+ _UniffiLib.uniffi_quantwave_python_checksum_method_t3_next.argtypes = (
1528
+ )
1529
+ _UniffiLib.uniffi_quantwave_python_checksum_method_t3_next.restype = ctypes.c_uint16
1530
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_wma_new.argtypes = (
1531
+ )
1532
+ _UniffiLib.uniffi_quantwave_python_checksum_constructor_wma_new.restype = ctypes.c_uint16
1533
+ _UniffiLib.uniffi_quantwave_python_checksum_method_wma_next.argtypes = (
1534
+ )
1535
+ _UniffiLib.uniffi_quantwave_python_checksum_method_wma_next.restype = ctypes.c_uint16
1536
+
1537
+ _uniffi_check_contract_api_version(_UniffiLib)
1538
+ # _uniffi_check_api_checksums(_UniffiLib)
1539
+
1540
+
1541
+
1542
+ # Public interface members begin here.
1543
+
1544
+
1545
+ class _UniffiFfiConverterFloat64(_UniffiConverterPrimitiveFloat):
1546
+ @staticmethod
1547
+ def read(buf):
1548
+ return buf.read_double()
1549
+
1550
+ @staticmethod
1551
+ def write(value, buf):
1552
+ buf.write_double(value)
1553
+
1554
+ @dataclass
1555
+ class AroonResult:
1556
+ def __init__(self, *, up:float, down:float):
1557
+ self.up = up
1558
+ self.down = down
1559
+
1560
+
1561
+
1562
+
1563
+ def __str__(self):
1564
+ return "AroonResult(up={}, down={})".format(self.up, self.down)
1565
+ def __eq__(self, other):
1566
+ if self.up != other.up:
1567
+ return False
1568
+ if self.down != other.down:
1569
+ return False
1570
+ return True
1571
+
1572
+ class _UniffiFfiConverterTypeAroonResult(_UniffiConverterRustBuffer):
1573
+ @staticmethod
1574
+ def read(buf):
1575
+ return AroonResult(
1576
+ up=_UniffiFfiConverterFloat64.read(buf),
1577
+ down=_UniffiFfiConverterFloat64.read(buf),
1578
+ )
1579
+
1580
+ @staticmethod
1581
+ def check_lower(value):
1582
+ _UniffiFfiConverterFloat64.check_lower(value.up)
1583
+ _UniffiFfiConverterFloat64.check_lower(value.down)
1584
+
1585
+ @staticmethod
1586
+ def write(value, buf):
1587
+ _UniffiFfiConverterFloat64.write(value.up, buf)
1588
+ _UniffiFfiConverterFloat64.write(value.down, buf)
1589
+
1590
+ @dataclass
1591
+ class BbandsResult:
1592
+ def __init__(self, *, upper:float, middle:float, lower:float):
1593
+ self.upper = upper
1594
+ self.middle = middle
1595
+ self.lower = lower
1596
+
1597
+
1598
+
1599
+
1600
+ def __str__(self):
1601
+ return "BbandsResult(upper={}, middle={}, lower={})".format(self.upper, self.middle, self.lower)
1602
+ def __eq__(self, other):
1603
+ if self.upper != other.upper:
1604
+ return False
1605
+ if self.middle != other.middle:
1606
+ return False
1607
+ if self.lower != other.lower:
1608
+ return False
1609
+ return True
1610
+
1611
+ class _UniffiFfiConverterTypeBbandsResult(_UniffiConverterRustBuffer):
1612
+ @staticmethod
1613
+ def read(buf):
1614
+ return BbandsResult(
1615
+ upper=_UniffiFfiConverterFloat64.read(buf),
1616
+ middle=_UniffiFfiConverterFloat64.read(buf),
1617
+ lower=_UniffiFfiConverterFloat64.read(buf),
1618
+ )
1619
+
1620
+ @staticmethod
1621
+ def check_lower(value):
1622
+ _UniffiFfiConverterFloat64.check_lower(value.upper)
1623
+ _UniffiFfiConverterFloat64.check_lower(value.middle)
1624
+ _UniffiFfiConverterFloat64.check_lower(value.lower)
1625
+
1626
+ @staticmethod
1627
+ def write(value, buf):
1628
+ _UniffiFfiConverterFloat64.write(value.upper, buf)
1629
+ _UniffiFfiConverterFloat64.write(value.middle, buf)
1630
+ _UniffiFfiConverterFloat64.write(value.lower, buf)
1631
+
1632
+ @dataclass
1633
+ class IchimokuResult:
1634
+ def __init__(self, *, tenkan:float, kijun:float, senkou_a:float, senkou_b:float):
1635
+ self.tenkan = tenkan
1636
+ self.kijun = kijun
1637
+ self.senkou_a = senkou_a
1638
+ self.senkou_b = senkou_b
1639
+
1640
+
1641
+
1642
+
1643
+ def __str__(self):
1644
+ return "IchimokuResult(tenkan={}, kijun={}, senkou_a={}, senkou_b={})".format(self.tenkan, self.kijun, self.senkou_a, self.senkou_b)
1645
+ def __eq__(self, other):
1646
+ if self.tenkan != other.tenkan:
1647
+ return False
1648
+ if self.kijun != other.kijun:
1649
+ return False
1650
+ if self.senkou_a != other.senkou_a:
1651
+ return False
1652
+ if self.senkou_b != other.senkou_b:
1653
+ return False
1654
+ return True
1655
+
1656
+ class _UniffiFfiConverterTypeIchimokuResult(_UniffiConverterRustBuffer):
1657
+ @staticmethod
1658
+ def read(buf):
1659
+ return IchimokuResult(
1660
+ tenkan=_UniffiFfiConverterFloat64.read(buf),
1661
+ kijun=_UniffiFfiConverterFloat64.read(buf),
1662
+ senkou_a=_UniffiFfiConverterFloat64.read(buf),
1663
+ senkou_b=_UniffiFfiConverterFloat64.read(buf),
1664
+ )
1665
+
1666
+ @staticmethod
1667
+ def check_lower(value):
1668
+ _UniffiFfiConverterFloat64.check_lower(value.tenkan)
1669
+ _UniffiFfiConverterFloat64.check_lower(value.kijun)
1670
+ _UniffiFfiConverterFloat64.check_lower(value.senkou_a)
1671
+ _UniffiFfiConverterFloat64.check_lower(value.senkou_b)
1672
+
1673
+ @staticmethod
1674
+ def write(value, buf):
1675
+ _UniffiFfiConverterFloat64.write(value.tenkan, buf)
1676
+ _UniffiFfiConverterFloat64.write(value.kijun, buf)
1677
+ _UniffiFfiConverterFloat64.write(value.senkou_a, buf)
1678
+ _UniffiFfiConverterFloat64.write(value.senkou_b, buf)
1679
+
1680
+ @dataclass
1681
+ class MacdResult:
1682
+ def __init__(self, *, macd:float, signal:float, histogram:float):
1683
+ self.macd = macd
1684
+ self.signal = signal
1685
+ self.histogram = histogram
1686
+
1687
+
1688
+
1689
+
1690
+ def __str__(self):
1691
+ return "MacdResult(macd={}, signal={}, histogram={})".format(self.macd, self.signal, self.histogram)
1692
+ def __eq__(self, other):
1693
+ if self.macd != other.macd:
1694
+ return False
1695
+ if self.signal != other.signal:
1696
+ return False
1697
+ if self.histogram != other.histogram:
1698
+ return False
1699
+ return True
1700
+
1701
+ class _UniffiFfiConverterTypeMacdResult(_UniffiConverterRustBuffer):
1702
+ @staticmethod
1703
+ def read(buf):
1704
+ return MacdResult(
1705
+ macd=_UniffiFfiConverterFloat64.read(buf),
1706
+ signal=_UniffiFfiConverterFloat64.read(buf),
1707
+ histogram=_UniffiFfiConverterFloat64.read(buf),
1708
+ )
1709
+
1710
+ @staticmethod
1711
+ def check_lower(value):
1712
+ _UniffiFfiConverterFloat64.check_lower(value.macd)
1713
+ _UniffiFfiConverterFloat64.check_lower(value.signal)
1714
+ _UniffiFfiConverterFloat64.check_lower(value.histogram)
1715
+
1716
+ @staticmethod
1717
+ def write(value, buf):
1718
+ _UniffiFfiConverterFloat64.write(value.macd, buf)
1719
+ _UniffiFfiConverterFloat64.write(value.signal, buf)
1720
+ _UniffiFfiConverterFloat64.write(value.histogram, buf)
1721
+
1722
+ @dataclass
1723
+ class MamaResult:
1724
+ def __init__(self, *, mama:float, fama:float):
1725
+ self.mama = mama
1726
+ self.fama = fama
1727
+
1728
+
1729
+
1730
+
1731
+ def __str__(self):
1732
+ return "MamaResult(mama={}, fama={})".format(self.mama, self.fama)
1733
+ def __eq__(self, other):
1734
+ if self.mama != other.mama:
1735
+ return False
1736
+ if self.fama != other.fama:
1737
+ return False
1738
+ return True
1739
+
1740
+ class _UniffiFfiConverterTypeMamaResult(_UniffiConverterRustBuffer):
1741
+ @staticmethod
1742
+ def read(buf):
1743
+ return MamaResult(
1744
+ mama=_UniffiFfiConverterFloat64.read(buf),
1745
+ fama=_UniffiFfiConverterFloat64.read(buf),
1746
+ )
1747
+
1748
+ @staticmethod
1749
+ def check_lower(value):
1750
+ _UniffiFfiConverterFloat64.check_lower(value.mama)
1751
+ _UniffiFfiConverterFloat64.check_lower(value.fama)
1752
+
1753
+ @staticmethod
1754
+ def write(value, buf):
1755
+ _UniffiFfiConverterFloat64.write(value.mama, buf)
1756
+ _UniffiFfiConverterFloat64.write(value.fama, buf)
1757
+
1758
+ @dataclass
1759
+ class StochResult:
1760
+ def __init__(self, *, k:float, d:float):
1761
+ self.k = k
1762
+ self.d = d
1763
+
1764
+
1765
+
1766
+
1767
+ def __str__(self):
1768
+ return "StochResult(k={}, d={})".format(self.k, self.d)
1769
+ def __eq__(self, other):
1770
+ if self.k != other.k:
1771
+ return False
1772
+ if self.d != other.d:
1773
+ return False
1774
+ return True
1775
+
1776
+ class _UniffiFfiConverterTypeStochResult(_UniffiConverterRustBuffer):
1777
+ @staticmethod
1778
+ def read(buf):
1779
+ return StochResult(
1780
+ k=_UniffiFfiConverterFloat64.read(buf),
1781
+ d=_UniffiFfiConverterFloat64.read(buf),
1782
+ )
1783
+
1784
+ @staticmethod
1785
+ def check_lower(value):
1786
+ _UniffiFfiConverterFloat64.check_lower(value.k)
1787
+ _UniffiFfiConverterFloat64.check_lower(value.d)
1788
+
1789
+ @staticmethod
1790
+ def write(value, buf):
1791
+ _UniffiFfiConverterFloat64.write(value.k, buf)
1792
+ _UniffiFfiConverterFloat64.write(value.d, buf)
1793
+
1794
+ class _UniffiFfiConverterInt8(_UniffiConverterPrimitiveInt):
1795
+ CLASS_NAME = "i8"
1796
+ VALUE_MIN = -2**7
1797
+ VALUE_MAX = 2**7
1798
+
1799
+ @staticmethod
1800
+ def read(buf):
1801
+ return buf.read_i8()
1802
+
1803
+ @staticmethod
1804
+ def write(value, buf):
1805
+ buf.write_i8(value)
1806
+
1807
+ @dataclass
1808
+ class SuperTrendResult:
1809
+ def __init__(self, *, value:float, direction:int):
1810
+ self.value = value
1811
+ self.direction = direction
1812
+
1813
+
1814
+
1815
+
1816
+ def __str__(self):
1817
+ return "SuperTrendResult(value={}, direction={})".format(self.value, self.direction)
1818
+ def __eq__(self, other):
1819
+ if self.value != other.value:
1820
+ return False
1821
+ if self.direction != other.direction:
1822
+ return False
1823
+ return True
1824
+
1825
+ class _UniffiFfiConverterTypeSuperTrendResult(_UniffiConverterRustBuffer):
1826
+ @staticmethod
1827
+ def read(buf):
1828
+ return SuperTrendResult(
1829
+ value=_UniffiFfiConverterFloat64.read(buf),
1830
+ direction=_UniffiFfiConverterInt8.read(buf),
1831
+ )
1832
+
1833
+ @staticmethod
1834
+ def check_lower(value):
1835
+ _UniffiFfiConverterFloat64.check_lower(value.value)
1836
+ _UniffiFfiConverterInt8.check_lower(value.direction)
1837
+
1838
+ @staticmethod
1839
+ def write(value, buf):
1840
+ _UniffiFfiConverterFloat64.write(value.value, buf)
1841
+ _UniffiFfiConverterInt8.write(value.direction, buf)
1842
+
1843
+
1844
+ class AdxProtocol(typing.Protocol):
1845
+
1846
+ def next(self, high: float,low: float,close: float) -> float:
1847
+ raise NotImplementedError
1848
+
1849
+ class Adx(AdxProtocol):
1850
+
1851
+ _handle: ctypes.c_uint64
1852
+ def __init__(self, period: int):
1853
+
1854
+ _UniffiFfiConverterUInt64.check_lower(period)
1855
+ _uniffi_lowered_args = (
1856
+ _UniffiFfiConverterUInt64.lower(period),
1857
+ )
1858
+ _uniffi_lift_return = _UniffiFfiConverterTypeAdx.lift
1859
+ _uniffi_error_converter = None
1860
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
1861
+ _uniffi_error_converter,
1862
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_adx_new,
1863
+ *_uniffi_lowered_args,
1864
+ )
1865
+ self._handle = _uniffi_ffi_result
1866
+
1867
+ def __del__(self):
1868
+ # In case of partial initialization of instances.
1869
+ handle = getattr(self, "_handle", None)
1870
+ if handle is not None:
1871
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_adx, handle)
1872
+
1873
+ def _uniffi_clone_handle(self):
1874
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_adx, self._handle)
1875
+
1876
+ # Used by alternative constructors or any methods which return this type.
1877
+ @classmethod
1878
+ def _uniffi_make_instance(cls, handle):
1879
+ # Lightly yucky way to bypass the usual __init__ logic
1880
+ # and just create a new instance with the required handle.
1881
+ inst = cls.__new__(cls)
1882
+ inst._handle = handle
1883
+ return inst
1884
+ def next(self, high: float,low: float,close: float) -> float:
1885
+
1886
+ _UniffiFfiConverterFloat64.check_lower(high)
1887
+
1888
+ _UniffiFfiConverterFloat64.check_lower(low)
1889
+
1890
+ _UniffiFfiConverterFloat64.check_lower(close)
1891
+ _uniffi_lowered_args = (
1892
+ self._uniffi_clone_handle(),
1893
+ _UniffiFfiConverterFloat64.lower(high),
1894
+ _UniffiFfiConverterFloat64.lower(low),
1895
+ _UniffiFfiConverterFloat64.lower(close),
1896
+ )
1897
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
1898
+ _uniffi_error_converter = None
1899
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
1900
+ _uniffi_error_converter,
1901
+ _UniffiLib.uniffi_quantwave_python_fn_method_adx_next,
1902
+ *_uniffi_lowered_args,
1903
+ )
1904
+ return _uniffi_lift_return(_uniffi_ffi_result)
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+ class _UniffiFfiConverterTypeAdx:
1911
+ @staticmethod
1912
+ def lift(value: int) -> Adx:
1913
+ return Adx._uniffi_make_instance(value)
1914
+
1915
+ @staticmethod
1916
+ def check_lower(value: Adx):
1917
+ if not isinstance(value, Adx):
1918
+ raise TypeError("Expected Adx instance, {} found".format(type(value).__name__))
1919
+
1920
+ @staticmethod
1921
+ def lower(value: Adx) -> ctypes.c_uint64:
1922
+ return value._uniffi_clone_handle()
1923
+
1924
+ @classmethod
1925
+ def read(cls, buf: _UniffiRustBuffer) -> Adx:
1926
+ ptr = buf.read_u64()
1927
+ if ptr == 0:
1928
+ raise InternalError("Raw handle value was null")
1929
+ return cls.lift(ptr)
1930
+
1931
+ @classmethod
1932
+ def write(cls, value: Adx, buf: _UniffiRustBuffer):
1933
+ buf.write_u64(cls.lower(value))
1934
+
1935
+
1936
+ class AtrProtocol(typing.Protocol):
1937
+
1938
+ def next(self, high: float,low: float,close: float) -> float:
1939
+ raise NotImplementedError
1940
+
1941
+ class Atr(AtrProtocol):
1942
+
1943
+ _handle: ctypes.c_uint64
1944
+ def __init__(self, period: int):
1945
+
1946
+ _UniffiFfiConverterUInt64.check_lower(period)
1947
+ _uniffi_lowered_args = (
1948
+ _UniffiFfiConverterUInt64.lower(period),
1949
+ )
1950
+ _uniffi_lift_return = _UniffiFfiConverterTypeAtr.lift
1951
+ _uniffi_error_converter = None
1952
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
1953
+ _uniffi_error_converter,
1954
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_atr_new,
1955
+ *_uniffi_lowered_args,
1956
+ )
1957
+ self._handle = _uniffi_ffi_result
1958
+
1959
+ def __del__(self):
1960
+ # In case of partial initialization of instances.
1961
+ handle = getattr(self, "_handle", None)
1962
+ if handle is not None:
1963
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_atr, handle)
1964
+
1965
+ def _uniffi_clone_handle(self):
1966
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_atr, self._handle)
1967
+
1968
+ # Used by alternative constructors or any methods which return this type.
1969
+ @classmethod
1970
+ def _uniffi_make_instance(cls, handle):
1971
+ # Lightly yucky way to bypass the usual __init__ logic
1972
+ # and just create a new instance with the required handle.
1973
+ inst = cls.__new__(cls)
1974
+ inst._handle = handle
1975
+ return inst
1976
+ def next(self, high: float,low: float,close: float) -> float:
1977
+
1978
+ _UniffiFfiConverterFloat64.check_lower(high)
1979
+
1980
+ _UniffiFfiConverterFloat64.check_lower(low)
1981
+
1982
+ _UniffiFfiConverterFloat64.check_lower(close)
1983
+ _uniffi_lowered_args = (
1984
+ self._uniffi_clone_handle(),
1985
+ _UniffiFfiConverterFloat64.lower(high),
1986
+ _UniffiFfiConverterFloat64.lower(low),
1987
+ _UniffiFfiConverterFloat64.lower(close),
1988
+ )
1989
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
1990
+ _uniffi_error_converter = None
1991
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
1992
+ _uniffi_error_converter,
1993
+ _UniffiLib.uniffi_quantwave_python_fn_method_atr_next,
1994
+ *_uniffi_lowered_args,
1995
+ )
1996
+ return _uniffi_lift_return(_uniffi_ffi_result)
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+ class _UniffiFfiConverterTypeAtr:
2003
+ @staticmethod
2004
+ def lift(value: int) -> Atr:
2005
+ return Atr._uniffi_make_instance(value)
2006
+
2007
+ @staticmethod
2008
+ def check_lower(value: Atr):
2009
+ if not isinstance(value, Atr):
2010
+ raise TypeError("Expected Atr instance, {} found".format(type(value).__name__))
2011
+
2012
+ @staticmethod
2013
+ def lower(value: Atr) -> ctypes.c_uint64:
2014
+ return value._uniffi_clone_handle()
2015
+
2016
+ @classmethod
2017
+ def read(cls, buf: _UniffiRustBuffer) -> Atr:
2018
+ ptr = buf.read_u64()
2019
+ if ptr == 0:
2020
+ raise InternalError("Raw handle value was null")
2021
+ return cls.lift(ptr)
2022
+
2023
+ @classmethod
2024
+ def write(cls, value: Atr, buf: _UniffiRustBuffer):
2025
+ buf.write_u64(cls.lower(value))
2026
+
2027
+
2028
+ class BbandsProtocol(typing.Protocol):
2029
+
2030
+ def next(self, input: float) -> BbandsResult:
2031
+ raise NotImplementedError
2032
+
2033
+ class Bbands(BbandsProtocol):
2034
+
2035
+ _handle: ctypes.c_uint64
2036
+ def __init__(self, period: int,nbdevup: float,nbdevdn: float):
2037
+
2038
+ _UniffiFfiConverterUInt64.check_lower(period)
2039
+
2040
+ _UniffiFfiConverterFloat64.check_lower(nbdevup)
2041
+
2042
+ _UniffiFfiConverterFloat64.check_lower(nbdevdn)
2043
+ _uniffi_lowered_args = (
2044
+ _UniffiFfiConverterUInt64.lower(period),
2045
+ _UniffiFfiConverterFloat64.lower(nbdevup),
2046
+ _UniffiFfiConverterFloat64.lower(nbdevdn),
2047
+ )
2048
+ _uniffi_lift_return = _UniffiFfiConverterTypeBbands.lift
2049
+ _uniffi_error_converter = None
2050
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2051
+ _uniffi_error_converter,
2052
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_bbands_new,
2053
+ *_uniffi_lowered_args,
2054
+ )
2055
+ self._handle = _uniffi_ffi_result
2056
+
2057
+ def __del__(self):
2058
+ # In case of partial initialization of instances.
2059
+ handle = getattr(self, "_handle", None)
2060
+ if handle is not None:
2061
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_bbands, handle)
2062
+
2063
+ def _uniffi_clone_handle(self):
2064
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_bbands, self._handle)
2065
+
2066
+ # Used by alternative constructors or any methods which return this type.
2067
+ @classmethod
2068
+ def _uniffi_make_instance(cls, handle):
2069
+ # Lightly yucky way to bypass the usual __init__ logic
2070
+ # and just create a new instance with the required handle.
2071
+ inst = cls.__new__(cls)
2072
+ inst._handle = handle
2073
+ return inst
2074
+ def next(self, input: float) -> BbandsResult:
2075
+
2076
+ _UniffiFfiConverterFloat64.check_lower(input)
2077
+ _uniffi_lowered_args = (
2078
+ self._uniffi_clone_handle(),
2079
+ _UniffiFfiConverterFloat64.lower(input),
2080
+ )
2081
+ _uniffi_lift_return = _UniffiFfiConverterTypeBbandsResult.lift
2082
+ _uniffi_error_converter = None
2083
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2084
+ _uniffi_error_converter,
2085
+ _UniffiLib.uniffi_quantwave_python_fn_method_bbands_next,
2086
+ *_uniffi_lowered_args,
2087
+ )
2088
+ return _uniffi_lift_return(_uniffi_ffi_result)
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+ class _UniffiFfiConverterTypeBbands:
2095
+ @staticmethod
2096
+ def lift(value: int) -> Bbands:
2097
+ return Bbands._uniffi_make_instance(value)
2098
+
2099
+ @staticmethod
2100
+ def check_lower(value: Bbands):
2101
+ if not isinstance(value, Bbands):
2102
+ raise TypeError("Expected Bbands instance, {} found".format(type(value).__name__))
2103
+
2104
+ @staticmethod
2105
+ def lower(value: Bbands) -> ctypes.c_uint64:
2106
+ return value._uniffi_clone_handle()
2107
+
2108
+ @classmethod
2109
+ def read(cls, buf: _UniffiRustBuffer) -> Bbands:
2110
+ ptr = buf.read_u64()
2111
+ if ptr == 0:
2112
+ raise InternalError("Raw handle value was null")
2113
+ return cls.lift(ptr)
2114
+
2115
+ @classmethod
2116
+ def write(cls, value: Bbands, buf: _UniffiRustBuffer):
2117
+ buf.write_u64(cls.lower(value))
2118
+
2119
+
2120
+ class CciProtocol(typing.Protocol):
2121
+
2122
+ def next(self, high: float,low: float,close: float) -> float:
2123
+ raise NotImplementedError
2124
+
2125
+ class Cci(CciProtocol):
2126
+
2127
+ _handle: ctypes.c_uint64
2128
+ def __init__(self, period: int):
2129
+
2130
+ _UniffiFfiConverterUInt64.check_lower(period)
2131
+ _uniffi_lowered_args = (
2132
+ _UniffiFfiConverterUInt64.lower(period),
2133
+ )
2134
+ _uniffi_lift_return = _UniffiFfiConverterTypeCci.lift
2135
+ _uniffi_error_converter = None
2136
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2137
+ _uniffi_error_converter,
2138
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_cci_new,
2139
+ *_uniffi_lowered_args,
2140
+ )
2141
+ self._handle = _uniffi_ffi_result
2142
+
2143
+ def __del__(self):
2144
+ # In case of partial initialization of instances.
2145
+ handle = getattr(self, "_handle", None)
2146
+ if handle is not None:
2147
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_cci, handle)
2148
+
2149
+ def _uniffi_clone_handle(self):
2150
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_cci, self._handle)
2151
+
2152
+ # Used by alternative constructors or any methods which return this type.
2153
+ @classmethod
2154
+ def _uniffi_make_instance(cls, handle):
2155
+ # Lightly yucky way to bypass the usual __init__ logic
2156
+ # and just create a new instance with the required handle.
2157
+ inst = cls.__new__(cls)
2158
+ inst._handle = handle
2159
+ return inst
2160
+ def next(self, high: float,low: float,close: float) -> float:
2161
+
2162
+ _UniffiFfiConverterFloat64.check_lower(high)
2163
+
2164
+ _UniffiFfiConverterFloat64.check_lower(low)
2165
+
2166
+ _UniffiFfiConverterFloat64.check_lower(close)
2167
+ _uniffi_lowered_args = (
2168
+ self._uniffi_clone_handle(),
2169
+ _UniffiFfiConverterFloat64.lower(high),
2170
+ _UniffiFfiConverterFloat64.lower(low),
2171
+ _UniffiFfiConverterFloat64.lower(close),
2172
+ )
2173
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2174
+ _uniffi_error_converter = None
2175
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2176
+ _uniffi_error_converter,
2177
+ _UniffiLib.uniffi_quantwave_python_fn_method_cci_next,
2178
+ *_uniffi_lowered_args,
2179
+ )
2180
+ return _uniffi_lift_return(_uniffi_ffi_result)
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+ class _UniffiFfiConverterTypeCci:
2187
+ @staticmethod
2188
+ def lift(value: int) -> Cci:
2189
+ return Cci._uniffi_make_instance(value)
2190
+
2191
+ @staticmethod
2192
+ def check_lower(value: Cci):
2193
+ if not isinstance(value, Cci):
2194
+ raise TypeError("Expected Cci instance, {} found".format(type(value).__name__))
2195
+
2196
+ @staticmethod
2197
+ def lower(value: Cci) -> ctypes.c_uint64:
2198
+ return value._uniffi_clone_handle()
2199
+
2200
+ @classmethod
2201
+ def read(cls, buf: _UniffiRustBuffer) -> Cci:
2202
+ ptr = buf.read_u64()
2203
+ if ptr == 0:
2204
+ raise InternalError("Raw handle value was null")
2205
+ return cls.lift(ptr)
2206
+
2207
+ @classmethod
2208
+ def write(cls, value: Cci, buf: _UniffiRustBuffer):
2209
+ buf.write_u64(cls.lower(value))
2210
+
2211
+
2212
+ class EmaProtocol(typing.Protocol):
2213
+
2214
+ def next(self, input: float) -> float:
2215
+ raise NotImplementedError
2216
+
2217
+ class Ema(EmaProtocol):
2218
+
2219
+ _handle: ctypes.c_uint64
2220
+ def __init__(self, period: int):
2221
+
2222
+ _UniffiFfiConverterUInt64.check_lower(period)
2223
+ _uniffi_lowered_args = (
2224
+ _UniffiFfiConverterUInt64.lower(period),
2225
+ )
2226
+ _uniffi_lift_return = _UniffiFfiConverterTypeEma.lift
2227
+ _uniffi_error_converter = None
2228
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2229
+ _uniffi_error_converter,
2230
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ema_new,
2231
+ *_uniffi_lowered_args,
2232
+ )
2233
+ self._handle = _uniffi_ffi_result
2234
+
2235
+ def __del__(self):
2236
+ # In case of partial initialization of instances.
2237
+ handle = getattr(self, "_handle", None)
2238
+ if handle is not None:
2239
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_ema, handle)
2240
+
2241
+ def _uniffi_clone_handle(self):
2242
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_ema, self._handle)
2243
+
2244
+ # Used by alternative constructors or any methods which return this type.
2245
+ @classmethod
2246
+ def _uniffi_make_instance(cls, handle):
2247
+ # Lightly yucky way to bypass the usual __init__ logic
2248
+ # and just create a new instance with the required handle.
2249
+ inst = cls.__new__(cls)
2250
+ inst._handle = handle
2251
+ return inst
2252
+ def next(self, input: float) -> float:
2253
+
2254
+ _UniffiFfiConverterFloat64.check_lower(input)
2255
+ _uniffi_lowered_args = (
2256
+ self._uniffi_clone_handle(),
2257
+ _UniffiFfiConverterFloat64.lower(input),
2258
+ )
2259
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2260
+ _uniffi_error_converter = None
2261
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2262
+ _uniffi_error_converter,
2263
+ _UniffiLib.uniffi_quantwave_python_fn_method_ema_next,
2264
+ *_uniffi_lowered_args,
2265
+ )
2266
+ return _uniffi_lift_return(_uniffi_ffi_result)
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+ class _UniffiFfiConverterTypeEma:
2273
+ @staticmethod
2274
+ def lift(value: int) -> Ema:
2275
+ return Ema._uniffi_make_instance(value)
2276
+
2277
+ @staticmethod
2278
+ def check_lower(value: Ema):
2279
+ if not isinstance(value, Ema):
2280
+ raise TypeError("Expected Ema instance, {} found".format(type(value).__name__))
2281
+
2282
+ @staticmethod
2283
+ def lower(value: Ema) -> ctypes.c_uint64:
2284
+ return value._uniffi_clone_handle()
2285
+
2286
+ @classmethod
2287
+ def read(cls, buf: _UniffiRustBuffer) -> Ema:
2288
+ ptr = buf.read_u64()
2289
+ if ptr == 0:
2290
+ raise InternalError("Raw handle value was null")
2291
+ return cls.lift(ptr)
2292
+
2293
+ @classmethod
2294
+ def write(cls, value: Ema, buf: _UniffiRustBuffer):
2295
+ buf.write_u64(cls.lower(value))
2296
+
2297
+
2298
+ class IchimokuProtocol(typing.Protocol):
2299
+
2300
+ def next(self, high: float,low: float) -> IchimokuResult:
2301
+ raise NotImplementedError
2302
+
2303
+ class Ichimoku(IchimokuProtocol):
2304
+
2305
+ _handle: ctypes.c_uint64
2306
+ def __init__(self, tenkan: int,kijun: int,senkou_b: int):
2307
+
2308
+ _UniffiFfiConverterUInt64.check_lower(tenkan)
2309
+
2310
+ _UniffiFfiConverterUInt64.check_lower(kijun)
2311
+
2312
+ _UniffiFfiConverterUInt64.check_lower(senkou_b)
2313
+ _uniffi_lowered_args = (
2314
+ _UniffiFfiConverterUInt64.lower(tenkan),
2315
+ _UniffiFfiConverterUInt64.lower(kijun),
2316
+ _UniffiFfiConverterUInt64.lower(senkou_b),
2317
+ )
2318
+ _uniffi_lift_return = _UniffiFfiConverterTypeIchimoku.lift
2319
+ _uniffi_error_converter = None
2320
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2321
+ _uniffi_error_converter,
2322
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_ichimoku_new,
2323
+ *_uniffi_lowered_args,
2324
+ )
2325
+ self._handle = _uniffi_ffi_result
2326
+
2327
+ def __del__(self):
2328
+ # In case of partial initialization of instances.
2329
+ handle = getattr(self, "_handle", None)
2330
+ if handle is not None:
2331
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_ichimoku, handle)
2332
+
2333
+ def _uniffi_clone_handle(self):
2334
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_ichimoku, self._handle)
2335
+
2336
+ # Used by alternative constructors or any methods which return this type.
2337
+ @classmethod
2338
+ def _uniffi_make_instance(cls, handle):
2339
+ # Lightly yucky way to bypass the usual __init__ logic
2340
+ # and just create a new instance with the required handle.
2341
+ inst = cls.__new__(cls)
2342
+ inst._handle = handle
2343
+ return inst
2344
+ def next(self, high: float,low: float) -> IchimokuResult:
2345
+
2346
+ _UniffiFfiConverterFloat64.check_lower(high)
2347
+
2348
+ _UniffiFfiConverterFloat64.check_lower(low)
2349
+ _uniffi_lowered_args = (
2350
+ self._uniffi_clone_handle(),
2351
+ _UniffiFfiConverterFloat64.lower(high),
2352
+ _UniffiFfiConverterFloat64.lower(low),
2353
+ )
2354
+ _uniffi_lift_return = _UniffiFfiConverterTypeIchimokuResult.lift
2355
+ _uniffi_error_converter = None
2356
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2357
+ _uniffi_error_converter,
2358
+ _UniffiLib.uniffi_quantwave_python_fn_method_ichimoku_next,
2359
+ *_uniffi_lowered_args,
2360
+ )
2361
+ return _uniffi_lift_return(_uniffi_ffi_result)
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+ class _UniffiFfiConverterTypeIchimoku:
2368
+ @staticmethod
2369
+ def lift(value: int) -> Ichimoku:
2370
+ return Ichimoku._uniffi_make_instance(value)
2371
+
2372
+ @staticmethod
2373
+ def check_lower(value: Ichimoku):
2374
+ if not isinstance(value, Ichimoku):
2375
+ raise TypeError("Expected Ichimoku instance, {} found".format(type(value).__name__))
2376
+
2377
+ @staticmethod
2378
+ def lower(value: Ichimoku) -> ctypes.c_uint64:
2379
+ return value._uniffi_clone_handle()
2380
+
2381
+ @classmethod
2382
+ def read(cls, buf: _UniffiRustBuffer) -> Ichimoku:
2383
+ ptr = buf.read_u64()
2384
+ if ptr == 0:
2385
+ raise InternalError("Raw handle value was null")
2386
+ return cls.lift(ptr)
2387
+
2388
+ @classmethod
2389
+ def write(cls, value: Ichimoku, buf: _UniffiRustBuffer):
2390
+ buf.write_u64(cls.lower(value))
2391
+
2392
+
2393
+ class KamaProtocol(typing.Protocol):
2394
+
2395
+ def next(self, input: float) -> float:
2396
+ raise NotImplementedError
2397
+
2398
+ class Kama(KamaProtocol):
2399
+
2400
+ _handle: ctypes.c_uint64
2401
+ def __init__(self, period: int):
2402
+
2403
+ _UniffiFfiConverterUInt64.check_lower(period)
2404
+ _uniffi_lowered_args = (
2405
+ _UniffiFfiConverterUInt64.lower(period),
2406
+ )
2407
+ _uniffi_lift_return = _UniffiFfiConverterTypeKama.lift
2408
+ _uniffi_error_converter = None
2409
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2410
+ _uniffi_error_converter,
2411
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_kama_new,
2412
+ *_uniffi_lowered_args,
2413
+ )
2414
+ self._handle = _uniffi_ffi_result
2415
+
2416
+ def __del__(self):
2417
+ # In case of partial initialization of instances.
2418
+ handle = getattr(self, "_handle", None)
2419
+ if handle is not None:
2420
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_kama, handle)
2421
+
2422
+ def _uniffi_clone_handle(self):
2423
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_kama, self._handle)
2424
+
2425
+ # Used by alternative constructors or any methods which return this type.
2426
+ @classmethod
2427
+ def _uniffi_make_instance(cls, handle):
2428
+ # Lightly yucky way to bypass the usual __init__ logic
2429
+ # and just create a new instance with the required handle.
2430
+ inst = cls.__new__(cls)
2431
+ inst._handle = handle
2432
+ return inst
2433
+ def next(self, input: float) -> float:
2434
+
2435
+ _UniffiFfiConverterFloat64.check_lower(input)
2436
+ _uniffi_lowered_args = (
2437
+ self._uniffi_clone_handle(),
2438
+ _UniffiFfiConverterFloat64.lower(input),
2439
+ )
2440
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2441
+ _uniffi_error_converter = None
2442
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2443
+ _uniffi_error_converter,
2444
+ _UniffiLib.uniffi_quantwave_python_fn_method_kama_next,
2445
+ *_uniffi_lowered_args,
2446
+ )
2447
+ return _uniffi_lift_return(_uniffi_ffi_result)
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+ class _UniffiFfiConverterTypeKama:
2454
+ @staticmethod
2455
+ def lift(value: int) -> Kama:
2456
+ return Kama._uniffi_make_instance(value)
2457
+
2458
+ @staticmethod
2459
+ def check_lower(value: Kama):
2460
+ if not isinstance(value, Kama):
2461
+ raise TypeError("Expected Kama instance, {} found".format(type(value).__name__))
2462
+
2463
+ @staticmethod
2464
+ def lower(value: Kama) -> ctypes.c_uint64:
2465
+ return value._uniffi_clone_handle()
2466
+
2467
+ @classmethod
2468
+ def read(cls, buf: _UniffiRustBuffer) -> Kama:
2469
+ ptr = buf.read_u64()
2470
+ if ptr == 0:
2471
+ raise InternalError("Raw handle value was null")
2472
+ return cls.lift(ptr)
2473
+
2474
+ @classmethod
2475
+ def write(cls, value: Kama, buf: _UniffiRustBuffer):
2476
+ buf.write_u64(cls.lower(value))
2477
+
2478
+
2479
+ class MacdProtocol(typing.Protocol):
2480
+
2481
+ def next(self, input: float) -> MacdResult:
2482
+ raise NotImplementedError
2483
+
2484
+ class Macd(MacdProtocol):
2485
+
2486
+ _handle: ctypes.c_uint64
2487
+ def __init__(self, fast: int,slow: int,signal: int):
2488
+
2489
+ _UniffiFfiConverterUInt64.check_lower(fast)
2490
+
2491
+ _UniffiFfiConverterUInt64.check_lower(slow)
2492
+
2493
+ _UniffiFfiConverterUInt64.check_lower(signal)
2494
+ _uniffi_lowered_args = (
2495
+ _UniffiFfiConverterUInt64.lower(fast),
2496
+ _UniffiFfiConverterUInt64.lower(slow),
2497
+ _UniffiFfiConverterUInt64.lower(signal),
2498
+ )
2499
+ _uniffi_lift_return = _UniffiFfiConverterTypeMacd.lift
2500
+ _uniffi_error_converter = None
2501
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2502
+ _uniffi_error_converter,
2503
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_macd_new,
2504
+ *_uniffi_lowered_args,
2505
+ )
2506
+ self._handle = _uniffi_ffi_result
2507
+
2508
+ def __del__(self):
2509
+ # In case of partial initialization of instances.
2510
+ handle = getattr(self, "_handle", None)
2511
+ if handle is not None:
2512
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_macd, handle)
2513
+
2514
+ def _uniffi_clone_handle(self):
2515
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_macd, self._handle)
2516
+
2517
+ # Used by alternative constructors or any methods which return this type.
2518
+ @classmethod
2519
+ def _uniffi_make_instance(cls, handle):
2520
+ # Lightly yucky way to bypass the usual __init__ logic
2521
+ # and just create a new instance with the required handle.
2522
+ inst = cls.__new__(cls)
2523
+ inst._handle = handle
2524
+ return inst
2525
+ def next(self, input: float) -> MacdResult:
2526
+
2527
+ _UniffiFfiConverterFloat64.check_lower(input)
2528
+ _uniffi_lowered_args = (
2529
+ self._uniffi_clone_handle(),
2530
+ _UniffiFfiConverterFloat64.lower(input),
2531
+ )
2532
+ _uniffi_lift_return = _UniffiFfiConverterTypeMacdResult.lift
2533
+ _uniffi_error_converter = None
2534
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2535
+ _uniffi_error_converter,
2536
+ _UniffiLib.uniffi_quantwave_python_fn_method_macd_next,
2537
+ *_uniffi_lowered_args,
2538
+ )
2539
+ return _uniffi_lift_return(_uniffi_ffi_result)
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+ class _UniffiFfiConverterTypeMacd:
2546
+ @staticmethod
2547
+ def lift(value: int) -> Macd:
2548
+ return Macd._uniffi_make_instance(value)
2549
+
2550
+ @staticmethod
2551
+ def check_lower(value: Macd):
2552
+ if not isinstance(value, Macd):
2553
+ raise TypeError("Expected Macd instance, {} found".format(type(value).__name__))
2554
+
2555
+ @staticmethod
2556
+ def lower(value: Macd) -> ctypes.c_uint64:
2557
+ return value._uniffi_clone_handle()
2558
+
2559
+ @classmethod
2560
+ def read(cls, buf: _UniffiRustBuffer) -> Macd:
2561
+ ptr = buf.read_u64()
2562
+ if ptr == 0:
2563
+ raise InternalError("Raw handle value was null")
2564
+ return cls.lift(ptr)
2565
+
2566
+ @classmethod
2567
+ def write(cls, value: Macd, buf: _UniffiRustBuffer):
2568
+ buf.write_u64(cls.lower(value))
2569
+
2570
+
2571
+ class MamaProtocol(typing.Protocol):
2572
+
2573
+ def next(self, input: float) -> MamaResult:
2574
+ raise NotImplementedError
2575
+
2576
+ class Mama(MamaProtocol):
2577
+
2578
+ _handle: ctypes.c_uint64
2579
+ def __init__(self, fastlimit: float,slowlimit: float):
2580
+
2581
+ _UniffiFfiConverterFloat64.check_lower(fastlimit)
2582
+
2583
+ _UniffiFfiConverterFloat64.check_lower(slowlimit)
2584
+ _uniffi_lowered_args = (
2585
+ _UniffiFfiConverterFloat64.lower(fastlimit),
2586
+ _UniffiFfiConverterFloat64.lower(slowlimit),
2587
+ )
2588
+ _uniffi_lift_return = _UniffiFfiConverterTypeMama.lift
2589
+ _uniffi_error_converter = None
2590
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2591
+ _uniffi_error_converter,
2592
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_mama_new,
2593
+ *_uniffi_lowered_args,
2594
+ )
2595
+ self._handle = _uniffi_ffi_result
2596
+
2597
+ def __del__(self):
2598
+ # In case of partial initialization of instances.
2599
+ handle = getattr(self, "_handle", None)
2600
+ if handle is not None:
2601
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_mama, handle)
2602
+
2603
+ def _uniffi_clone_handle(self):
2604
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_mama, self._handle)
2605
+
2606
+ # Used by alternative constructors or any methods which return this type.
2607
+ @classmethod
2608
+ def _uniffi_make_instance(cls, handle):
2609
+ # Lightly yucky way to bypass the usual __init__ logic
2610
+ # and just create a new instance with the required handle.
2611
+ inst = cls.__new__(cls)
2612
+ inst._handle = handle
2613
+ return inst
2614
+ def next(self, input: float) -> MamaResult:
2615
+
2616
+ _UniffiFfiConverterFloat64.check_lower(input)
2617
+ _uniffi_lowered_args = (
2618
+ self._uniffi_clone_handle(),
2619
+ _UniffiFfiConverterFloat64.lower(input),
2620
+ )
2621
+ _uniffi_lift_return = _UniffiFfiConverterTypeMamaResult.lift
2622
+ _uniffi_error_converter = None
2623
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2624
+ _uniffi_error_converter,
2625
+ _UniffiLib.uniffi_quantwave_python_fn_method_mama_next,
2626
+ *_uniffi_lowered_args,
2627
+ )
2628
+ return _uniffi_lift_return(_uniffi_ffi_result)
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+ class _UniffiFfiConverterTypeMama:
2635
+ @staticmethod
2636
+ def lift(value: int) -> Mama:
2637
+ return Mama._uniffi_make_instance(value)
2638
+
2639
+ @staticmethod
2640
+ def check_lower(value: Mama):
2641
+ if not isinstance(value, Mama):
2642
+ raise TypeError("Expected Mama instance, {} found".format(type(value).__name__))
2643
+
2644
+ @staticmethod
2645
+ def lower(value: Mama) -> ctypes.c_uint64:
2646
+ return value._uniffi_clone_handle()
2647
+
2648
+ @classmethod
2649
+ def read(cls, buf: _UniffiRustBuffer) -> Mama:
2650
+ ptr = buf.read_u64()
2651
+ if ptr == 0:
2652
+ raise InternalError("Raw handle value was null")
2653
+ return cls.lift(ptr)
2654
+
2655
+ @classmethod
2656
+ def write(cls, value: Mama, buf: _UniffiRustBuffer):
2657
+ buf.write_u64(cls.lower(value))
2658
+
2659
+
2660
+ class RsiProtocol(typing.Protocol):
2661
+
2662
+ def next(self, input: float) -> float:
2663
+ raise NotImplementedError
2664
+
2665
+ class Rsi(RsiProtocol):
2666
+
2667
+ _handle: ctypes.c_uint64
2668
+ def __init__(self, period: int):
2669
+
2670
+ _UniffiFfiConverterUInt64.check_lower(period)
2671
+ _uniffi_lowered_args = (
2672
+ _UniffiFfiConverterUInt64.lower(period),
2673
+ )
2674
+ _uniffi_lift_return = _UniffiFfiConverterTypeRsi.lift
2675
+ _uniffi_error_converter = None
2676
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2677
+ _uniffi_error_converter,
2678
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_rsi_new,
2679
+ *_uniffi_lowered_args,
2680
+ )
2681
+ self._handle = _uniffi_ffi_result
2682
+
2683
+ def __del__(self):
2684
+ # In case of partial initialization of instances.
2685
+ handle = getattr(self, "_handle", None)
2686
+ if handle is not None:
2687
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_rsi, handle)
2688
+
2689
+ def _uniffi_clone_handle(self):
2690
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_rsi, self._handle)
2691
+
2692
+ # Used by alternative constructors or any methods which return this type.
2693
+ @classmethod
2694
+ def _uniffi_make_instance(cls, handle):
2695
+ # Lightly yucky way to bypass the usual __init__ logic
2696
+ # and just create a new instance with the required handle.
2697
+ inst = cls.__new__(cls)
2698
+ inst._handle = handle
2699
+ return inst
2700
+ def next(self, input: float) -> float:
2701
+
2702
+ _UniffiFfiConverterFloat64.check_lower(input)
2703
+ _uniffi_lowered_args = (
2704
+ self._uniffi_clone_handle(),
2705
+ _UniffiFfiConverterFloat64.lower(input),
2706
+ )
2707
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2708
+ _uniffi_error_converter = None
2709
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2710
+ _uniffi_error_converter,
2711
+ _UniffiLib.uniffi_quantwave_python_fn_method_rsi_next,
2712
+ *_uniffi_lowered_args,
2713
+ )
2714
+ return _uniffi_lift_return(_uniffi_ffi_result)
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+ class _UniffiFfiConverterTypeRsi:
2721
+ @staticmethod
2722
+ def lift(value: int) -> Rsi:
2723
+ return Rsi._uniffi_make_instance(value)
2724
+
2725
+ @staticmethod
2726
+ def check_lower(value: Rsi):
2727
+ if not isinstance(value, Rsi):
2728
+ raise TypeError("Expected Rsi instance, {} found".format(type(value).__name__))
2729
+
2730
+ @staticmethod
2731
+ def lower(value: Rsi) -> ctypes.c_uint64:
2732
+ return value._uniffi_clone_handle()
2733
+
2734
+ @classmethod
2735
+ def read(cls, buf: _UniffiRustBuffer) -> Rsi:
2736
+ ptr = buf.read_u64()
2737
+ if ptr == 0:
2738
+ raise InternalError("Raw handle value was null")
2739
+ return cls.lift(ptr)
2740
+
2741
+ @classmethod
2742
+ def write(cls, value: Rsi, buf: _UniffiRustBuffer):
2743
+ buf.write_u64(cls.lower(value))
2744
+
2745
+
2746
+ class SarProtocol(typing.Protocol):
2747
+
2748
+ def next(self, high: float,low: float) -> float:
2749
+ raise NotImplementedError
2750
+
2751
+ class Sar(SarProtocol):
2752
+
2753
+ _handle: ctypes.c_uint64
2754
+ def __init__(self, acceleration: float,maximum: float):
2755
+
2756
+ _UniffiFfiConverterFloat64.check_lower(acceleration)
2757
+
2758
+ _UniffiFfiConverterFloat64.check_lower(maximum)
2759
+ _uniffi_lowered_args = (
2760
+ _UniffiFfiConverterFloat64.lower(acceleration),
2761
+ _UniffiFfiConverterFloat64.lower(maximum),
2762
+ )
2763
+ _uniffi_lift_return = _UniffiFfiConverterTypeSar.lift
2764
+ _uniffi_error_converter = None
2765
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2766
+ _uniffi_error_converter,
2767
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sar_new,
2768
+ *_uniffi_lowered_args,
2769
+ )
2770
+ self._handle = _uniffi_ffi_result
2771
+
2772
+ def __del__(self):
2773
+ # In case of partial initialization of instances.
2774
+ handle = getattr(self, "_handle", None)
2775
+ if handle is not None:
2776
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_sar, handle)
2777
+
2778
+ def _uniffi_clone_handle(self):
2779
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_sar, self._handle)
2780
+
2781
+ # Used by alternative constructors or any methods which return this type.
2782
+ @classmethod
2783
+ def _uniffi_make_instance(cls, handle):
2784
+ # Lightly yucky way to bypass the usual __init__ logic
2785
+ # and just create a new instance with the required handle.
2786
+ inst = cls.__new__(cls)
2787
+ inst._handle = handle
2788
+ return inst
2789
+ def next(self, high: float,low: float) -> float:
2790
+
2791
+ _UniffiFfiConverterFloat64.check_lower(high)
2792
+
2793
+ _UniffiFfiConverterFloat64.check_lower(low)
2794
+ _uniffi_lowered_args = (
2795
+ self._uniffi_clone_handle(),
2796
+ _UniffiFfiConverterFloat64.lower(high),
2797
+ _UniffiFfiConverterFloat64.lower(low),
2798
+ )
2799
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2800
+ _uniffi_error_converter = None
2801
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2802
+ _uniffi_error_converter,
2803
+ _UniffiLib.uniffi_quantwave_python_fn_method_sar_next,
2804
+ *_uniffi_lowered_args,
2805
+ )
2806
+ return _uniffi_lift_return(_uniffi_ffi_result)
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+ class _UniffiFfiConverterTypeSar:
2813
+ @staticmethod
2814
+ def lift(value: int) -> Sar:
2815
+ return Sar._uniffi_make_instance(value)
2816
+
2817
+ @staticmethod
2818
+ def check_lower(value: Sar):
2819
+ if not isinstance(value, Sar):
2820
+ raise TypeError("Expected Sar instance, {} found".format(type(value).__name__))
2821
+
2822
+ @staticmethod
2823
+ def lower(value: Sar) -> ctypes.c_uint64:
2824
+ return value._uniffi_clone_handle()
2825
+
2826
+ @classmethod
2827
+ def read(cls, buf: _UniffiRustBuffer) -> Sar:
2828
+ ptr = buf.read_u64()
2829
+ if ptr == 0:
2830
+ raise InternalError("Raw handle value was null")
2831
+ return cls.lift(ptr)
2832
+
2833
+ @classmethod
2834
+ def write(cls, value: Sar, buf: _UniffiRustBuffer):
2835
+ buf.write_u64(cls.lower(value))
2836
+
2837
+
2838
+ class SmaProtocol(typing.Protocol):
2839
+
2840
+ def next(self, input: float) -> float:
2841
+ raise NotImplementedError
2842
+
2843
+ class Sma(SmaProtocol):
2844
+
2845
+ _handle: ctypes.c_uint64
2846
+ def __init__(self, period: int):
2847
+
2848
+ _UniffiFfiConverterUInt64.check_lower(period)
2849
+ _uniffi_lowered_args = (
2850
+ _UniffiFfiConverterUInt64.lower(period),
2851
+ )
2852
+ _uniffi_lift_return = _UniffiFfiConverterTypeSma.lift
2853
+ _uniffi_error_converter = None
2854
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2855
+ _uniffi_error_converter,
2856
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_sma_new,
2857
+ *_uniffi_lowered_args,
2858
+ )
2859
+ self._handle = _uniffi_ffi_result
2860
+
2861
+ def __del__(self):
2862
+ # In case of partial initialization of instances.
2863
+ handle = getattr(self, "_handle", None)
2864
+ if handle is not None:
2865
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_sma, handle)
2866
+
2867
+ def _uniffi_clone_handle(self):
2868
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_sma, self._handle)
2869
+
2870
+ # Used by alternative constructors or any methods which return this type.
2871
+ @classmethod
2872
+ def _uniffi_make_instance(cls, handle):
2873
+ # Lightly yucky way to bypass the usual __init__ logic
2874
+ # and just create a new instance with the required handle.
2875
+ inst = cls.__new__(cls)
2876
+ inst._handle = handle
2877
+ return inst
2878
+ def next(self, input: float) -> float:
2879
+
2880
+ _UniffiFfiConverterFloat64.check_lower(input)
2881
+ _uniffi_lowered_args = (
2882
+ self._uniffi_clone_handle(),
2883
+ _UniffiFfiConverterFloat64.lower(input),
2884
+ )
2885
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
2886
+ _uniffi_error_converter = None
2887
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2888
+ _uniffi_error_converter,
2889
+ _UniffiLib.uniffi_quantwave_python_fn_method_sma_next,
2890
+ *_uniffi_lowered_args,
2891
+ )
2892
+ return _uniffi_lift_return(_uniffi_ffi_result)
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+ class _UniffiFfiConverterTypeSma:
2899
+ @staticmethod
2900
+ def lift(value: int) -> Sma:
2901
+ return Sma._uniffi_make_instance(value)
2902
+
2903
+ @staticmethod
2904
+ def check_lower(value: Sma):
2905
+ if not isinstance(value, Sma):
2906
+ raise TypeError("Expected Sma instance, {} found".format(type(value).__name__))
2907
+
2908
+ @staticmethod
2909
+ def lower(value: Sma) -> ctypes.c_uint64:
2910
+ return value._uniffi_clone_handle()
2911
+
2912
+ @classmethod
2913
+ def read(cls, buf: _UniffiRustBuffer) -> Sma:
2914
+ ptr = buf.read_u64()
2915
+ if ptr == 0:
2916
+ raise InternalError("Raw handle value was null")
2917
+ return cls.lift(ptr)
2918
+
2919
+ @classmethod
2920
+ def write(cls, value: Sma, buf: _UniffiRustBuffer):
2921
+ buf.write_u64(cls.lower(value))
2922
+
2923
+
2924
+ class StochProtocol(typing.Protocol):
2925
+
2926
+ def next(self, high: float,low: float,close: float) -> StochResult:
2927
+ raise NotImplementedError
2928
+
2929
+ class Stoch(StochProtocol):
2930
+
2931
+ _handle: ctypes.c_uint64
2932
+ def __init__(self, fastk: int,slowk: int,slowd: int):
2933
+
2934
+ _UniffiFfiConverterUInt64.check_lower(fastk)
2935
+
2936
+ _UniffiFfiConverterUInt64.check_lower(slowk)
2937
+
2938
+ _UniffiFfiConverterUInt64.check_lower(slowd)
2939
+ _uniffi_lowered_args = (
2940
+ _UniffiFfiConverterUInt64.lower(fastk),
2941
+ _UniffiFfiConverterUInt64.lower(slowk),
2942
+ _UniffiFfiConverterUInt64.lower(slowd),
2943
+ )
2944
+ _uniffi_lift_return = _UniffiFfiConverterTypeStoch.lift
2945
+ _uniffi_error_converter = None
2946
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2947
+ _uniffi_error_converter,
2948
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_stoch_new,
2949
+ *_uniffi_lowered_args,
2950
+ )
2951
+ self._handle = _uniffi_ffi_result
2952
+
2953
+ def __del__(self):
2954
+ # In case of partial initialization of instances.
2955
+ handle = getattr(self, "_handle", None)
2956
+ if handle is not None:
2957
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_stoch, handle)
2958
+
2959
+ def _uniffi_clone_handle(self):
2960
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_stoch, self._handle)
2961
+
2962
+ # Used by alternative constructors or any methods which return this type.
2963
+ @classmethod
2964
+ def _uniffi_make_instance(cls, handle):
2965
+ # Lightly yucky way to bypass the usual __init__ logic
2966
+ # and just create a new instance with the required handle.
2967
+ inst = cls.__new__(cls)
2968
+ inst._handle = handle
2969
+ return inst
2970
+ def next(self, high: float,low: float,close: float) -> StochResult:
2971
+
2972
+ _UniffiFfiConverterFloat64.check_lower(high)
2973
+
2974
+ _UniffiFfiConverterFloat64.check_lower(low)
2975
+
2976
+ _UniffiFfiConverterFloat64.check_lower(close)
2977
+ _uniffi_lowered_args = (
2978
+ self._uniffi_clone_handle(),
2979
+ _UniffiFfiConverterFloat64.lower(high),
2980
+ _UniffiFfiConverterFloat64.lower(low),
2981
+ _UniffiFfiConverterFloat64.lower(close),
2982
+ )
2983
+ _uniffi_lift_return = _UniffiFfiConverterTypeStochResult.lift
2984
+ _uniffi_error_converter = None
2985
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
2986
+ _uniffi_error_converter,
2987
+ _UniffiLib.uniffi_quantwave_python_fn_method_stoch_next,
2988
+ *_uniffi_lowered_args,
2989
+ )
2990
+ return _uniffi_lift_return(_uniffi_ffi_result)
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+ class _UniffiFfiConverterTypeStoch:
2997
+ @staticmethod
2998
+ def lift(value: int) -> Stoch:
2999
+ return Stoch._uniffi_make_instance(value)
3000
+
3001
+ @staticmethod
3002
+ def check_lower(value: Stoch):
3003
+ if not isinstance(value, Stoch):
3004
+ raise TypeError("Expected Stoch instance, {} found".format(type(value).__name__))
3005
+
3006
+ @staticmethod
3007
+ def lower(value: Stoch) -> ctypes.c_uint64:
3008
+ return value._uniffi_clone_handle()
3009
+
3010
+ @classmethod
3011
+ def read(cls, buf: _UniffiRustBuffer) -> Stoch:
3012
+ ptr = buf.read_u64()
3013
+ if ptr == 0:
3014
+ raise InternalError("Raw handle value was null")
3015
+ return cls.lift(ptr)
3016
+
3017
+ @classmethod
3018
+ def write(cls, value: Stoch, buf: _UniffiRustBuffer):
3019
+ buf.write_u64(cls.lower(value))
3020
+
3021
+
3022
+ class SuperTrendProtocol(typing.Protocol):
3023
+
3024
+ def next(self, high: float,low: float,close: float) -> SuperTrendResult:
3025
+ raise NotImplementedError
3026
+
3027
+ class SuperTrend(SuperTrendProtocol):
3028
+
3029
+ _handle: ctypes.c_uint64
3030
+ def __init__(self, period: int,multiplier: float):
3031
+
3032
+ _UniffiFfiConverterUInt64.check_lower(period)
3033
+
3034
+ _UniffiFfiConverterFloat64.check_lower(multiplier)
3035
+ _uniffi_lowered_args = (
3036
+ _UniffiFfiConverterUInt64.lower(period),
3037
+ _UniffiFfiConverterFloat64.lower(multiplier),
3038
+ )
3039
+ _uniffi_lift_return = _UniffiFfiConverterTypeSuperTrend.lift
3040
+ _uniffi_error_converter = None
3041
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3042
+ _uniffi_error_converter,
3043
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_supertrend_new,
3044
+ *_uniffi_lowered_args,
3045
+ )
3046
+ self._handle = _uniffi_ffi_result
3047
+
3048
+ def __del__(self):
3049
+ # In case of partial initialization of instances.
3050
+ handle = getattr(self, "_handle", None)
3051
+ if handle is not None:
3052
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_supertrend, handle)
3053
+
3054
+ def _uniffi_clone_handle(self):
3055
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_supertrend, self._handle)
3056
+
3057
+ # Used by alternative constructors or any methods which return this type.
3058
+ @classmethod
3059
+ def _uniffi_make_instance(cls, handle):
3060
+ # Lightly yucky way to bypass the usual __init__ logic
3061
+ # and just create a new instance with the required handle.
3062
+ inst = cls.__new__(cls)
3063
+ inst._handle = handle
3064
+ return inst
3065
+ def next(self, high: float,low: float,close: float) -> SuperTrendResult:
3066
+
3067
+ _UniffiFfiConverterFloat64.check_lower(high)
3068
+
3069
+ _UniffiFfiConverterFloat64.check_lower(low)
3070
+
3071
+ _UniffiFfiConverterFloat64.check_lower(close)
3072
+ _uniffi_lowered_args = (
3073
+ self._uniffi_clone_handle(),
3074
+ _UniffiFfiConverterFloat64.lower(high),
3075
+ _UniffiFfiConverterFloat64.lower(low),
3076
+ _UniffiFfiConverterFloat64.lower(close),
3077
+ )
3078
+ _uniffi_lift_return = _UniffiFfiConverterTypeSuperTrendResult.lift
3079
+ _uniffi_error_converter = None
3080
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3081
+ _uniffi_error_converter,
3082
+ _UniffiLib.uniffi_quantwave_python_fn_method_supertrend_next,
3083
+ *_uniffi_lowered_args,
3084
+ )
3085
+ return _uniffi_lift_return(_uniffi_ffi_result)
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+ class _UniffiFfiConverterTypeSuperTrend:
3092
+ @staticmethod
3093
+ def lift(value: int) -> SuperTrend:
3094
+ return SuperTrend._uniffi_make_instance(value)
3095
+
3096
+ @staticmethod
3097
+ def check_lower(value: SuperTrend):
3098
+ if not isinstance(value, SuperTrend):
3099
+ raise TypeError("Expected SuperTrend instance, {} found".format(type(value).__name__))
3100
+
3101
+ @staticmethod
3102
+ def lower(value: SuperTrend) -> ctypes.c_uint64:
3103
+ return value._uniffi_clone_handle()
3104
+
3105
+ @classmethod
3106
+ def read(cls, buf: _UniffiRustBuffer) -> SuperTrend:
3107
+ ptr = buf.read_u64()
3108
+ if ptr == 0:
3109
+ raise InternalError("Raw handle value was null")
3110
+ return cls.lift(ptr)
3111
+
3112
+ @classmethod
3113
+ def write(cls, value: SuperTrend, buf: _UniffiRustBuffer):
3114
+ buf.write_u64(cls.lower(value))
3115
+
3116
+
3117
+ class T3Protocol(typing.Protocol):
3118
+
3119
+ def next(self, input: float) -> float:
3120
+ raise NotImplementedError
3121
+
3122
+ class T3(T3Protocol):
3123
+
3124
+ _handle: ctypes.c_uint64
3125
+ def __init__(self, period: int,v_factor: float):
3126
+
3127
+ _UniffiFfiConverterUInt64.check_lower(period)
3128
+
3129
+ _UniffiFfiConverterFloat64.check_lower(v_factor)
3130
+ _uniffi_lowered_args = (
3131
+ _UniffiFfiConverterUInt64.lower(period),
3132
+ _UniffiFfiConverterFloat64.lower(v_factor),
3133
+ )
3134
+ _uniffi_lift_return = _UniffiFfiConverterTypeT3.lift
3135
+ _uniffi_error_converter = None
3136
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3137
+ _uniffi_error_converter,
3138
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_t3_new,
3139
+ *_uniffi_lowered_args,
3140
+ )
3141
+ self._handle = _uniffi_ffi_result
3142
+
3143
+ def __del__(self):
3144
+ # In case of partial initialization of instances.
3145
+ handle = getattr(self, "_handle", None)
3146
+ if handle is not None:
3147
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_t3, handle)
3148
+
3149
+ def _uniffi_clone_handle(self):
3150
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_t3, self._handle)
3151
+
3152
+ # Used by alternative constructors or any methods which return this type.
3153
+ @classmethod
3154
+ def _uniffi_make_instance(cls, handle):
3155
+ # Lightly yucky way to bypass the usual __init__ logic
3156
+ # and just create a new instance with the required handle.
3157
+ inst = cls.__new__(cls)
3158
+ inst._handle = handle
3159
+ return inst
3160
+ def next(self, input: float) -> float:
3161
+
3162
+ _UniffiFfiConverterFloat64.check_lower(input)
3163
+ _uniffi_lowered_args = (
3164
+ self._uniffi_clone_handle(),
3165
+ _UniffiFfiConverterFloat64.lower(input),
3166
+ )
3167
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
3168
+ _uniffi_error_converter = None
3169
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3170
+ _uniffi_error_converter,
3171
+ _UniffiLib.uniffi_quantwave_python_fn_method_t3_next,
3172
+ *_uniffi_lowered_args,
3173
+ )
3174
+ return _uniffi_lift_return(_uniffi_ffi_result)
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+ class _UniffiFfiConverterTypeT3:
3181
+ @staticmethod
3182
+ def lift(value: int) -> T3:
3183
+ return T3._uniffi_make_instance(value)
3184
+
3185
+ @staticmethod
3186
+ def check_lower(value: T3):
3187
+ if not isinstance(value, T3):
3188
+ raise TypeError("Expected T3 instance, {} found".format(type(value).__name__))
3189
+
3190
+ @staticmethod
3191
+ def lower(value: T3) -> ctypes.c_uint64:
3192
+ return value._uniffi_clone_handle()
3193
+
3194
+ @classmethod
3195
+ def read(cls, buf: _UniffiRustBuffer) -> T3:
3196
+ ptr = buf.read_u64()
3197
+ if ptr == 0:
3198
+ raise InternalError("Raw handle value was null")
3199
+ return cls.lift(ptr)
3200
+
3201
+ @classmethod
3202
+ def write(cls, value: T3, buf: _UniffiRustBuffer):
3203
+ buf.write_u64(cls.lower(value))
3204
+
3205
+
3206
+ class WmaProtocol(typing.Protocol):
3207
+
3208
+ def next(self, input: float) -> float:
3209
+ raise NotImplementedError
3210
+
3211
+ class Wma(WmaProtocol):
3212
+
3213
+ _handle: ctypes.c_uint64
3214
+ def __init__(self, period: int):
3215
+
3216
+ _UniffiFfiConverterUInt64.check_lower(period)
3217
+ _uniffi_lowered_args = (
3218
+ _UniffiFfiConverterUInt64.lower(period),
3219
+ )
3220
+ _uniffi_lift_return = _UniffiFfiConverterTypeWma.lift
3221
+ _uniffi_error_converter = None
3222
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3223
+ _uniffi_error_converter,
3224
+ _UniffiLib.uniffi_quantwave_python_fn_constructor_wma_new,
3225
+ *_uniffi_lowered_args,
3226
+ )
3227
+ self._handle = _uniffi_ffi_result
3228
+
3229
+ def __del__(self):
3230
+ # In case of partial initialization of instances.
3231
+ handle = getattr(self, "_handle", None)
3232
+ if handle is not None:
3233
+ _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_free_wma, handle)
3234
+
3235
+ def _uniffi_clone_handle(self):
3236
+ return _uniffi_rust_call(_UniffiLib.uniffi_quantwave_python_fn_clone_wma, self._handle)
3237
+
3238
+ # Used by alternative constructors or any methods which return this type.
3239
+ @classmethod
3240
+ def _uniffi_make_instance(cls, handle):
3241
+ # Lightly yucky way to bypass the usual __init__ logic
3242
+ # and just create a new instance with the required handle.
3243
+ inst = cls.__new__(cls)
3244
+ inst._handle = handle
3245
+ return inst
3246
+ def next(self, input: float) -> float:
3247
+
3248
+ _UniffiFfiConverterFloat64.check_lower(input)
3249
+ _uniffi_lowered_args = (
3250
+ self._uniffi_clone_handle(),
3251
+ _UniffiFfiConverterFloat64.lower(input),
3252
+ )
3253
+ _uniffi_lift_return = _UniffiFfiConverterFloat64.lift
3254
+ _uniffi_error_converter = None
3255
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3256
+ _uniffi_error_converter,
3257
+ _UniffiLib.uniffi_quantwave_python_fn_method_wma_next,
3258
+ *_uniffi_lowered_args,
3259
+ )
3260
+ return _uniffi_lift_return(_uniffi_ffi_result)
3261
+
3262
+
3263
+
3264
+
3265
+
3266
+ class _UniffiFfiConverterTypeWma:
3267
+ @staticmethod
3268
+ def lift(value: int) -> Wma:
3269
+ return Wma._uniffi_make_instance(value)
3270
+
3271
+ @staticmethod
3272
+ def check_lower(value: Wma):
3273
+ if not isinstance(value, Wma):
3274
+ raise TypeError("Expected Wma instance, {} found".format(type(value).__name__))
3275
+
3276
+ @staticmethod
3277
+ def lower(value: Wma) -> ctypes.c_uint64:
3278
+ return value._uniffi_clone_handle()
3279
+
3280
+ @classmethod
3281
+ def read(cls, buf: _UniffiRustBuffer) -> Wma:
3282
+ ptr = buf.read_u64()
3283
+ if ptr == 0:
3284
+ raise InternalError("Raw handle value was null")
3285
+ return cls.lift(ptr)
3286
+
3287
+ @classmethod
3288
+ def write(cls, value: Wma, buf: _UniffiRustBuffer):
3289
+ buf.write_u64(cls.lower(value))
3290
+
3291
+ class _UniffiFfiConverterSequenceFloat64(_UniffiConverterRustBuffer):
3292
+ @classmethod
3293
+ def check_lower(cls, value):
3294
+ for item in value:
3295
+ _UniffiFfiConverterFloat64.check_lower(item)
3296
+
3297
+ @classmethod
3298
+ def write(cls, value, buf):
3299
+ items = len(value)
3300
+ buf.write_i32(items)
3301
+ for item in value:
3302
+ _UniffiFfiConverterFloat64.write(item, buf)
3303
+
3304
+ @classmethod
3305
+ def read(cls, buf):
3306
+ count = buf.read_i32()
3307
+ if count < 0:
3308
+ raise InternalError("Unexpected negative sequence length")
3309
+
3310
+ return [
3311
+ _UniffiFfiConverterFloat64.read(buf) for i in range(count)
3312
+ ]
3313
+
3314
+ class _UniffiFfiConverterUInt64(_UniffiConverterPrimitiveInt):
3315
+ CLASS_NAME = "u64"
3316
+ VALUE_MIN = 0
3317
+ VALUE_MAX = 2**64
3318
+
3319
+ @staticmethod
3320
+ def read(buf):
3321
+ return buf.read_u64()
3322
+
3323
+ @staticmethod
3324
+ def write(value, buf):
3325
+ buf.write_u64(value)
3326
+
3327
+ class _UniffiFfiConverterSequenceTypeAroonResult(_UniffiConverterRustBuffer):
3328
+ @classmethod
3329
+ def check_lower(cls, value):
3330
+ for item in value:
3331
+ _UniffiFfiConverterTypeAroonResult.check_lower(item)
3332
+
3333
+ @classmethod
3334
+ def write(cls, value, buf):
3335
+ items = len(value)
3336
+ buf.write_i32(items)
3337
+ for item in value:
3338
+ _UniffiFfiConverterTypeAroonResult.write(item, buf)
3339
+
3340
+ @classmethod
3341
+ def read(cls, buf):
3342
+ count = buf.read_i32()
3343
+ if count < 0:
3344
+ raise InternalError("Unexpected negative sequence length")
3345
+
3346
+ return [
3347
+ _UniffiFfiConverterTypeAroonResult.read(buf) for i in range(count)
3348
+ ]
3349
+
3350
+ class _UniffiFfiConverterSequenceTypeBbandsResult(_UniffiConverterRustBuffer):
3351
+ @classmethod
3352
+ def check_lower(cls, value):
3353
+ for item in value:
3354
+ _UniffiFfiConverterTypeBbandsResult.check_lower(item)
3355
+
3356
+ @classmethod
3357
+ def write(cls, value, buf):
3358
+ items = len(value)
3359
+ buf.write_i32(items)
3360
+ for item in value:
3361
+ _UniffiFfiConverterTypeBbandsResult.write(item, buf)
3362
+
3363
+ @classmethod
3364
+ def read(cls, buf):
3365
+ count = buf.read_i32()
3366
+ if count < 0:
3367
+ raise InternalError("Unexpected negative sequence length")
3368
+
3369
+ return [
3370
+ _UniffiFfiConverterTypeBbandsResult.read(buf) for i in range(count)
3371
+ ]
3372
+
3373
+ class _UniffiFfiConverterSequenceTypeIchimokuResult(_UniffiConverterRustBuffer):
3374
+ @classmethod
3375
+ def check_lower(cls, value):
3376
+ for item in value:
3377
+ _UniffiFfiConverterTypeIchimokuResult.check_lower(item)
3378
+
3379
+ @classmethod
3380
+ def write(cls, value, buf):
3381
+ items = len(value)
3382
+ buf.write_i32(items)
3383
+ for item in value:
3384
+ _UniffiFfiConverterTypeIchimokuResult.write(item, buf)
3385
+
3386
+ @classmethod
3387
+ def read(cls, buf):
3388
+ count = buf.read_i32()
3389
+ if count < 0:
3390
+ raise InternalError("Unexpected negative sequence length")
3391
+
3392
+ return [
3393
+ _UniffiFfiConverterTypeIchimokuResult.read(buf) for i in range(count)
3394
+ ]
3395
+
3396
+ class _UniffiFfiConverterSequenceTypeMacdResult(_UniffiConverterRustBuffer):
3397
+ @classmethod
3398
+ def check_lower(cls, value):
3399
+ for item in value:
3400
+ _UniffiFfiConverterTypeMacdResult.check_lower(item)
3401
+
3402
+ @classmethod
3403
+ def write(cls, value, buf):
3404
+ items = len(value)
3405
+ buf.write_i32(items)
3406
+ for item in value:
3407
+ _UniffiFfiConverterTypeMacdResult.write(item, buf)
3408
+
3409
+ @classmethod
3410
+ def read(cls, buf):
3411
+ count = buf.read_i32()
3412
+ if count < 0:
3413
+ raise InternalError("Unexpected negative sequence length")
3414
+
3415
+ return [
3416
+ _UniffiFfiConverterTypeMacdResult.read(buf) for i in range(count)
3417
+ ]
3418
+
3419
+ class _UniffiFfiConverterSequenceTypeMamaResult(_UniffiConverterRustBuffer):
3420
+ @classmethod
3421
+ def check_lower(cls, value):
3422
+ for item in value:
3423
+ _UniffiFfiConverterTypeMamaResult.check_lower(item)
3424
+
3425
+ @classmethod
3426
+ def write(cls, value, buf):
3427
+ items = len(value)
3428
+ buf.write_i32(items)
3429
+ for item in value:
3430
+ _UniffiFfiConverterTypeMamaResult.write(item, buf)
3431
+
3432
+ @classmethod
3433
+ def read(cls, buf):
3434
+ count = buf.read_i32()
3435
+ if count < 0:
3436
+ raise InternalError("Unexpected negative sequence length")
3437
+
3438
+ return [
3439
+ _UniffiFfiConverterTypeMamaResult.read(buf) for i in range(count)
3440
+ ]
3441
+
3442
+ class _UniffiFfiConverterSequenceTypeStochResult(_UniffiConverterRustBuffer):
3443
+ @classmethod
3444
+ def check_lower(cls, value):
3445
+ for item in value:
3446
+ _UniffiFfiConverterTypeStochResult.check_lower(item)
3447
+
3448
+ @classmethod
3449
+ def write(cls, value, buf):
3450
+ items = len(value)
3451
+ buf.write_i32(items)
3452
+ for item in value:
3453
+ _UniffiFfiConverterTypeStochResult.write(item, buf)
3454
+
3455
+ @classmethod
3456
+ def read(cls, buf):
3457
+ count = buf.read_i32()
3458
+ if count < 0:
3459
+ raise InternalError("Unexpected negative sequence length")
3460
+
3461
+ return [
3462
+ _UniffiFfiConverterTypeStochResult.read(buf) for i in range(count)
3463
+ ]
3464
+
3465
+ class _UniffiFfiConverterSequenceTypeSuperTrendResult(_UniffiConverterRustBuffer):
3466
+ @classmethod
3467
+ def check_lower(cls, value):
3468
+ for item in value:
3469
+ _UniffiFfiConverterTypeSuperTrendResult.check_lower(item)
3470
+
3471
+ @classmethod
3472
+ def write(cls, value, buf):
3473
+ items = len(value)
3474
+ buf.write_i32(items)
3475
+ for item in value:
3476
+ _UniffiFfiConverterTypeSuperTrendResult.write(item, buf)
3477
+
3478
+ @classmethod
3479
+ def read(cls, buf):
3480
+ count = buf.read_i32()
3481
+ if count < 0:
3482
+ raise InternalError("Unexpected negative sequence length")
3483
+
3484
+ return [
3485
+ _UniffiFfiConverterTypeSuperTrendResult.read(buf) for i in range(count)
3486
+ ]
3487
+
3488
+ class _UniffiFfiConverterString:
3489
+ @staticmethod
3490
+ def check_lower(value):
3491
+ if not isinstance(value, str):
3492
+ raise TypeError("argument must be str, not {}".format(type(value).__name__))
3493
+ return value
3494
+
3495
+ @staticmethod
3496
+ def read(buf):
3497
+ size = buf.read_i32()
3498
+ if size < 0:
3499
+ raise InternalError("Unexpected negative string length")
3500
+ utf8_bytes = buf.read(size)
3501
+ return utf8_bytes.decode("utf-8")
3502
+
3503
+ @staticmethod
3504
+ def write(value, buf):
3505
+ utf8_bytes = value.encode("utf-8")
3506
+ buf.write_i32(len(utf8_bytes))
3507
+ buf.write(utf8_bytes)
3508
+
3509
+ @staticmethod
3510
+ def lift(buf):
3511
+ with buf.consume_with_stream() as stream:
3512
+ return stream.read(stream.remaining()).decode("utf-8")
3513
+
3514
+ @staticmethod
3515
+ def lower(value):
3516
+ with _UniffiRustBuffer.alloc_with_builder() as builder:
3517
+ builder.write(value.encode("utf-8"))
3518
+ return builder.finalize()
3519
+ def adx(high: typing.List[float],low: typing.List[float],close: typing.List[float],period: int) -> typing.List[float]:
3520
+
3521
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3522
+
3523
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3524
+
3525
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3526
+
3527
+ _UniffiFfiConverterUInt64.check_lower(period)
3528
+ _uniffi_lowered_args = (
3529
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3530
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3531
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3532
+ _UniffiFfiConverterUInt64.lower(period),
3533
+ )
3534
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3535
+ _uniffi_error_converter = None
3536
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3537
+ _uniffi_error_converter,
3538
+ _UniffiLib.uniffi_quantwave_python_fn_func_adx,
3539
+ *_uniffi_lowered_args,
3540
+ )
3541
+ return _uniffi_lift_return(_uniffi_ffi_result)
3542
+ def aroon(high: typing.List[float],low: typing.List[float],period: int) -> typing.List[AroonResult]:
3543
+
3544
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3545
+
3546
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3547
+
3548
+ _UniffiFfiConverterUInt64.check_lower(period)
3549
+ _uniffi_lowered_args = (
3550
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3551
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3552
+ _UniffiFfiConverterUInt64.lower(period),
3553
+ )
3554
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeAroonResult.lift
3555
+ _uniffi_error_converter = None
3556
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3557
+ _uniffi_error_converter,
3558
+ _UniffiLib.uniffi_quantwave_python_fn_func_aroon,
3559
+ *_uniffi_lowered_args,
3560
+ )
3561
+ return _uniffi_lift_return(_uniffi_ffi_result)
3562
+ def atr(high: typing.List[float],low: typing.List[float],close: typing.List[float],period: int) -> typing.List[float]:
3563
+
3564
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3565
+
3566
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3567
+
3568
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3569
+
3570
+ _UniffiFfiConverterUInt64.check_lower(period)
3571
+ _uniffi_lowered_args = (
3572
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3573
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3574
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3575
+ _UniffiFfiConverterUInt64.lower(period),
3576
+ )
3577
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3578
+ _uniffi_error_converter = None
3579
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3580
+ _uniffi_error_converter,
3581
+ _UniffiLib.uniffi_quantwave_python_fn_func_atr,
3582
+ *_uniffi_lowered_args,
3583
+ )
3584
+ return _uniffi_lift_return(_uniffi_ffi_result)
3585
+ def bbands(series: typing.List[float],period: int,nbdevup: float,nbdevdn: float) -> typing.List[BbandsResult]:
3586
+
3587
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3588
+
3589
+ _UniffiFfiConverterUInt64.check_lower(period)
3590
+
3591
+ _UniffiFfiConverterFloat64.check_lower(nbdevup)
3592
+
3593
+ _UniffiFfiConverterFloat64.check_lower(nbdevdn)
3594
+ _uniffi_lowered_args = (
3595
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3596
+ _UniffiFfiConverterUInt64.lower(period),
3597
+ _UniffiFfiConverterFloat64.lower(nbdevup),
3598
+ _UniffiFfiConverterFloat64.lower(nbdevdn),
3599
+ )
3600
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeBbandsResult.lift
3601
+ _uniffi_error_converter = None
3602
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3603
+ _uniffi_error_converter,
3604
+ _UniffiLib.uniffi_quantwave_python_fn_func_bbands,
3605
+ *_uniffi_lowered_args,
3606
+ )
3607
+ return _uniffi_lift_return(_uniffi_ffi_result)
3608
+ def cci(high: typing.List[float],low: typing.List[float],close: typing.List[float],period: int) -> typing.List[float]:
3609
+
3610
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3611
+
3612
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3613
+
3614
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3615
+
3616
+ _UniffiFfiConverterUInt64.check_lower(period)
3617
+ _uniffi_lowered_args = (
3618
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3619
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3620
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3621
+ _UniffiFfiConverterUInt64.lower(period),
3622
+ )
3623
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3624
+ _uniffi_error_converter = None
3625
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3626
+ _uniffi_error_converter,
3627
+ _UniffiLib.uniffi_quantwave_python_fn_func_cci,
3628
+ *_uniffi_lowered_args,
3629
+ )
3630
+ return _uniffi_lift_return(_uniffi_ffi_result)
3631
+ def dema(series: typing.List[float],period: int) -> typing.List[float]:
3632
+
3633
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3634
+
3635
+ _UniffiFfiConverterUInt64.check_lower(period)
3636
+ _uniffi_lowered_args = (
3637
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3638
+ _UniffiFfiConverterUInt64.lower(period),
3639
+ )
3640
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3641
+ _uniffi_error_converter = None
3642
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3643
+ _uniffi_error_converter,
3644
+ _UniffiLib.uniffi_quantwave_python_fn_func_dema,
3645
+ *_uniffi_lowered_args,
3646
+ )
3647
+ return _uniffi_lift_return(_uniffi_ffi_result)
3648
+ def ema(series: typing.List[float],period: int) -> typing.List[float]:
3649
+
3650
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3651
+
3652
+ _UniffiFfiConverterUInt64.check_lower(period)
3653
+ _uniffi_lowered_args = (
3654
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3655
+ _UniffiFfiConverterUInt64.lower(period),
3656
+ )
3657
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3658
+ _uniffi_error_converter = None
3659
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3660
+ _uniffi_error_converter,
3661
+ _UniffiLib.uniffi_quantwave_python_fn_func_ema,
3662
+ *_uniffi_lowered_args,
3663
+ )
3664
+ return _uniffi_lift_return(_uniffi_ffi_result)
3665
+ def ichimoku_batch(high: typing.List[float],low: typing.List[float],tenkan: int,kijun: int,senkou_b: int) -> typing.List[IchimokuResult]:
3666
+
3667
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3668
+
3669
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3670
+
3671
+ _UniffiFfiConverterUInt64.check_lower(tenkan)
3672
+
3673
+ _UniffiFfiConverterUInt64.check_lower(kijun)
3674
+
3675
+ _UniffiFfiConverterUInt64.check_lower(senkou_b)
3676
+ _uniffi_lowered_args = (
3677
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3678
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3679
+ _UniffiFfiConverterUInt64.lower(tenkan),
3680
+ _UniffiFfiConverterUInt64.lower(kijun),
3681
+ _UniffiFfiConverterUInt64.lower(senkou_b),
3682
+ )
3683
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeIchimokuResult.lift
3684
+ _uniffi_error_converter = None
3685
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3686
+ _uniffi_error_converter,
3687
+ _UniffiLib.uniffi_quantwave_python_fn_func_ichimoku_batch,
3688
+ *_uniffi_lowered_args,
3689
+ )
3690
+ return _uniffi_lift_return(_uniffi_ffi_result)
3691
+ def kama(series: typing.List[float],period: int) -> typing.List[float]:
3692
+
3693
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3694
+
3695
+ _UniffiFfiConverterUInt64.check_lower(period)
3696
+ _uniffi_lowered_args = (
3697
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3698
+ _UniffiFfiConverterUInt64.lower(period),
3699
+ )
3700
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3701
+ _uniffi_error_converter = None
3702
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3703
+ _uniffi_error_converter,
3704
+ _UniffiLib.uniffi_quantwave_python_fn_func_kama,
3705
+ *_uniffi_lowered_args,
3706
+ )
3707
+ return _uniffi_lift_return(_uniffi_ffi_result)
3708
+ def macd(series: typing.List[float],fast_period: int,slow_period: int,signal_period: int) -> typing.List[MacdResult]:
3709
+
3710
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3711
+
3712
+ _UniffiFfiConverterUInt64.check_lower(fast_period)
3713
+
3714
+ _UniffiFfiConverterUInt64.check_lower(slow_period)
3715
+
3716
+ _UniffiFfiConverterUInt64.check_lower(signal_period)
3717
+ _uniffi_lowered_args = (
3718
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3719
+ _UniffiFfiConverterUInt64.lower(fast_period),
3720
+ _UniffiFfiConverterUInt64.lower(slow_period),
3721
+ _UniffiFfiConverterUInt64.lower(signal_period),
3722
+ )
3723
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeMacdResult.lift
3724
+ _uniffi_error_converter = None
3725
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3726
+ _uniffi_error_converter,
3727
+ _UniffiLib.uniffi_quantwave_python_fn_func_macd,
3728
+ *_uniffi_lowered_args,
3729
+ )
3730
+ return _uniffi_lift_return(_uniffi_ffi_result)
3731
+ def mama(series: typing.List[float],fastlimit: float,slowlimit: float) -> typing.List[MamaResult]:
3732
+
3733
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3734
+
3735
+ _UniffiFfiConverterFloat64.check_lower(fastlimit)
3736
+
3737
+ _UniffiFfiConverterFloat64.check_lower(slowlimit)
3738
+ _uniffi_lowered_args = (
3739
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3740
+ _UniffiFfiConverterFloat64.lower(fastlimit),
3741
+ _UniffiFfiConverterFloat64.lower(slowlimit),
3742
+ )
3743
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeMamaResult.lift
3744
+ _uniffi_error_converter = None
3745
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3746
+ _uniffi_error_converter,
3747
+ _UniffiLib.uniffi_quantwave_python_fn_func_mama,
3748
+ *_uniffi_lowered_args,
3749
+ )
3750
+ return _uniffi_lift_return(_uniffi_ffi_result)
3751
+ def mom(series: typing.List[float],period: int) -> typing.List[float]:
3752
+
3753
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3754
+
3755
+ _UniffiFfiConverterUInt64.check_lower(period)
3756
+ _uniffi_lowered_args = (
3757
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3758
+ _UniffiFfiConverterUInt64.lower(period),
3759
+ )
3760
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3761
+ _uniffi_error_converter = None
3762
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3763
+ _uniffi_error_converter,
3764
+ _UniffiLib.uniffi_quantwave_python_fn_func_mom,
3765
+ *_uniffi_lowered_args,
3766
+ )
3767
+ return _uniffi_lift_return(_uniffi_ffi_result)
3768
+ def roc(series: typing.List[float],period: int) -> typing.List[float]:
3769
+
3770
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3771
+
3772
+ _UniffiFfiConverterUInt64.check_lower(period)
3773
+ _uniffi_lowered_args = (
3774
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3775
+ _UniffiFfiConverterUInt64.lower(period),
3776
+ )
3777
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3778
+ _uniffi_error_converter = None
3779
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3780
+ _uniffi_error_converter,
3781
+ _UniffiLib.uniffi_quantwave_python_fn_func_roc,
3782
+ *_uniffi_lowered_args,
3783
+ )
3784
+ return _uniffi_lift_return(_uniffi_ffi_result)
3785
+ def rsi(series: typing.List[float],period: int) -> typing.List[float]:
3786
+
3787
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3788
+
3789
+ _UniffiFfiConverterUInt64.check_lower(period)
3790
+ _uniffi_lowered_args = (
3791
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3792
+ _UniffiFfiConverterUInt64.lower(period),
3793
+ )
3794
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3795
+ _uniffi_error_converter = None
3796
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3797
+ _uniffi_error_converter,
3798
+ _UniffiLib.uniffi_quantwave_python_fn_func_rsi,
3799
+ *_uniffi_lowered_args,
3800
+ )
3801
+ return _uniffi_lift_return(_uniffi_ffi_result)
3802
+ def sar(high: typing.List[float],low: typing.List[float],acceleration: float,maximum: float) -> typing.List[float]:
3803
+
3804
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3805
+
3806
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3807
+
3808
+ _UniffiFfiConverterFloat64.check_lower(acceleration)
3809
+
3810
+ _UniffiFfiConverterFloat64.check_lower(maximum)
3811
+ _uniffi_lowered_args = (
3812
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3813
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3814
+ _UniffiFfiConverterFloat64.lower(acceleration),
3815
+ _UniffiFfiConverterFloat64.lower(maximum),
3816
+ )
3817
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3818
+ _uniffi_error_converter = None
3819
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3820
+ _uniffi_error_converter,
3821
+ _UniffiLib.uniffi_quantwave_python_fn_func_sar,
3822
+ *_uniffi_lowered_args,
3823
+ )
3824
+ return _uniffi_lift_return(_uniffi_ffi_result)
3825
+ def sma(series: typing.List[float],period: int) -> typing.List[float]:
3826
+
3827
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3828
+
3829
+ _UniffiFfiConverterUInt64.check_lower(period)
3830
+ _uniffi_lowered_args = (
3831
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3832
+ _UniffiFfiConverterUInt64.lower(period),
3833
+ )
3834
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3835
+ _uniffi_error_converter = None
3836
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3837
+ _uniffi_error_converter,
3838
+ _UniffiLib.uniffi_quantwave_python_fn_func_sma,
3839
+ *_uniffi_lowered_args,
3840
+ )
3841
+ return _uniffi_lift_return(_uniffi_ffi_result)
3842
+ def stoch(high: typing.List[float],low: typing.List[float],close: typing.List[float],fastk_period: int,slowk_period: int,slowd_period: int) -> typing.List[StochResult]:
3843
+
3844
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3845
+
3846
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3847
+
3848
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3849
+
3850
+ _UniffiFfiConverterUInt64.check_lower(fastk_period)
3851
+
3852
+ _UniffiFfiConverterUInt64.check_lower(slowk_period)
3853
+
3854
+ _UniffiFfiConverterUInt64.check_lower(slowd_period)
3855
+ _uniffi_lowered_args = (
3856
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3857
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3858
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3859
+ _UniffiFfiConverterUInt64.lower(fastk_period),
3860
+ _UniffiFfiConverterUInt64.lower(slowk_period),
3861
+ _UniffiFfiConverterUInt64.lower(slowd_period),
3862
+ )
3863
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeStochResult.lift
3864
+ _uniffi_error_converter = None
3865
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3866
+ _uniffi_error_converter,
3867
+ _UniffiLib.uniffi_quantwave_python_fn_func_stoch,
3868
+ *_uniffi_lowered_args,
3869
+ )
3870
+ return _uniffi_lift_return(_uniffi_ffi_result)
3871
+ def supertrend_batch(high: typing.List[float],low: typing.List[float],close: typing.List[float],period: int,multiplier: float) -> typing.List[SuperTrendResult]:
3872
+
3873
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3874
+
3875
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3876
+
3877
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3878
+
3879
+ _UniffiFfiConverterUInt64.check_lower(period)
3880
+
3881
+ _UniffiFfiConverterFloat64.check_lower(multiplier)
3882
+ _uniffi_lowered_args = (
3883
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3884
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3885
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3886
+ _UniffiFfiConverterUInt64.lower(period),
3887
+ _UniffiFfiConverterFloat64.lower(multiplier),
3888
+ )
3889
+ _uniffi_lift_return = _UniffiFfiConverterSequenceTypeSuperTrendResult.lift
3890
+ _uniffi_error_converter = None
3891
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3892
+ _uniffi_error_converter,
3893
+ _UniffiLib.uniffi_quantwave_python_fn_func_supertrend_batch,
3894
+ *_uniffi_lowered_args,
3895
+ )
3896
+ return _uniffi_lift_return(_uniffi_ffi_result)
3897
+ def t3(series: typing.List[float],period: int,v_factor: float) -> typing.List[float]:
3898
+
3899
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3900
+
3901
+ _UniffiFfiConverterUInt64.check_lower(period)
3902
+
3903
+ _UniffiFfiConverterFloat64.check_lower(v_factor)
3904
+ _uniffi_lowered_args = (
3905
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3906
+ _UniffiFfiConverterUInt64.lower(period),
3907
+ _UniffiFfiConverterFloat64.lower(v_factor),
3908
+ )
3909
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3910
+ _uniffi_error_converter = None
3911
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3912
+ _uniffi_error_converter,
3913
+ _UniffiLib.uniffi_quantwave_python_fn_func_t3,
3914
+ *_uniffi_lowered_args,
3915
+ )
3916
+ return _uniffi_lift_return(_uniffi_ffi_result)
3917
+ def tema(series: typing.List[float],period: int) -> typing.List[float]:
3918
+
3919
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3920
+
3921
+ _UniffiFfiConverterUInt64.check_lower(period)
3922
+ _uniffi_lowered_args = (
3923
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3924
+ _UniffiFfiConverterUInt64.lower(period),
3925
+ )
3926
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3927
+ _uniffi_error_converter = None
3928
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3929
+ _uniffi_error_converter,
3930
+ _UniffiLib.uniffi_quantwave_python_fn_func_tema,
3931
+ *_uniffi_lowered_args,
3932
+ )
3933
+ return _uniffi_lift_return(_uniffi_ffi_result)
3934
+ def willr(high: typing.List[float],low: typing.List[float],close: typing.List[float],period: int) -> typing.List[float]:
3935
+
3936
+ _UniffiFfiConverterSequenceFloat64.check_lower(high)
3937
+
3938
+ _UniffiFfiConverterSequenceFloat64.check_lower(low)
3939
+
3940
+ _UniffiFfiConverterSequenceFloat64.check_lower(close)
3941
+
3942
+ _UniffiFfiConverterUInt64.check_lower(period)
3943
+ _uniffi_lowered_args = (
3944
+ _UniffiFfiConverterSequenceFloat64.lower(high),
3945
+ _UniffiFfiConverterSequenceFloat64.lower(low),
3946
+ _UniffiFfiConverterSequenceFloat64.lower(close),
3947
+ _UniffiFfiConverterUInt64.lower(period),
3948
+ )
3949
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3950
+ _uniffi_error_converter = None
3951
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3952
+ _uniffi_error_converter,
3953
+ _UniffiLib.uniffi_quantwave_python_fn_func_willr,
3954
+ *_uniffi_lowered_args,
3955
+ )
3956
+ return _uniffi_lift_return(_uniffi_ffi_result)
3957
+ def wma(series: typing.List[float],period: int) -> typing.List[float]:
3958
+
3959
+ _UniffiFfiConverterSequenceFloat64.check_lower(series)
3960
+
3961
+ _UniffiFfiConverterUInt64.check_lower(period)
3962
+ _uniffi_lowered_args = (
3963
+ _UniffiFfiConverterSequenceFloat64.lower(series),
3964
+ _UniffiFfiConverterUInt64.lower(period),
3965
+ )
3966
+ _uniffi_lift_return = _UniffiFfiConverterSequenceFloat64.lift
3967
+ _uniffi_error_converter = None
3968
+ _uniffi_ffi_result = _uniffi_rust_call_with_error(
3969
+ _uniffi_error_converter,
3970
+ _UniffiLib.uniffi_quantwave_python_fn_func_wma,
3971
+ *_uniffi_lowered_args,
3972
+ )
3973
+ return _uniffi_lift_return(_uniffi_ffi_result)
3974
+
3975
+ __all__ = [
3976
+ "InternalError",
3977
+ "AroonResult",
3978
+ "BbandsResult",
3979
+ "IchimokuResult",
3980
+ "MacdResult",
3981
+ "MamaResult",
3982
+ "StochResult",
3983
+ "SuperTrendResult",
3984
+ "adx",
3985
+ "aroon",
3986
+ "atr",
3987
+ "bbands",
3988
+ "cci",
3989
+ "dema",
3990
+ "ema",
3991
+ "ichimoku_batch",
3992
+ "kama",
3993
+ "macd",
3994
+ "mama",
3995
+ "mom",
3996
+ "roc",
3997
+ "rsi",
3998
+ "sar",
3999
+ "sma",
4000
+ "stoch",
4001
+ "supertrend_batch",
4002
+ "t3",
4003
+ "tema",
4004
+ "willr",
4005
+ "wma",
4006
+ "Adx",
4007
+ "AdxProtocol",
4008
+ "Atr",
4009
+ "AtrProtocol",
4010
+ "Bbands",
4011
+ "BbandsProtocol",
4012
+ "Cci",
4013
+ "CciProtocol",
4014
+ "Ema",
4015
+ "EmaProtocol",
4016
+ "Ichimoku",
4017
+ "IchimokuProtocol",
4018
+ "Kama",
4019
+ "KamaProtocol",
4020
+ "Macd",
4021
+ "MacdProtocol",
4022
+ "Mama",
4023
+ "MamaProtocol",
4024
+ "Rsi",
4025
+ "RsiProtocol",
4026
+ "Sar",
4027
+ "SarProtocol",
4028
+ "Sma",
4029
+ "SmaProtocol",
4030
+ "Stoch",
4031
+ "StochProtocol",
4032
+ "SuperTrend",
4033
+ "SuperTrendProtocol",
4034
+ "T3",
4035
+ "T3Protocol",
4036
+ "Wma",
4037
+ "WmaProtocol",
4038
+ ]