mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-30 01:38:30 +08:00
MAINT: Limit perspective offset.
Limit the perspective offset to 1. There is a possibility that if a consumer of the AdjustedArrayWindow does not fetch adjustments between the end of the data window and the vantage points beyond the end of the window. Until that case has a solution, e.g. having the consumer of the AdjustedArrayWindow include the perspective offset when calculating the query for adjustments, limit the offsets to 1.
This commit is contained in:
@@ -215,7 +215,7 @@ def _gen_multiplicative_adjustment_cases(dtype):
|
||||
adjustments,
|
||||
buffer_as_of,
|
||||
nrows,
|
||||
perspective_offsets=(0, 1, 2, 1000),
|
||||
perspective_offsets=(0, 1),
|
||||
)
|
||||
|
||||
|
||||
@@ -318,7 +318,7 @@ def _gen_overwrite_adjustment_cases(dtype):
|
||||
adjustments,
|
||||
buffer_as_of,
|
||||
nrows=6,
|
||||
perspective_offsets=(0, 1, 2, 1000),
|
||||
perspective_offsets=(0, 1),
|
||||
)
|
||||
|
||||
|
||||
@@ -421,7 +421,7 @@ def _gen_overwrite_1d_array_adjustment_case(dtype):
|
||||
adjustments,
|
||||
buffer_as_of,
|
||||
nrows=6,
|
||||
perspective_offsets=(0, 1, 2, 1000),
|
||||
perspective_offsets=(0, 1),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -53,6 +53,15 @@ cdef class AdjustedArrayWindow:
|
||||
self.adjustment_indices = sorted(adjustments, reverse=True)
|
||||
self.window_length = window_length
|
||||
self.anchor = window_length + offset
|
||||
if perspective_offset > 1:
|
||||
# Limit perspective_offset to 1.
|
||||
# To support an offset greater than 1, work must be done to
|
||||
# ensure that adjustments are retrieved for the datetimes between
|
||||
# the end of the window and the vantage point defined by the
|
||||
# perspective offset.
|
||||
raise Exception("perspective_offset should not exceed 1, value "
|
||||
"is perspective_offset={0}".format(
|
||||
perspective_offset))
|
||||
self.perspective_offset = perspective_offset
|
||||
self.next_anchor = self.anchor
|
||||
self.max_anchor = data.shape[0]
|
||||
|
||||
Reference in New Issue
Block a user