onetick-py 1.162.2__tar.gz → 1.163.0__tar.gz
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-1.162.2 → onetick_py-1.163.0}/PKG-INFO +1 -1
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/_version.py +1 -1
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/_docs.py +21 -6
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/functions.py +47 -11
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/PKG-INFO +1 -1
- {onetick_py-1.162.2 → onetick_py-1.163.0}/LICENSE +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/README.md +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/pyproject.toml +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/requirements.strict.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/requirements.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/setup.cfg +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/setup.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/acl.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/actions.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/common.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/io.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/locator_parser/locator.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/doc_utilities/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/doc_utilities/napoleon.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/doc_utilities/ot_doctest.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/doc_utilities/snippets.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/lib/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/lib/instance.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/_stack_info.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/_base.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/compute.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/functions.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/generic.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/high_low.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/num_distinct.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/order_book.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/aggregations/other.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/backports.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/cache.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/callback/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/callback/callback.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/callback/callbacks.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/compatibility.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/configuration.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_csv_inspector.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_manually_bound_value.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_nodes_history.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/every_operand.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/is_const.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_per_tick_scripts/tick_list_sort_template.script +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_proxy_node.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_state_objects.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_state_vars.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/_symbol_param.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/schema.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/aggregations.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/applyers.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/columns.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/data_quality.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/debugs.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/drops.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/fields.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/filters.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/joins.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/merges.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/misc.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/pandases.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/renames.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/sorts.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/switches.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/symbols.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/times.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/writes.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/symbol.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/tmp_otq.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/_internal.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/conversions.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/methods.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/op_types.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/_accessor.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/decimal_accessor.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/dt_accessor.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/float_accessor.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/accessors/str_accessor.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/base.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/cut_builder.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/db_constants.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/eval_query.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/lambda_object.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/multi_output_source.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/per_tick_script.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/query_inspector.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/source.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/db/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/db/_inspection.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/db/db.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/db/utils.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/docs/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/docs/docstring_parser.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/docs/utils.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/license.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/log.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/math.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/misc.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/oqd/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/oqd/eps.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/oqd/sources.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/otq.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/pyomd_mock.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/run.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/servers.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/session.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/cache.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/common.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/csv.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/custom.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/data_file.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/data_source.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/empty.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/odbc.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/order_book.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/parquet.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/pit.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/query.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/snapshots.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/split_query_output_by_symbol.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/symbology_mapping.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/symbols.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/ticks.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sql.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/state.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/types.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/__init__.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/acl.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/config.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/default.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/file.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/helpers.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/locator.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/perf.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/query.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/render.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/script.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/temp.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/types.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/utils/tz.py +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/SOURCES.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/dependency_links.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/entry_points.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/requires.txt +0 -0
- {onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick_py.egg-info/top_level.txt +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# This file was generated automatically. DO NOT CHANGE.
|
|
2
|
-
VERSION = '1.
|
|
2
|
+
VERSION = '1.163.0'
|
|
@@ -31,7 +31,9 @@ _column_doc = param_doc(
|
|
|
31
31
|
_running_doc = param_doc(
|
|
32
32
|
name='running',
|
|
33
33
|
desc='''
|
|
34
|
-
Aggregation
|
|
34
|
+
See :ref:`Aggregation buckets guide <buckets_guide>` to see examples of how this parameter works.
|
|
35
|
+
|
|
36
|
+
Specifies if the aggregation will be calculated as a sliding window.
|
|
35
37
|
``running`` and ``bucket_interval`` parameters determines when new buckets are created.
|
|
36
38
|
|
|
37
39
|
* ``running`` = True
|
|
@@ -45,10 +47,10 @@ _running_doc = param_doc(
|
|
|
45
47
|
|
|
46
48
|
* ``bucket_interval`` = 0
|
|
47
49
|
|
|
48
|
-
Left boundary of window will be
|
|
49
|
-
[start_time; tick_t].
|
|
50
|
+
Left boundary of window will be set to query start time. For each tick aggregation will be calculated in
|
|
51
|
+
the interval [start_time; tick_t] from query start time to the tick's timestamp (inclusive).
|
|
50
52
|
|
|
51
|
-
* ``running`` = False
|
|
53
|
+
* ``running`` = False (default)
|
|
52
54
|
|
|
53
55
|
buckets partition the [query start time, query end time) interval into non-overlapping intervals
|
|
54
56
|
of size ``bucket_interval`` (with the last interval possibly of a smaller size).
|
|
@@ -68,6 +70,8 @@ _running_doc = param_doc(
|
|
|
68
70
|
_all_fields_doc = param_doc(
|
|
69
71
|
name='all_fields',
|
|
70
72
|
desc="""
|
|
73
|
+
See :ref:`Aggregation buckets guide <buckets_guide>` to see examples of how this parameter works.
|
|
74
|
+
|
|
71
75
|
* ``all_fields`` = True
|
|
72
76
|
|
|
73
77
|
output ticks include all fields from the input ticks
|
|
@@ -95,15 +99,25 @@ _all_fields_doc = param_doc(
|
|
|
95
99
|
_all_fields_with_policy_doc = param_doc(
|
|
96
100
|
name='all_fields',
|
|
97
101
|
desc="""
|
|
102
|
+
See :ref:`Aggregation buckets guide <buckets_guide>` to see examples of how this parameter works.
|
|
103
|
+
|
|
98
104
|
- If ``all_fields`` False - output tick will have only aggregation fields.
|
|
99
105
|
|
|
106
|
+
- If ``all_fields`` is True and ``running`` is False - additional fields will be copied from the first
|
|
107
|
+
tick in the bucket to the output tick.
|
|
108
|
+
|
|
100
109
|
- If ``all_fields`` False and ``running`` True - output ticks are created when a tick enters or leaves the
|
|
101
110
|
sliding window.
|
|
102
111
|
|
|
103
|
-
- If ``all_fields`` True - an output tick is generated only for arrival events,
|
|
112
|
+
- If ``all_fields`` True and ``running`` True - an output tick is generated only for arrival events,
|
|
104
113
|
but all attributes from the input tick causing an arrival event are copied over to the output tick
|
|
105
114
|
and the aggregation is added as another attribute.
|
|
106
115
|
|
|
116
|
+
- If ``all_fields`` True and ``running`` "when_ticks_exit_window" -
|
|
117
|
+
an output tick is generated only for exit events,
|
|
118
|
+
but all attributes from the exiting tick are copied over to the output tick
|
|
119
|
+
and the aggregation is added as another attribute.
|
|
120
|
+
|
|
107
121
|
- If ``all_fields`` set to "first", "last", "high", or "low" - explicitly set tick selection policy for all
|
|
108
122
|
fields values. For "high" and "low" "PRICE" field will be selected as an input.
|
|
109
123
|
Otherwise, you will get the runtime error.
|
|
@@ -114,7 +128,8 @@ _all_fields_with_policy_doc = param_doc(
|
|
|
114
128
|
first parameter.
|
|
115
129
|
""",
|
|
116
130
|
default=False,
|
|
117
|
-
|
|
131
|
+
str_annotation=("True, False, 'when_ticks_exit_window', 'first', 'last', 'high', 'low', "
|
|
132
|
+
":py:func:`~onetick.py.agg.high_tick`, :py:func:`~onetick.py.agg.low_tick`"),
|
|
118
133
|
)
|
|
119
134
|
_bucket_interval_doc = param_doc(
|
|
120
135
|
name='bucket_interval',
|
|
@@ -902,8 +902,18 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
902
902
|
0 2003-12-01 00:00:00.001 1 0
|
|
903
903
|
1 2003-12-01 00:00:00.003 2 1
|
|
904
904
|
|
|
905
|
-
|
|
906
|
-
|
|
905
|
+
Note
|
|
906
|
+
----
|
|
907
|
+
In case different ``sources`` have matching columns, the exception will be raised.
|
|
908
|
+
|
|
909
|
+
To fix this error,
|
|
910
|
+
functions :func:`Source.add_prefix` or :func:`Source.add_suffix` can be used to rename all columns in the source.
|
|
911
|
+
|
|
912
|
+
Note that resulting **TIMESTAMP** pseudo-column will be taken from the leading source,
|
|
913
|
+
and timestamps of ticks from non-leading sources will not be added to the output,
|
|
914
|
+
so if you need to save them, you need to copy the timestamp to some other column.
|
|
915
|
+
|
|
916
|
+
See examples below.
|
|
907
917
|
|
|
908
918
|
Parameters
|
|
909
919
|
----------
|
|
@@ -1047,7 +1057,8 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
1047
1057
|
|
|
1048
1058
|
Default joining logic, outer join with the first source is the leader by default:
|
|
1049
1059
|
|
|
1050
|
-
>>> otp.
|
|
1060
|
+
>>> data = otp.join_by_time([d1, d2])
|
|
1061
|
+
>>> otp.run(data)
|
|
1051
1062
|
Time A B
|
|
1052
1063
|
0 2003-12-01 00:00:00.001 1 0
|
|
1053
1064
|
1 2003-12-01 00:00:00.002 2 1
|
|
@@ -1055,7 +1066,8 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
1055
1066
|
|
|
1056
1067
|
Leading source can be changed by using parameter ``leading``:
|
|
1057
1068
|
|
|
1058
|
-
>>> otp.
|
|
1069
|
+
>>> data = otp.join_by_time([d1, d2], leading=1)
|
|
1070
|
+
>>> otp.run(data)
|
|
1059
1071
|
Time A B
|
|
1060
1072
|
0 2003-12-01 00:00:00.001 1 1
|
|
1061
1073
|
1 2003-12-01 00:00:00.002 2 2
|
|
@@ -1064,7 +1076,8 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
1064
1076
|
Note that OneTick's logic is different depending on the order of sources specified,
|
|
1065
1077
|
so specifying ``leading`` parameter in the previous example is not the same as changing the order of sources here:
|
|
1066
1078
|
|
|
1067
|
-
>>> otp.
|
|
1079
|
+
>>> data = otp.join_by_time([d2, d1], leading=0)
|
|
1080
|
+
>>> otp.run(data)
|
|
1068
1081
|
Time B A
|
|
1069
1082
|
0 2003-12-01 00:00:00.001 1 0
|
|
1070
1083
|
1 2003-12-01 00:00:00.002 2 1
|
|
@@ -1073,7 +1086,8 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
1073
1086
|
Parameter ``source_fields_order`` can be used to change the order of fields in the output,
|
|
1074
1087
|
but it also affects the joining logic the same way as changing the order of sources:
|
|
1075
1088
|
|
|
1076
|
-
>>> otp.
|
|
1089
|
+
>>> data = otp.join_by_time([d1, d2], leading=1, source_fields_order=[1, 0])
|
|
1090
|
+
>>> otp.run(data)
|
|
1077
1091
|
Time B A
|
|
1078
1092
|
0 2003-12-01 00:00:00.001 1 0
|
|
1079
1093
|
1 2003-12-01 00:00:00.002 2 1
|
|
@@ -1082,26 +1096,48 @@ def join_by_time(sources, how="outer", on=None, policy=None, check_schema=True,
|
|
|
1082
1096
|
Parameter ``how`` can be set to "inner".
|
|
1083
1097
|
In this case only ticks that were successfully joined from all sources will be propagated:
|
|
1084
1098
|
|
|
1085
|
-
>>> otp.
|
|
1099
|
+
>>> data = otp.join_by_time([d1, d2], how='inner')
|
|
1100
|
+
>>> otp.run(data)
|
|
1086
1101
|
Time A B
|
|
1087
1102
|
0 2003-12-01 00:00:00.002 2 1
|
|
1088
1103
|
1 2003-12-01 00:00:00.003 3 2
|
|
1089
1104
|
|
|
1090
1105
|
Set parameter ``match_if_identical_times`` to only join ticks with the same timestamps:
|
|
1091
1106
|
|
|
1092
|
-
>>> otp.
|
|
1107
|
+
>>> data = otp.join_by_time([d1, d2], how='inner', match_if_identical_times=True)
|
|
1108
|
+
>>> otp.run(data)
|
|
1093
1109
|
Time A B
|
|
1094
1110
|
0 2003-12-01 00:00:00.001 1 1
|
|
1095
1111
|
1 2003-12-01 00:00:00.002 2 2
|
|
1096
1112
|
|
|
1097
|
-
|
|
1113
|
+
In case of conflicting names in different sources, exception will be raised:
|
|
1114
|
+
|
|
1115
|
+
>>> d3 = otp.Ticks({'A': [1, 2, 4], 'offset': [1, 2, 4]})
|
|
1116
|
+
>>> data = otp.join_by_time([d1, d3])
|
|
1117
|
+
Traceback (most recent call last):
|
|
1118
|
+
...
|
|
1119
|
+
ValueError: There are matched columns between sources: A
|
|
1120
|
+
|
|
1121
|
+
Adding prefix to right source for all columns will fix this problem:
|
|
1098
1122
|
|
|
1099
|
-
>>> otp.
|
|
1100
|
-
|
|
1123
|
+
>>> data = otp.join_by_time([d1, d3.add_prefix('right_')])
|
|
1124
|
+
>>> otp.run(data)
|
|
1125
|
+
Time A right_A
|
|
1101
1126
|
0 2003-12-01 00:00:00.001 1 0
|
|
1102
1127
|
1 2003-12-01 00:00:00.002 2 1
|
|
1103
1128
|
2 2003-12-01 00:00:00.003 3 2
|
|
1104
1129
|
|
|
1130
|
+
Note that timestamps from the non-leading source are not added to the output.
|
|
1131
|
+
You can add them manually in a different field:
|
|
1132
|
+
|
|
1133
|
+
>>> d3['D3_TIMESTAMP'] = d3['TIMESTAMP']
|
|
1134
|
+
>>> data = otp.join_by_time([d1, d3.add_prefix('right_')])
|
|
1135
|
+
>>> otp.run(data)
|
|
1136
|
+
Time A right_A right_D3_TIMESTAMP
|
|
1137
|
+
0 2003-12-01 00:00:00.001 1 0 1969-12-31 19:00:00.000
|
|
1138
|
+
1 2003-12-01 00:00:00.002 2 1 2003-12-01 00:00:00.001
|
|
1139
|
+
2 2003-12-01 00:00:00.003 3 2 2003-12-01 00:00:00.002
|
|
1140
|
+
|
|
1105
1141
|
Use parameter ``output_type_index`` to specify which input class to use to create output object.
|
|
1106
1142
|
It may be useful in case some custom user class was used as input:
|
|
1107
1143
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_manually_bound_value.py
RENAMED
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/__init__.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/every_operand.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_internal/_op_utils/is_const.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/__init__.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/aggregations.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/applyers.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/columns.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/data_quality.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/debugs.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/drops.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/fields.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/filters.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/joins.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/merges.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/misc.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/pandases.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/renames.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/sorts.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/switches.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/symbols.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/times.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/_source/source_methods/writes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/methods.py
RENAMED
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/core/column_operations/_methods/op_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onetick_py-1.162.2 → onetick_py-1.163.0}/src/onetick/py/sources/split_query_output_by_symbol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|