onetick-py 1.170.0__py3-none-any.whl → 1.172.0__py3-none-any.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.
- onetick/py/__init__.py +8 -2
- onetick/py/_version.py +1 -1
- onetick/py/cache.py +3 -3
- onetick/py/callback/callbacks.py +1 -1
- onetick/py/configuration.py +35 -9
- onetick/py/core/_source/source_methods/misc.py +1 -1
- onetick/py/core/_source/source_methods/writes.py +48 -33
- onetick/py/core/column_operations/_methods/methods.py +1 -4
- onetick/py/core/column_operations/accessors/_accessor.py +4 -6
- onetick/py/core/column_operations/accessors/decimal_accessor.py +20 -8
- onetick/py/core/column_operations/accessors/dt_accessor.py +137 -68
- onetick/py/core/column_operations/accessors/float_accessor.py +35 -15
- onetick/py/core/column_operations/accessors/str_accessor.py +0 -7
- onetick/py/core/column_operations/base.py +72 -12
- onetick/py/core/multi_output_source.py +41 -2
- onetick/py/core/per_tick_script.py +2 -0
- onetick/py/db/_inspection.py +82 -49
- onetick/py/db/db.py +2 -2
- onetick/py/functions.py +7 -1
- onetick/py/math.py +374 -386
- onetick/py/misc.py +70 -38
- onetick/py/otq.py +18 -12
- onetick/py/run.py +75 -5
- onetick/py/sources/ticks.py +1 -1
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/METADATA +4 -2
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/RECORD +30 -30
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/WHEEL +0 -0
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/entry_points.txt +0 -0
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/licenses/LICENSE +0 -0
- {onetick_py-1.170.0.dist-info → onetick_py-1.172.0.dist-info}/top_level.txt +0 -0
onetick/py/misc.py
CHANGED
|
@@ -3,19 +3,6 @@ from onetick.py.core.column_operations.base import _Operation
|
|
|
3
3
|
from onetick.py.types import value2str, string
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class _BitAndOperator(_Operation):
|
|
7
|
-
def __init__(self, value1, value2):
|
|
8
|
-
super().__init__(dtype=int)
|
|
9
|
-
|
|
10
|
-
def _repr(_value1, _value2):
|
|
11
|
-
return f'BIT_AND({str(_value1)}, {str(_value2)})'
|
|
12
|
-
|
|
13
|
-
self._repr = _repr(value1, value2)
|
|
14
|
-
|
|
15
|
-
def __str__(self):
|
|
16
|
-
return self._repr
|
|
17
|
-
|
|
18
|
-
|
|
19
6
|
def bit_and(value1, value2):
|
|
20
7
|
"""
|
|
21
8
|
Performs the logical AND operation on each pair of corresponding bits of the parameters.
|
|
@@ -55,20 +42,10 @@ def bit_and(value1, value2):
|
|
|
55
42
|
Time A AND
|
|
56
43
|
0 2003-12-01 1 2
|
|
57
44
|
"""
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def __init__(self, value1, value2):
|
|
63
|
-
super().__init__(dtype=int)
|
|
64
|
-
|
|
65
|
-
def _repr(_value1, _value2):
|
|
66
|
-
return f'BIT_OR({str(_value1)}, {str(_value2)})'
|
|
67
|
-
|
|
68
|
-
self._repr = _repr(value1, value2)
|
|
69
|
-
|
|
70
|
-
def __str__(self):
|
|
71
|
-
return self._repr
|
|
45
|
+
return _Operation(
|
|
46
|
+
op_func=lambda v1, v2: (f'BIT_AND({value2str(v1)}, {value2str(v2)})', int),
|
|
47
|
+
op_params=[value1, value2],
|
|
48
|
+
)
|
|
72
49
|
|
|
73
50
|
|
|
74
51
|
def bit_or(value1, value2):
|
|
@@ -110,7 +87,10 @@ def bit_or(value1, value2):
|
|
|
110
87
|
Time A OR
|
|
111
88
|
0 2003-12-01 1 3
|
|
112
89
|
"""
|
|
113
|
-
return
|
|
90
|
+
return _Operation(
|
|
91
|
+
op_func=lambda v1, v2: (f'BIT_OR({value2str(v1)}, {value2str(v2)})', int),
|
|
92
|
+
op_params=[value1, value2],
|
|
93
|
+
)
|
|
114
94
|
|
|
115
95
|
|
|
116
96
|
def bit_xor(value1, value2):
|
|
@@ -152,7 +132,10 @@ def bit_xor(value1, value2):
|
|
|
152
132
|
Time A XOR
|
|
153
133
|
0 2003-12-01 1 1
|
|
154
134
|
"""
|
|
155
|
-
return _Operation(
|
|
135
|
+
return _Operation(
|
|
136
|
+
op_func=lambda v1, v2: (f'BIT_XOR({value2str(v1)}, {value2str(v2)})', int),
|
|
137
|
+
op_params=[value1, value2],
|
|
138
|
+
)
|
|
156
139
|
|
|
157
140
|
|
|
158
141
|
def bit_not(value):
|
|
@@ -193,7 +176,10 @@ def bit_not(value):
|
|
|
193
176
|
Time A NOT
|
|
194
177
|
0 2003-12-01 1 -3
|
|
195
178
|
"""
|
|
196
|
-
return _Operation(
|
|
179
|
+
return _Operation(
|
|
180
|
+
op_func=lambda v: (f'BIT_NOT({value2str(v)})', int),
|
|
181
|
+
op_params=[value],
|
|
182
|
+
)
|
|
197
183
|
|
|
198
184
|
|
|
199
185
|
def bit_at(value, index):
|
|
@@ -235,7 +221,10 @@ def bit_at(value, index):
|
|
|
235
221
|
Time A AT
|
|
236
222
|
0 2003-12-01 1 0
|
|
237
223
|
"""
|
|
238
|
-
return _Operation(
|
|
224
|
+
return _Operation(
|
|
225
|
+
op_func=lambda v, i: (f'BIT_AT({value2str(v)}, {value2str(i)})', int),
|
|
226
|
+
op_params=[value, index],
|
|
227
|
+
)
|
|
239
228
|
|
|
240
229
|
|
|
241
230
|
class _HashCodeOperator(_Operation):
|
|
@@ -262,18 +251,14 @@ class _HashCodeOperator(_Operation):
|
|
|
262
251
|
|
|
263
252
|
dtype = self.HASH_TYPES[hash_type]
|
|
264
253
|
|
|
265
|
-
super().__init__(dtype=dtype)
|
|
266
|
-
|
|
267
254
|
def _repr(_value, _hash_type):
|
|
268
255
|
_value = value2str(_value)
|
|
269
256
|
_hash_type = value2str(_hash_type.upper())
|
|
270
257
|
|
|
271
|
-
return f'COMPUTE_HASH_CODE_STR({_value}, {_hash_type})'
|
|
272
|
-
|
|
273
|
-
self._repr = _repr(value, hash_type)
|
|
258
|
+
return f'COMPUTE_HASH_CODE_STR({_value}, {_hash_type})', dtype
|
|
274
259
|
|
|
275
|
-
|
|
276
|
-
|
|
260
|
+
super().__init__(op_func=_repr,
|
|
261
|
+
op_params=[value, hash_type])
|
|
277
262
|
|
|
278
263
|
|
|
279
264
|
def hash_code(value, hash_type):
|
|
@@ -436,3 +421,50 @@ def get_symbology_mapping(dest_symbology, src_symbology=None, symbol=None, times
|
|
|
436
421
|
op_params=[dest_symbology, src_symbology, symbol, timestamp],
|
|
437
422
|
dtype=str,
|
|
438
423
|
)
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
def get_onetick_version():
|
|
427
|
+
"""
|
|
428
|
+
Returns the string with the build name of OneTick.
|
|
429
|
+
Build string may have different format depending on OneTick version.
|
|
430
|
+
|
|
431
|
+
Note
|
|
432
|
+
----
|
|
433
|
+
The version is returned from the server where the query executes.
|
|
434
|
+
Usually it's the same server where the database specified in :func:`otp.run <onetick.py.run>` resides.
|
|
435
|
+
|
|
436
|
+
Returns
|
|
437
|
+
-------
|
|
438
|
+
:py:class:`~onetick.py.Operation`
|
|
439
|
+
|
|
440
|
+
Examples
|
|
441
|
+
--------
|
|
442
|
+
>>> data = otp.Tick(VERSION=otp.get_onetick_version())
|
|
443
|
+
>>> otp.run(data, symbols='US_COMP::') # doctest: +SKIP
|
|
444
|
+
Time VERSION
|
|
445
|
+
0 2003-12-01 BUILD_rel_20250727_update2 (20250727120000)
|
|
446
|
+
"""
|
|
447
|
+
return _Operation(
|
|
448
|
+
op_func=lambda: ('FORMATMESSAGE("%1% (%2%)", GET_ONETICK_RELEASE(), GET_ONETICK_VERSION())', str),
|
|
449
|
+
)
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
def get_username():
|
|
453
|
+
"""
|
|
454
|
+
Returns the string with the name of the user executing the query
|
|
455
|
+
and authenticated login name of the user.
|
|
456
|
+
|
|
457
|
+
Returns
|
|
458
|
+
-------
|
|
459
|
+
:py:class:`~onetick.py.Operation`
|
|
460
|
+
|
|
461
|
+
Examples
|
|
462
|
+
--------
|
|
463
|
+
>>> data = otp.Tick(USER=otp.get_username())
|
|
464
|
+
>>> otp.run(data) # doctest: +SKIP
|
|
465
|
+
Time USER
|
|
466
|
+
0 2003-12-01 onetick (onetick)
|
|
467
|
+
"""
|
|
468
|
+
return _Operation(
|
|
469
|
+
op_func=lambda: ('FORMATMESSAGE("%1% (%2%)", GETUSER(), GET_AUTHENTICATED_USERNAME())', str),
|
|
470
|
+
)
|
onetick/py/otq.py
CHANGED
|
@@ -160,18 +160,24 @@ elif otp.__webapi__:
|
|
|
160
160
|
if 'https_proxy' not in kwargs:
|
|
161
161
|
kwargs['https_proxy'] = config.https_proxy
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
163
|
+
webapi_run_parameters = inspect.signature(__original_run).parameters
|
|
164
|
+
|
|
165
|
+
trusted_certificate_file_arg = kwargs.pop('trusted_certificates_file',
|
|
166
|
+
kwargs.pop('trusted_certificate_file', None))
|
|
167
|
+
trusted_certificate_file_value = (
|
|
168
|
+
trusted_certificate_file_arg if trusted_certificate_file_arg is not None
|
|
169
|
+
else config.trusted_certificates_file
|
|
170
|
+
)
|
|
171
|
+
if trusted_certificate_file_value is not None:
|
|
172
|
+
trusted_certificates_supported = set(webapi_run_parameters).intersection({'trusted_certificates_file',
|
|
173
|
+
'trusted_certificate_file'})
|
|
174
|
+
if not trusted_certificates_supported:
|
|
175
|
+
raise ValueError(
|
|
176
|
+
"Parameter `trusted_certificates_file` was set,"
|
|
177
|
+
" however current version of OneTick doesn't support it."
|
|
178
|
+
)
|
|
179
|
+
trusted_certificates_supported_param = list(trusted_certificates_supported)[0]
|
|
180
|
+
kwargs[trusted_certificates_supported_param] = trusted_certificate_file_value
|
|
175
181
|
|
|
176
182
|
if 'callback' in kwargs and kwargs['callback'] is not None:
|
|
177
183
|
kwargs['output_mode'] = otq.QueryOutputMode.callback
|
onetick/py/run.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import asyncio
|
|
2
2
|
import inspect
|
|
3
3
|
import datetime
|
|
4
4
|
import warnings
|
|
@@ -76,10 +76,11 @@ def run(query: Union[Callable, Dict, otp.Source, otp.MultiOutputSource, # NOSON
|
|
|
76
76
|
``query`` can also be a function that has a symbol object as the first parameter.
|
|
77
77
|
This object can be used to get symbol name and symbol parameters.
|
|
78
78
|
Function must return a :py:class:`Source <onetick.py.Source>`.
|
|
79
|
-
symbols: str, list of str, list of otq.Symbol, :py:class:`onetick.py.Source`,
|
|
80
|
-
Symbol(s) to run the query for passed as a string, a list of strings,
|
|
81
|
-
|
|
82
|
-
symbols query
|
|
79
|
+
symbols: str, list of str, list of otq.Symbol, :py:class:`onetick.py.Source`, :pandas:`pandas.DataFrame`, optional
|
|
80
|
+
Symbol(s) to run the query for passed as a string, a list of strings,
|
|
81
|
+
a :pandas:`pandas.DataFrame` with the ``SYMBOL_NAME`` column,
|
|
82
|
+
or as a "symbols" query which results include the ``SYMBOL_NAME`` column.
|
|
83
|
+
The start/end times for the symbols query will taken from the params below.
|
|
83
84
|
See :ref:`symbols <static/concepts/symbols:Symbols: bound and unbound>` for more details.
|
|
84
85
|
start: :py:class:`datetime.datetime`, :py:class:`otp.datetime <onetick.py.datetime>`,\
|
|
85
86
|
:py:class:`pyomd.timeval_t`, optional
|
|
@@ -610,6 +611,75 @@ def run(query: Union[Callable, Dict, otp.Source, otp.MultiOutputSource, # NOSON
|
|
|
610
611
|
require_dict=require_dict, node_names=node_names)
|
|
611
612
|
|
|
612
613
|
|
|
614
|
+
async def run_async(*args, **kwargs):
|
|
615
|
+
"""
|
|
616
|
+
Asynchronous alternative to :func:`otp.run <onetick.py.run>`.
|
|
617
|
+
|
|
618
|
+
All parameters are the same.
|
|
619
|
+
|
|
620
|
+
This function can be used via built-in python ``await`` syntax
|
|
621
|
+
and standard `asyncio <https://docs.python.org/3/library/asyncio.html>`_ library.
|
|
622
|
+
|
|
623
|
+
Note
|
|
624
|
+
----
|
|
625
|
+
Internally this function is implemented as :func:`otp.run <onetick.py.run>` running in a separate thread.
|
|
626
|
+
|
|
627
|
+
Threads in python are generally not interruptable,
|
|
628
|
+
so some `asyncio` functionality may not work as expected.
|
|
629
|
+
|
|
630
|
+
For example, canceling :func:`otp.run_async <onetick.py.run_async>` task by
|
|
631
|
+
`timeout <https://docs.python.org/3/library/asyncio-task.html#timeouts>`_
|
|
632
|
+
may block the waiting function
|
|
633
|
+
or exiting the python process will block until the task is finished,
|
|
634
|
+
depending on python and `asyncio` back-end implementation.
|
|
635
|
+
|
|
636
|
+
Examples
|
|
637
|
+
--------
|
|
638
|
+
|
|
639
|
+
>>> data = otp.Ticks(A=[1, 2, 3])
|
|
640
|
+
|
|
641
|
+
Calling :func:`otp.run_async <onetick.py.run_async>` will create a "coroutine" object:
|
|
642
|
+
|
|
643
|
+
>>> otp.run_async(data) # doctest: +SKIP
|
|
644
|
+
<coroutine object run_async at ...>
|
|
645
|
+
|
|
646
|
+
Use `asyncio.run <https://docs.python.org/3/library/asyncio-runner.html#asyncio.run>`_
|
|
647
|
+
to run this coroutine and wait for it to finish:
|
|
648
|
+
|
|
649
|
+
>>> asyncio.run(otp.run_async(data))
|
|
650
|
+
Time A
|
|
651
|
+
0 2003-12-01 00:00:00.000 1
|
|
652
|
+
1 2003-12-01 00:00:00.001 2
|
|
653
|
+
2 2003-12-01 00:00:00.002 3
|
|
654
|
+
|
|
655
|
+
You can use standard `asyncio <https://docs.python.org/3/library/asyncio.html>`_
|
|
656
|
+
library functions to create and schedule tasks.
|
|
657
|
+
|
|
658
|
+
In the example below two tasks are executed in parallel,
|
|
659
|
+
so total execution time will be around 3 seconds instead of 6:
|
|
660
|
+
|
|
661
|
+
>>> import asyncio
|
|
662
|
+
>>> import time
|
|
663
|
+
>>> async def parallel_tasks():
|
|
664
|
+
... # pause 1 second on each tick (thus 3 seconds for 3 ticks)
|
|
665
|
+
... task_otp = asyncio.create_task(otp.run_async(data.pause(1000)))
|
|
666
|
+
... # just sleep for 3 seconds
|
|
667
|
+
... task_other = asyncio.create_task(asyncio.sleep(3))
|
|
668
|
+
... otp_result = await task_otp
|
|
669
|
+
... await task_other
|
|
670
|
+
... print(otp_result)
|
|
671
|
+
>>> start_time = time.time()
|
|
672
|
+
>>> asyncio.run(parallel_tasks())
|
|
673
|
+
Time A
|
|
674
|
+
0 2003-12-01 00:00:00.000 1
|
|
675
|
+
1 2003-12-01 00:00:00.001 2
|
|
676
|
+
2 2003-12-01 00:00:00.002 3
|
|
677
|
+
>>> print('Finished in', time.time() - start_time, 'seconds') # doctest: +SKIP
|
|
678
|
+
Finished in 3.0108885765075684 seconds
|
|
679
|
+
"""
|
|
680
|
+
return await asyncio.to_thread(run, *args, **kwargs)
|
|
681
|
+
|
|
682
|
+
|
|
613
683
|
def _filter_returned_map_by_node(result, _node_names):
|
|
614
684
|
"""
|
|
615
685
|
Here, result has the following format: {symbol: {node_name: data}}
|
onetick/py/sources/ticks.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: onetick-py
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.172.0
|
|
4
4
|
Summary: Python package that allows you to work with OneTick
|
|
5
5
|
Author-email: solutions <solutions@onetick.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -85,7 +85,7 @@ The latest version of ``onetick-py`` is available on PyPI: <https://pypi.org/pro
|
|
|
85
85
|
|
|
86
86
|
pip install onetick-py[webapi]
|
|
87
87
|
|
|
88
|
-
Use ``webapi`` extra to easily use it with remote OneTick Cloud
|
|
88
|
+
Use ``webapi`` extra to easily use it with remote OneTick REST Servers, such as [OneTick Cloud](https://www.onetick.com/cloud-services).
|
|
89
89
|
|
|
90
90
|
See [Getting Started](https://docs.pip.distribution.sol.onetick.com/static/getting_started/root.html)
|
|
91
91
|
section in the documentation to see how quickly set up ``onetick-py`` configuration
|
|
@@ -112,6 +112,8 @@ section in the documentation.
|
|
|
112
112
|
- **Data Visualization**: Compatible with OneTick's visualization tool, OneTick Dashboard.
|
|
113
113
|
- **Machine Learning**: Integrates with the OneTick ML library [onetick-ml](https://dsframework.pip.distribution.sol.onetick.com/intro.html).
|
|
114
114
|
- **Industry Applications**: Industry leading OneTick's Trade Surveillance and BestEx/TCA solutions are written in ``onetick.py``.
|
|
115
|
+
- **Back Testing**: Retrieve historic market data and metrics.
|
|
116
|
+
- **Market Microstructure**: Consolidated Book Depth analysis.
|
|
115
117
|
|
|
116
118
|
## Advantages Over Competitors
|
|
117
119
|
|
|
@@ -11,21 +11,21 @@ onetick/doc_utilities/ot_doctest.py,sha256=AWF-rXyF3BqYSYcxIuImUC1ezbkqxrmaG6DsH
|
|
|
11
11
|
onetick/doc_utilities/snippets.py,sha256=q1mergoBMGxiVOnuWuKIKTMOOJ7O_EWp4SKIesK8piM,8930
|
|
12
12
|
onetick/lib/__init__.py,sha256=Rp7CIDoA4E6LIm1f2mNvl_5b_n-0U3suA3FmBXbmKoU,114
|
|
13
13
|
onetick/lib/instance.py,sha256=3FJB8PWs2ap-EGb6DzsnLRL2meTMUViTdy343m6tHvM,4825
|
|
14
|
-
onetick/py/__init__.py,sha256=
|
|
14
|
+
onetick/py/__init__.py,sha256=Ge1Ekl6OHRjm5KrXojq3AzLCaUGvLNWuaIK0C9DdwWU,11164
|
|
15
15
|
onetick/py/_stack_info.py,sha256=PHZOkW_fK7Fbl4YEj5CaYK9L6vh4j-bUU7_cSYOWZ30,2546
|
|
16
|
-
onetick/py/_version.py,sha256=
|
|
16
|
+
onetick/py/_version.py,sha256=7nbtSF9w76mnK4B_3vuXM8dDMY1zw1fS3UowT04mTiE,76
|
|
17
17
|
onetick/py/backports.py,sha256=mR00mxe7E7UgBljf-Wa93Mo6lpi-C4Op561uhPUoEt8,815
|
|
18
|
-
onetick/py/cache.py,sha256=
|
|
18
|
+
onetick/py/cache.py,sha256=BBZg8n0AGjZzZapg4752LkSZdX5C6DGf7vU9sAStv6A,12798
|
|
19
19
|
onetick/py/compatibility.py,sha256=x-TXsOqPNb2gnARSDwyZba-1FE7bvuat2vrObRCSywo,30917
|
|
20
|
-
onetick/py/configuration.py,sha256=
|
|
21
|
-
onetick/py/functions.py,sha256=
|
|
20
|
+
onetick/py/configuration.py,sha256=cMUl6XNjO3qgpO5PmOplb2uFSAQtWPu7pIUNhhRpjL4,28408
|
|
21
|
+
onetick/py/functions.py,sha256=yJKL4thjNh_u-DKY08rCDMGJO_IMAeN2Odu70Q9U3Ew,97937
|
|
22
22
|
onetick/py/license.py,sha256=50dsFrE-NKsPOdkAoyxHr44bH8DzFCr_6TabX0JH6tQ,6140
|
|
23
23
|
onetick/py/log.py,sha256=Els2drZcVjJrD6kvbwgFGEpg6jAacoUEtyN6rCaauuk,2723
|
|
24
|
-
onetick/py/math.py,sha256=
|
|
25
|
-
onetick/py/misc.py,sha256=
|
|
26
|
-
onetick/py/otq.py,sha256=
|
|
24
|
+
onetick/py/math.py,sha256=MZvlyUjxOWGJvmxK8pfMkCr4THM52AE6NyGEidgDMyE,26311
|
|
25
|
+
onetick/py/misc.py,sha256=mD-EJslLGjQ0ROEez76HvOY0tsX8_1bC1QOkyHY9FZ8,13934
|
|
26
|
+
onetick/py/otq.py,sha256=VSdCrp3zTzNQHv9gM_xE4Al4ujBsio7uWk3SqU4eC4Y,8271
|
|
27
27
|
onetick/py/pyomd_mock.py,sha256=A7IIUraN9yCsPhvnHXQUZrmwFjlh7vofSnYm4G7bdsc,2006
|
|
28
|
-
onetick/py/run.py,sha256=
|
|
28
|
+
onetick/py/run.py,sha256=gwbDxjOBioBfIS-X8797QYD4D2VdcY8o8WbRa_XlB-M,40419
|
|
29
29
|
onetick/py/servers.py,sha256=h6l0X55kcnpI25bZcYaBpPAAGBZjqk9mt1SQe4xZrh0,6840
|
|
30
30
|
onetick/py/session.py,sha256=AqoS7BFN_Sz3JU2CAaZm0Bro8CmUy6VjmoDjwOU1wYM,49591
|
|
31
31
|
onetick/py/sql.py,sha256=kJ0732bZ0OGF8x3VzcOUs38zEGsxcd1nZOSN75VKXhA,2993
|
|
@@ -43,7 +43,7 @@ onetick/py/aggregations/order_book.py,sha256=RLzQk0HOG4Why7tNag3pT1GG5nBL_bBnJtI
|
|
|
43
43
|
onetick/py/aggregations/other.py,sha256=wCXrb3BCUJy5e39i35V2tslp0bVR2-8Fa8E1lf45hO4,39410
|
|
44
44
|
onetick/py/callback/__init__.py,sha256=lF6u1jDy0dv-2qBvonqmSaQAU7dWQAuq5FWyR5LzvLI,108
|
|
45
45
|
onetick/py/callback/callback.py,sha256=i8yVsbceqhVxNTcXU2ie0-nBRyC0nS2LVDFFtqfCMlw,8618
|
|
46
|
-
onetick/py/callback/callbacks.py,sha256=
|
|
46
|
+
onetick/py/callback/callbacks.py,sha256=_8Yw_b-OITXUtNTxGJIXm-tz-KfHZYe6SdoyW7-QX4w,5011
|
|
47
47
|
onetick/py/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
48
|
onetick/py/core/_csv_inspector.py,sha256=tSYjaMEeyvKdY4DJEhxDLj6AIvqcW-IdioLbXKZAFQ8,3169
|
|
49
49
|
onetick/py/core/column.py,sha256=KZToU5LoAAg4xeLEeKtlI3YY_wZ6JnJktSgJIyquhVg,6679
|
|
@@ -51,8 +51,8 @@ onetick/py/core/cut_builder.py,sha256=rj5aPJ25Dr5fsd9Dw1SO8k9kPGy0hV06anxFqBppFW
|
|
|
51
51
|
onetick/py/core/db_constants.py,sha256=OqBbBKLECf8Bw8ylw30jc72xgCJ0gRIC-K-QkkbQ4LI,437
|
|
52
52
|
onetick/py/core/eval_query.py,sha256=mcsOVlQ2vNSfZ-tRUB2z1gdiMJw4MpU2fK2hW-ua3e4,11528
|
|
53
53
|
onetick/py/core/lambda_object.py,sha256=ayob_2c2XYSG7vFsqp-2b9FSPD-3TFReLbx3de3tkqE,16812
|
|
54
|
-
onetick/py/core/multi_output_source.py,sha256=
|
|
55
|
-
onetick/py/core/per_tick_script.py,sha256=
|
|
54
|
+
onetick/py/core/multi_output_source.py,sha256=f3dXr9kwmED77oWDFVr9cn44aYiJxC81loq2pX4u50Q,8766
|
|
55
|
+
onetick/py/core/per_tick_script.py,sha256=I3pfidriS1TrFPc3DAABt91GKMgby9P_8KBatiFQx6U,83322
|
|
56
56
|
onetick/py/core/query_inspector.py,sha256=Jwnw7qUVvjvaT63mQ5PkUSy8x36knoxWrNll3aXuLZw,16440
|
|
57
57
|
onetick/py/core/source.py,sha256=AX4DUK1frV_FUCG5sywsn42xYX7Y2sYC7vMCOq6TeRg,63998
|
|
58
58
|
onetick/py/core/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -81,30 +81,30 @@ onetick/py/core/_source/source_methods/fields.py,sha256=6GozvRornClXfEu6oY9-JpN3
|
|
|
81
81
|
onetick/py/core/_source/source_methods/filters.py,sha256=WuSnK-tQsP3fL2bqVfMZpbpPgk_LG4L8lrYULSSGoKE,33930
|
|
82
82
|
onetick/py/core/_source/source_methods/joins.py,sha256=edLIJ-BTWbwvxga1YCzsN6NdhIwtJyZIksZawvPWCbU,61175
|
|
83
83
|
onetick/py/core/_source/source_methods/merges.py,sha256=efk-R4WOjB2pcAIGWPsZsDzYuitADztH5xtRWTBfutk,23115
|
|
84
|
-
onetick/py/core/_source/source_methods/misc.py,sha256=
|
|
84
|
+
onetick/py/core/_source/source_methods/misc.py,sha256=iWXre-Dker16oAnv6kGxyFk2FU_apMGiZQRppcUhr0c,57026
|
|
85
85
|
onetick/py/core/_source/source_methods/pandases.py,sha256=BbvIlw6ipqC2dOiKSyyZ5jhAtE4ZtdL30OZXV_e_FuE,3670
|
|
86
86
|
onetick/py/core/_source/source_methods/renames.py,sha256=T5EXq-oHq5NwApPZfYRDOJPVjclqLqAofRAP-Ykzu2M,13749
|
|
87
87
|
onetick/py/core/_source/source_methods/sorts.py,sha256=tDFt3rObNHP-S_HOtDd6SLpgkCCGJnSDcMUxLake080,5583
|
|
88
88
|
onetick/py/core/_source/source_methods/switches.py,sha256=pcnfT45QWn87qq1pWkvZbqeEoM7lrq8qNPxM8g9raxs,3846
|
|
89
89
|
onetick/py/core/_source/source_methods/symbols.py,sha256=MG0dgVVVJ6fD_-GJkkXEgTeAsfS79ymJWmuKSL-0QSs,3968
|
|
90
90
|
onetick/py/core/_source/source_methods/times.py,sha256=2kbLHG-3RQM6uWmw8pBGDiAz4R83KK46Tp1smTY6SR8,27665
|
|
91
|
-
onetick/py/core/_source/source_methods/writes.py,sha256=
|
|
91
|
+
onetick/py/core/_source/source_methods/writes.py,sha256=fPUbiqlm30Kb4QzXZLtWCsQiTFBDxK5oOWuVyfVXbYM,42717
|
|
92
92
|
onetick/py/core/column_operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
onetick/py/core/column_operations/base.py,sha256=
|
|
93
|
+
onetick/py/core/column_operations/base.py,sha256=Kcwfd4PErCGLSbkqtFKY6SZL1-pksWHB-Pc-5A8I3WM,36135
|
|
94
94
|
onetick/py/core/column_operations/_methods/__init__.py,sha256=_C5hpQG51MingtWW2N8vYzSVFpR314xIrtukBfEfPMk,207
|
|
95
95
|
onetick/py/core/column_operations/_methods/_internal.py,sha256=M04DbbD9DjA3NrrbibuQPje8ylkaYnVB5Nmlwx1RvaE,878
|
|
96
96
|
onetick/py/core/column_operations/_methods/conversions.py,sha256=QB8ZKJi5qlV8ydPn43nRHa3HMkaXCDV2Fkrq2gnVQ6U,7001
|
|
97
|
-
onetick/py/core/column_operations/_methods/methods.py,sha256
|
|
97
|
+
onetick/py/core/column_operations/_methods/methods.py,sha256=OaXiDcdPYXnPlWhwD-BCac5UAecZFnEKCkxBpQOVB5E,11054
|
|
98
98
|
onetick/py/core/column_operations/_methods/op_types.py,sha256=rUMrtIPCp7TYYJIK4f836KxZIcvW60MYv3cYTGMpfRA,5004
|
|
99
99
|
onetick/py/core/column_operations/accessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
|
-
onetick/py/core/column_operations/accessors/_accessor.py,sha256=
|
|
101
|
-
onetick/py/core/column_operations/accessors/decimal_accessor.py,sha256=
|
|
102
|
-
onetick/py/core/column_operations/accessors/dt_accessor.py,sha256=
|
|
103
|
-
onetick/py/core/column_operations/accessors/float_accessor.py,sha256=
|
|
104
|
-
onetick/py/core/column_operations/accessors/str_accessor.py,sha256=
|
|
100
|
+
onetick/py/core/column_operations/accessors/_accessor.py,sha256=b5K4OQmnO4NeFK1QsKjgZ1WfEyBjxKWMkb12RBbnGXQ,983
|
|
101
|
+
onetick/py/core/column_operations/accessors/decimal_accessor.py,sha256=DwgJ-as0p_gex6UGxhxhsn9chSpne5YV-t1ntvr-saw,3345
|
|
102
|
+
onetick/py/core/column_operations/accessors/dt_accessor.py,sha256=UeY7UNUiaLdrX0S68SuEk7gXASGCjJoRdTq0pm30ktQ,18616
|
|
103
|
+
onetick/py/core/column_operations/accessors/float_accessor.py,sha256=IjZNrUzdT_u1szJFOI5ivExbvzC5KwiHwz6CFMMZRo0,5994
|
|
104
|
+
onetick/py/core/column_operations/accessors/str_accessor.py,sha256=kpCQQQJd02yWsTVwkAMYBfJMTePSffzDiT-6utRqNB4,55248
|
|
105
105
|
onetick/py/db/__init__.py,sha256=-TKRO0suXTR-mLAppYt-Vegu9HQn7LU_JcObXpS3N9M,61
|
|
106
|
-
onetick/py/db/_inspection.py,sha256=
|
|
107
|
-
onetick/py/db/db.py,sha256=
|
|
106
|
+
onetick/py/db/_inspection.py,sha256=oBd5XAk2RGHad7KpS62Ftwlmqx96EUxIFYCbZ-Qyt94,48288
|
|
107
|
+
onetick/py/db/db.py,sha256=3K1X9RQ2ObXGxyxSi-jSSl6b7p0OuGZJJkx9SGzkBsc,55930
|
|
108
108
|
onetick/py/db/utils.py,sha256=gt-KmbGgcp1tH81LH-cLO08n2Hx8GaBPbvfEN22mgLg,2309
|
|
109
109
|
onetick/py/docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
110
|
onetick/py/docs/docstring_parser.py,sha256=j38L1jO1JFAzYqR1F5hilIzcIjOWILqNQSB25Fd2hhM,3695
|
|
@@ -129,7 +129,7 @@ onetick/py/sources/snapshots.py,sha256=-CAHisUNUFexgFoeKcAVv6gK47TGWxh6bAbsHiHDr
|
|
|
129
129
|
onetick/py/sources/split_query_output_by_symbol.py,sha256=5fKIZfF8FAgLjx_TiHpts8J4JtxoetF-5bEj6nsxbdI,8157
|
|
130
130
|
onetick/py/sources/symbology_mapping.py,sha256=01mwI4w9yxeg2VcxJRaR72MDafjyUBZvMopJC1hhjh0,4809
|
|
131
131
|
onetick/py/sources/symbols.py,sha256=SeJ-tzLBPDMk3OFsrUXjQ2HyxR_Oe1HkNFWzeotpVTc,15226
|
|
132
|
-
onetick/py/sources/ticks.py,sha256=
|
|
132
|
+
onetick/py/sources/ticks.py,sha256=W1yJzJAdgchy4SnCApthUcVzX41580H7o5588Wj0pXs,32502
|
|
133
133
|
onetick/py/utils/__init__.py,sha256=c8YnEcQTOoU3LxZtshBbn6O-WNhyTcwkRvO2efML9k8,1329
|
|
134
134
|
onetick/py/utils/acl.py,sha256=da4_rrV3pA7_9OcjvRxtZ0ofzwNxslGVbWqFUJK2rSw,2692
|
|
135
135
|
onetick/py/utils/config.py,sha256=1GeJVQeOolkHZJWJrbzp03SOlyN4N9Y0qR0s_nJDE6c,5557
|
|
@@ -144,9 +144,9 @@ onetick/py/utils/script.py,sha256=Y8NujEo2_5QaP6KDnLKJiKQ7SmMjw8_dv8sYL9rHDCE,11
|
|
|
144
144
|
onetick/py/utils/temp.py,sha256=j-BC155dE46k0zfKTTs26KTF0CK6WA1hO2GD54iunyM,17380
|
|
145
145
|
onetick/py/utils/types.py,sha256=_tYf66r9JVgjtiCJfxIxrg_BQEjHkjlnck_i86dBYEY,3606
|
|
146
146
|
onetick/py/utils/tz.py,sha256=QXclESLGU8YXysUT9DXkcBqLWWO47Bb_tanFUzYpPZI,2800
|
|
147
|
-
onetick_py-1.
|
|
148
|
-
onetick_py-1.
|
|
149
|
-
onetick_py-1.
|
|
150
|
-
onetick_py-1.
|
|
151
|
-
onetick_py-1.
|
|
152
|
-
onetick_py-1.
|
|
147
|
+
onetick_py-1.172.0.dist-info/licenses/LICENSE,sha256=Yhu7lKNFS0fsaN-jSattEMRtCOPueP58Eu5BPH8ZGjM,1075
|
|
148
|
+
onetick_py-1.172.0.dist-info/METADATA,sha256=NOHCPlqgp-lzXlGekA1oDazmitCNBSoDrhnqlgkjOrg,8216
|
|
149
|
+
onetick_py-1.172.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
150
|
+
onetick_py-1.172.0.dist-info/entry_points.txt,sha256=QmK_tFswIN-SQRmtnTSBEi8GvT0TVq-66IzXXZIsV3U,81
|
|
151
|
+
onetick_py-1.172.0.dist-info/top_level.txt,sha256=Na1jSJmVMyYGOndaswt554QKIUwQjcYh6th2ATsmw0U,23
|
|
152
|
+
onetick_py-1.172.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|