Generated by Cython 0.29.36
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: adjustment.c
+0001: # cython: embedsignature=True
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_get_adjustment_locs_line_192, __pyx_kp_u_Compute_indices_suitable_for_pa) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_from_assets_and_dates_line_234, __pyx_kp_u_Helper_for_constructing_an_Adju) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0002: from cpython cimport Py_EQ
0003:
0004: cimport cython
+0005: from pandas import isnull, Timestamp
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_isnull); __Pyx_GIVEREF(__pyx_n_s_isnull); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_isnull); __Pyx_INCREF(__pyx_n_s_Timestamp); __Pyx_GIVEREF(__pyx_n_s_Timestamp); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_Timestamp); __pyx_t_2 = __Pyx_Import(__pyx_n_s_pandas, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_isnull); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_isnull, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Timestamp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Timestamp, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0006: cimport numpy as np
0007: from numpy cimport float64_t, uint8_t, int64_t
+0008: from numpy import asarray, datetime64, float64, int64, bool_, uint8
__pyx_t_2 = PyList_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_asarray); __Pyx_GIVEREF(__pyx_n_s_asarray); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_asarray); __Pyx_INCREF(__pyx_n_s_datetime64); __Pyx_GIVEREF(__pyx_n_s_datetime64); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_datetime64); __Pyx_INCREF(__pyx_n_s_float64); __Pyx_GIVEREF(__pyx_n_s_float64); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_float64); __Pyx_INCREF(__pyx_n_s_int64); __Pyx_GIVEREF(__pyx_n_s_int64); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_int64); __Pyx_INCREF(__pyx_n_s_bool); __Pyx_GIVEREF(__pyx_n_s_bool); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_bool); __Pyx_INCREF(__pyx_n_s_uint8); __Pyx_GIVEREF(__pyx_n_s_uint8); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_uint8); __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_asarray, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_datetime64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime64, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_float64, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_int64, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_bool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_bool, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_uint8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_uint8, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0009:
+0010: from zipline.utils.compat import unicode
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_unicode); __Pyx_GIVEREF(__pyx_n_s_unicode); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_unicode); __pyx_t_2 = __Pyx_Import(__pyx_n_s_zipline_utils_compat, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_unicode, __pyx_t_1) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0011:
0012:
0013: ADJUSTMENT_KIND_NAMES = {
+0014: MULTIPLY: 'MULTIPLY',
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_MULTIPLY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_n_u_MULTIPLY) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0015: ADD: 'ADD',
__pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_ADD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_n_u_ADD) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0016: OVERWRITE: 'OVERWRITE',
__pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_n_u_OVERWRITE) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADJUSTMENT_KIND_NAMES, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0017: }
0018:
0019: cdef dict _float_adjustment_types = {
+0020: ADD: Float64Add,
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_ADD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Add)) < 0) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0021: MULTIPLY: Float64Multiply,
__pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_MULTIPLY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Multiply)) < 0) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0022: OVERWRITE: Float64Overwrite,
__pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Overwrite)) < 0) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types); __Pyx_DECREF_SET(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0023: }
0024: cdef dict _datetime_adjustment_types = {
+0025: OVERWRITE: Datetime64Overwrite,
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime64Overwrite)) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7zipline_3lib_10adjustment__datetime_adjustment_types); __Pyx_DECREF_SET(__pyx_v_7zipline_3lib_10adjustment__datetime_adjustment_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0026: }
0027: cdef dict _object_adjustment_types = {
+0028: OVERWRITE: ObjectOverwrite,
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_ObjectOverwrite)) < 0) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types); __Pyx_DECREF_SET(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0029: }
0030: cdef dict _int_adjustment_types = {
+0031: OVERWRITE: Int64Overwrite,
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Int64Overwrite)) < 0) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types); __Pyx_DECREF_SET(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0032: }
0033: cdef dict _boolean_adjustment_types = {
+0034: OVERWRITE: BooleanOverwrite,
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_e_7zipline_3lib_10adjustment_OVERWRITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_BooleanOverwrite)) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types); __Pyx_DECREF_SET(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0035: }
0036:
0037:
+0038: cdef _is_float(object value):
static PyObject *__pyx_f_7zipline_3lib_10adjustment__is_float(PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_is_float", 0); __Pyx_TraceCall("_is_float", __pyx_f[0], 38, 0, __PYX_ERR(0, 38, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment._is_float", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0039: return isinstance(value, (float, float64))
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyFloat_Check(__pyx_v_value); __pyx_t_4 = (__pyx_t_3 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L3_bool_binop_done; } __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0040:
0041:
+0042: cdef _is_datetime(object value):
static PyObject *__pyx_f_7zipline_3lib_10adjustment__is_datetime(PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_is_datetime", 0); __Pyx_TraceCall("_is_datetime", __pyx_f[0], 42, 0, __PYX_ERR(0, 42, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("zipline.lib.adjustment._is_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0043: return isinstance(value, (datetime64, Timestamp))
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_datetime64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Timestamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); __pyx_t_5 = (__pyx_t_4 != 0); if (!__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L3_bool_binop_done; } __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); __pyx_t_4 = (__pyx_t_5 != 0); __pyx_t_3 = __pyx_t_4; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0044:
0045:
+0046: cdef _is_int(object value):
static PyObject *__pyx_f_7zipline_3lib_10adjustment__is_int(PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_is_int", 0); __Pyx_TraceCall("_is_int", __pyx_f[0], 46, 0, __PYX_ERR(0, 46, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment._is_int", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0047: return isinstance(value, (int, int64))
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyInt_Check(__pyx_v_value); __pyx_t_4 = (__pyx_t_3 != 0); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L3_bool_binop_done; } __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0048:
0049:
+0050: cdef _is_obj(object value):
static PyObject *__pyx_f_7zipline_3lib_10adjustment__is_obj(PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_is_obj", 0); __Pyx_TraceCall("_is_obj", __pyx_f[0], 50, 0, __PYX_ERR(0, 50, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("zipline.lib.adjustment._is_obj", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0051: return isinstance(value, (bytes, unicode, type(None)))
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(Py_None))); __pyx_t_2 = ((PyObject *)Py_TYPE(Py_None)); __pyx_t_4 = PyBytes_Check(__pyx_v_value); __pyx_t_5 = (__pyx_t_4 != 0); if (!__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L3_bool_binop_done; } __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); __pyx_t_4 = (__pyx_t_5 != 0); if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L3_bool_binop_done; } __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); __pyx_t_5 = (__pyx_t_4 != 0); __pyx_t_3 = __pyx_t_5; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0052:
0053:
+0054: cdef _is_bool(object value):
static PyObject *__pyx_f_7zipline_3lib_10adjustment__is_bool(PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_is_bool", 0); __Pyx_TraceCall("_is_bool", __pyx_f[0], 54, 0, __PYX_ERR(0, 54, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment._is_bool", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0055: return isinstance(value, (bool, bool_, uint8))
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject*)&PyBool_Type)); __pyx_t_1 = ((PyObject*)&PyBool_Type); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_bool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_uint8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); __pyx_t_6 = (__pyx_t_5 != 0); if (!__pyx_t_6) { } else { __pyx_t_4 = __pyx_t_6; goto __pyx_L3_bool_binop_done; } __pyx_t_6 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); __pyx_t_5 = (__pyx_t_6 != 0); if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L3_bool_binop_done; } __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_3); __pyx_t_6 = (__pyx_t_5 != 0); __pyx_t_4 = __pyx_t_6; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0056:
0057:
+0058: cpdef choose_adjustment_type(AdjustmentKind adjustment_kind, object value):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_1choose_adjustment_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_choose_adjustment_type(enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("choose_adjustment_type", 0); __Pyx_TraceCall("choose_adjustment_type", __pyx_f[0], 58, 0, __PYX_ERR(0, 58, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("zipline.lib.adjustment.choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_1choose_adjustment_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_choose_adjustment_type[] = "choose_adjustment_type(AdjustmentKind adjustment_kind, value)\n\n Make an adjustment object of the type appropriate for the given kind and\n value.\n\n Parameters\n ----------\n adjustment_kind : {ADD, MULTIPLY, OVERWRITE}\n The kind of adjustment to construct.\n value : object\n The value parameter to the adjustment. Only floating-point values and\n datetime-like values are currently supported\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_1choose_adjustment_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind; PyObject *__pyx_v_value = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("choose_adjustment_type (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_adjustment_kind,&__pyx_n_s_value,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_adjustment_kind)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("choose_adjustment_type", 1, 2, 2, 1); __PYX_ERR(0, 58, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "choose_adjustment_type") < 0)) __PYX_ERR(0, 58, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_adjustment_kind = ((enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind)__Pyx_PyInt_As_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 58, __pyx_L3_error) __pyx_v_value = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("choose_adjustment_type", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 58, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_choose_adjustment_type(__pyx_self, __pyx_v_adjustment_kind, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_choose_adjustment_type(CYTHON_UNUSED PyObject *__pyx_self, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("choose_adjustment_type", 0); __Pyx_TraceCall("choose_adjustment_type (wrapper)", __pyx_f[0], 58, 0, __PYX_ERR(0, 58, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0059: """
0060: Make an adjustment object of the type appropriate for the given kind and
0061: value.
0062:
0063: Parameters
0064: ----------
0065: adjustment_kind : {ADD, MULTIPLY, OVERWRITE}
0066: The kind of adjustment to construct.
0067: value : object
0068: The value parameter to the adjustment. Only floating-point values and
0069: datetime-like values are currently supported
0070: """
+0071: if adjustment_kind in (ADD, MULTIPLY):
switch (__pyx_v_adjustment_kind) { case __pyx_e_7zipline_3lib_10adjustment_ADD: case __pyx_e_7zipline_3lib_10adjustment_MULTIPLY: /* … */ break; case __pyx_e_7zipline_3lib_10adjustment_OVERWRITE:
+0072: if not _is_float(value):
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment__is_float(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = ((!__pyx_t_2) != 0); if (unlikely(__pyx_t_3)) { /* … */ }
+0073: raise TypeError(
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 73, __pyx_L1_error)
+0074: "Can't construct %s Adjustment with value of type %r.\n"
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = 127; __Pyx_INCREF(__pyx_kp_u_Can_t_construct); __pyx_t_4 += 16; __Pyx_GIVEREF(__pyx_kp_u_Can_t_construct); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Can_t_construct); /* … */ __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0075: "ADD and MULTIPLY adjustments are only supported for "
0076: "floating point data." % (
+0077: ADJUSTMENT_KIND_NAMES[adjustment_kind],
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ADJUSTMENT_KIND_NAMES); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_8), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_kp_u_Adjustment_with_value_of_type); __pyx_t_4 += 31; __Pyx_GIVEREF(__pyx_kp_u_Adjustment_with_value_of_type); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_Adjustment_with_value_of_type);
+0078: type(value),
__pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_value))), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); __pyx_t_4 += 74; __Pyx_GIVEREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar);
0079: )
0080: )
+0081: return _float_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 81, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
0082:
+0083: elif adjustment_kind == OVERWRITE:
break; default:
+0084: if _is_float(value):
__pyx_t_7 = __pyx_f_7zipline_3lib_10adjustment__is_float(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_3) { /* … */ }
+0085: return _float_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 85, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+0086: elif _is_datetime(value):
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment__is_datetime(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+0087: return _datetime_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__datetime_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__datetime_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
+0088: elif _is_bool(value):
__pyx_t_7 = __pyx_f_7zipline_3lib_10adjustment__is_bool(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_3) { /* … */ }
+0089: return _boolean_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 89, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+0090: elif _is_int(value):
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment__is_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+0091: return _int_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 91, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
+0092: elif _is_obj(value):
__pyx_t_7 = __pyx_f_7zipline_3lib_10adjustment__is_obj(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (likely(__pyx_t_3)) { /* … */ }
+0093: return _object_adjustment_types[adjustment_kind]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 93, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0094: else:
+0095: raise TypeError(
/*else*/ { /* … */ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(0, 95, __pyx_L1_error) }
0096: "Don't know how to make overwrite "
+0097: "adjustments for values of type %r." % type(value),
__pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Don_t_know_how_to_make_overwrite, ((PyObject *)Py_TYPE(__pyx_v_value))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
0098: )
0099:
0100: else:
+0101: raise ValueError("Unknown adjustment type %d." % adjustment_kind)
__pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Unknown_adjustment_type_d, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(0, 101, __pyx_L1_error) break; }
0102:
0103:
+0104: cpdef Adjustment make_adjustment_from_indices(Py_ssize_t first_row,
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_3make_adjustment_from_indices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices(Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) { PyTypeObject *__pyx_v_type_ = 0; struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_indices", 0); __Pyx_TraceCall("make_adjustment_from_indices", __pyx_f[0], 104, 0, __PYX_ERR(0, 104, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_3make_adjustment_from_indices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_2make_adjustment_from_indices[] = "make_adjustment_from_indices(Py_ssize_t first_row, Py_ssize_t last_row, Py_ssize_t first_column, Py_ssize_t last_column, AdjustmentKind adjustment_kind, value) -> Adjustment\n\n Make an Adjustment object from row/column indices into a baseline array.\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_3make_adjustment_from_indices(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_column; Py_ssize_t __pyx_v_last_column; enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind; PyObject *__pyx_v_value = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_indices (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_column,&__pyx_n_s_last_column,&__pyx_n_s_adjustment_kind,&__pyx_n_s_value,0}; PyObject* values[6] = {0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, 1); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_column)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, 2); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_column)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, 3); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_adjustment_kind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, 4); __PYX_ERR(0, 104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, 5); __PYX_ERR(0, 104, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "make_adjustment_from_indices") < 0)) __PYX_ERR(0, 104, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 104, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L3_error) __pyx_v_first_column = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_column == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error) __pyx_v_last_column = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_column == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) __pyx_v_adjustment_kind = ((enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind)__Pyx_PyInt_As_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(values[4])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 108, __pyx_L3_error) __pyx_v_value = values[5]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("make_adjustment_from_indices", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 104, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_2make_adjustment_from_indices(__pyx_self, __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_column, __pyx_v_last_column, __pyx_v_adjustment_kind, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_2make_adjustment_from_indices(CYTHON_UNUSED PyObject *__pyx_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_indices", 0); __Pyx_TraceCall("make_adjustment_from_indices (wrapper)", __pyx_f[0], 104, 0, __PYX_ERR(0, 104, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices(__pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_column, __pyx_v_last_column, __pyx_v_adjustment_kind, __pyx_v_value, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0105: Py_ssize_t last_row,
0106: Py_ssize_t first_column,
0107: Py_ssize_t last_column,
0108: AdjustmentKind adjustment_kind,
0109: object value):
0110: """
0111: Make an Adjustment object from row/column indices into a baseline array.
0112: """
+0113: cdef type type_ = choose_adjustment_type(adjustment_kind, value)
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 113, __pyx_L1_error) __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0;
0114: # NOTE_SS: Cython appears to generate incorrect code here if values are
0115: # passed by name. This is true even if cython.always_allow_keywords is
0116: # enabled. Yay Cython.
+0117: return type_(first_row, last_row, first_column, last_column, value)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_type_), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7zipline_3lib_10adjustment_Adjustment))))) __PYX_ERR(0, 117, __pyx_L1_error) __pyx_r = ((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
0118:
0119:
+0120: cdef type _choose_adjustment_type(AdjustmentKind adjustment_kind,
static PyTypeObject *__pyx_fuse_0__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, __pyx_t_5numpy_int64_t __pyx_v_value) { PyTypeObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0_choose_adjustment_type", 0); __Pyx_TraceCall("__pyx_fuse_0_choose_adjustment_type", __pyx_f[0], 120, 0, __PYX_ERR(0, 120, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment._choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyTypeObject *__pyx_fuse_1__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, CYTHON_UNUSED __pyx_t_5numpy_float64_t __pyx_v_value) { PyTypeObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1_choose_adjustment_type", 0); __Pyx_TraceCall("__pyx_fuse_1_choose_adjustment_type", __pyx_f[0], 120, 0, __PYX_ERR(0, 120, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("zipline.lib.adjustment._choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyTypeObject *__pyx_fuse_2__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, __pyx_t_5numpy_uint8_t __pyx_v_value) { PyTypeObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_2_choose_adjustment_type", 0); __Pyx_TraceCall("__pyx_fuse_2_choose_adjustment_type", __pyx_f[0], 120, 0, __PYX_ERR(0, 120, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment._choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyTypeObject *__pyx_fuse_3__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value) { PyTypeObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_3_choose_adjustment_type", 0); __Pyx_TraceCall("__pyx_fuse_3_choose_adjustment_type", __pyx_f[0], 120, 0, __PYX_ERR(0, 120, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment._choose_adjustment_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0121: column_type value):
+0122: if adjustment_kind in (ADD, MULTIPLY):
switch (__pyx_v_adjustment_kind) { case __pyx_e_7zipline_3lib_10adjustment_ADD: case __pyx_e_7zipline_3lib_10adjustment_MULTIPLY: /* … */ break; case __pyx_e_7zipline_3lib_10adjustment_OVERWRITE: /* … */ switch (__pyx_v_adjustment_kind) { case __pyx_e_7zipline_3lib_10adjustment_ADD: case __pyx_e_7zipline_3lib_10adjustment_MULTIPLY: /* … */ break; case __pyx_e_7zipline_3lib_10adjustment_OVERWRITE: /* … */ switch (__pyx_v_adjustment_kind) { case __pyx_e_7zipline_3lib_10adjustment_ADD: case __pyx_e_7zipline_3lib_10adjustment_MULTIPLY: /* … */ break; case __pyx_e_7zipline_3lib_10adjustment_OVERWRITE: /* … */ switch (__pyx_v_adjustment_kind) { case __pyx_e_7zipline_3lib_10adjustment_ADD: case __pyx_e_7zipline_3lib_10adjustment_MULTIPLY: /* … */ break; case __pyx_e_7zipline_3lib_10adjustment_OVERWRITE:
0123: if column_type is np.float64_t:
+0124: return _float_adjustment_types[adjustment_kind]
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 124, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 124, __pyx_L1_error) __pyx_r = ((PyTypeObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
0125: else:
+0126: raise TypeError(
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 126, __pyx_L1_error) /* … */ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 126, __pyx_L1_error) /* … */ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 126, __pyx_L1_error)
+0127: "Can't construct %s Adjustment with value of type %r.\n"
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Can_t_construct); __pyx_t_2 += 16; __Pyx_GIVEREF(__pyx_kp_u_Can_t_construct); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Can_t_construct); /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Can_t_construct); __pyx_t_2 += 16; __Pyx_GIVEREF(__pyx_kp_u_Can_t_construct); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Can_t_construct); /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Can_t_construct); __pyx_t_2 += 16; __Pyx_GIVEREF(__pyx_kp_u_Can_t_construct); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Can_t_construct); /* … */ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0128: "ADD and MULTIPLY adjustments are only supported for "
0129: "floating point data." % (
+0130: ADJUSTMENT_KIND_NAMES[adjustment_kind],
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADJUSTMENT_KIND_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_Adjustment_with_value_of_type); __pyx_t_2 += 31; __Pyx_GIVEREF(__pyx_kp_u_Adjustment_with_value_of_type); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_Adjustment_with_value_of_type); /* … */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADJUSTMENT_KIND_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_Adjustment_with_value_of_type); __pyx_t_2 += 31; __Pyx_GIVEREF(__pyx_kp_u_Adjustment_with_value_of_type); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_Adjustment_with_value_of_type); /* … */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADJUSTMENT_KIND_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_Adjustment_with_value_of_type); __pyx_t_2 += 31; __Pyx_GIVEREF(__pyx_kp_u_Adjustment_with_value_of_type); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_Adjustment_with_value_of_type);
+0131: type(value),
__pyx_t_5 = __Pyx_PyInt_From_npy_int64(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_t_5))), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); __pyx_t_2 += 74; __Pyx_GIVEREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); /* … */ __pyx_t_5 = __Pyx_PyInt_From_npy_uint8(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_t_5))), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); __pyx_t_2 += 74; __Pyx_GIVEREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); /* … */ __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_value))), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); __pyx_t_2 += 74; __Pyx_GIVEREF(__pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_ADD_and_MULTIPLY_adjustments_ar);
0132: )
0133: )
0134:
+0135: elif adjustment_kind == OVERWRITE:
break; default: /* … */ break; default: /* … */ break; default: /* … */ break; default:
0136: if column_type is np.float64_t:
+0137: return _float_adjustment_types[adjustment_kind]
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 137, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__float_adjustment_types, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 137, __pyx_L1_error) __pyx_r = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
0138: elif column_type is np.int64_t:
+0139: return _int_adjustment_types[adjustment_kind]
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 139, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__int_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyType_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 139, __pyx_L1_error) __pyx_r = ((PyTypeObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
0140: elif column_type is np.uint8_t:
+0141: return _boolean_adjustment_types[adjustment_kind]
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 141, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__boolean_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyType_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 141, __pyx_L1_error) __pyx_r = ((PyTypeObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
0142: elif column_type is object:
+0143: return _object_adjustment_types[adjustment_kind]
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 143, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_7zipline_3lib_10adjustment__object_adjustment_types, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyType_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 143, __pyx_L1_error) __pyx_r = ((PyTypeObject*)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0;
0144: else:
0145: raise TypeError(
0146: "Don't know how to make overwrite "
0147: "adjustments for values of type %r." % type(value),
0148: )
0149:
0150: else:
+0151: raise ValueError("Unknown adjustment type %d." % adjustment_kind)
__pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Unknown_adjustment_type_d, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 151, __pyx_L1_error) break; } /* … */ __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Unknown_adjustment_type_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 151, __pyx_L1_error) break; } /* … */ __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Unknown_adjustment_type_d, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 151, __pyx_L1_error) break; } /* … */ __pyx_t_5 = __Pyx_PyInt_From_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(__pyx_v_adjustment_kind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Unknown_adjustment_type_d, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 151, __pyx_L1_error) break; }
0152:
0153:
+0154: cdef Adjustment make_adjustment_from_indices_fused(Py_ssize_t first_row,
static struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_fuse_0__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices_fused(Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, __pyx_t_5numpy_int64_t __pyx_v_value) { PyTypeObject *__pyx_v_type_ = 0; struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0make_adjustment_from_indices_fused", 0); __Pyx_TraceCall("__pyx_fuse_0make_adjustment_from_indices_fused", __pyx_f[0], 154, 0, __PYX_ERR(0, 154, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices_fused", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_fuse_1__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices_fused(Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, __pyx_t_5numpy_float64_t __pyx_v_value) { PyTypeObject *__pyx_v_type_ = 0; struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1make_adjustment_from_indices_fused", 0); __Pyx_TraceCall("__pyx_fuse_1make_adjustment_from_indices_fused", __pyx_f[0], 154, 0, __PYX_ERR(0, 154, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices_fused", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_fuse_2__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices_fused(Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, __pyx_t_5numpy_uint8_t __pyx_v_value) { PyTypeObject *__pyx_v_type_ = 0; struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_2make_adjustment_from_indices_fused", 0); __Pyx_TraceCall("__pyx_fuse_2make_adjustment_from_indices_fused", __pyx_f[0], 154, 0, __PYX_ERR(0, 154, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices_fused", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_fuse_3__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_indices_fused(Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_column, Py_ssize_t __pyx_v_last_column, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value) { PyTypeObject *__pyx_v_type_ = 0; struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_3make_adjustment_from_indices_fused", 0); __Pyx_TraceCall("__pyx_fuse_3make_adjustment_from_indices_fused", __pyx_f[0], 154, 0, __PYX_ERR(0, 154, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_indices_fused", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0155: Py_ssize_t last_row,
0156: Py_ssize_t first_column,
0157: Py_ssize_t last_column,
0158: AdjustmentKind adjustment_kind,
0159: column_type value):
0160: """
0161: Make an Adjustment object from row/column indices into a baseline array.
0162: """
+0163: cdef type type_ = _choose_adjustment_type(adjustment_kind, value)
__pyx_t_1 = ((PyObject *)__pyx_fuse_0__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = ((PyObject *)__pyx_fuse_1__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = ((PyObject *)__pyx_fuse_2__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = ((PyObject *)__pyx_fuse_3__pyx_f_7zipline_3lib_10adjustment__choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0;
0164: # NOTE_SS: Cython appears to generate incorrect code here if values are
0165: # passed by name. This is true even if cython.always_allow_keywords is
0166: # enabled. Yay Cython.
+0167: return type_(first_row, last_row, first_column, last_column, value)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_npy_int64(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_type_), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7zipline_3lib_10adjustment_Adjustment))))) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_r = ((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_type_), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7zipline_3lib_10adjustment_Adjustment))))) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_r = ((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_npy_uint8(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_type_), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7zipline_3lib_10adjustment_Adjustment))))) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_r = ((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_column); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_type_), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7zipline_3lib_10adjustment_Adjustment))))) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_r = ((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L0;
0168:
0169:
+0170: cpdef make_adjustment_from_labels(DatetimeIndex_t dates_index,
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_5make_adjustment_from_labels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_labels(__pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) { PyTypeObject *__pyx_v_type_ = 0; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_labels", 0); __Pyx_TraceCall("make_adjustment_from_labels", __pyx_f[0], 170, 0, __PYX_ERR(0, 170, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_labels", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_5make_adjustment_from_labels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_4make_adjustment_from_labels[] = "make_adjustment_from_labels(DatetimeIndex_t dates_index, Int64Index_t assets_index, Timestamp_t start_date, Timestamp_t end_date, int64_t asset_id, AdjustmentKind adjustment_kind, value)\n\n Make an Adjustment object from date/asset labels into a labelled baseline\n array.\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_5make_adjustment_from_labels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index = 0; __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date = 0; __pyx_t_5numpy_int64_t __pyx_v_asset_id; enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind; PyObject *__pyx_v_value = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_labels (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dates_index,&__pyx_n_s_assets_index,&__pyx_n_s_start_date,&__pyx_n_s_end_date,&__pyx_n_s_asset_id,&__pyx_n_s_adjustment_kind,&__pyx_n_s_value,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dates_index)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assets_index)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 1); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 2); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 3); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_asset_id)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 4); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_adjustment_kind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 5); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, 6); __PYX_ERR(0, 170, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "make_adjustment_from_labels") < 0)) __PYX_ERR(0, 170, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_dates_index = ((__pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t)values[0]); __pyx_v_assets_index = ((__pyx_t_7zipline_3lib_10adjustment_Int64Index_t)values[1]); __pyx_v_start_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[2]); __pyx_v_end_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[3]); __pyx_v_asset_id = __Pyx_PyInt_As_npy_int64(values[4]); if (unlikely((__pyx_v_asset_id == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) __pyx_v_adjustment_kind = ((enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind)__Pyx_PyInt_As_enum____pyx_t_7zipline_3lib_10adjustment_AdjustmentKind(values[5])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L3_error) __pyx_v_value = values[6]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("make_adjustment_from_labels", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 170, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_labels", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_4make_adjustment_from_labels(__pyx_self, __pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, __pyx_v_adjustment_kind, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_4make_adjustment_from_labels(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id, enum __pyx_t_7zipline_3lib_10adjustment_AdjustmentKind __pyx_v_adjustment_kind, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_adjustment_from_labels", 0); __Pyx_TraceCall("make_adjustment_from_labels (wrapper)", __pyx_f[0], 170, 0, __PYX_ERR(0, 170, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_make_adjustment_from_labels(__pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, __pyx_v_adjustment_kind, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.make_adjustment_from_labels", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0171: Int64Index_t assets_index,
0172: Timestamp_t start_date,
0173: Timestamp_t end_date,
0174: np.int64_t asset_id,
0175: AdjustmentKind adjustment_kind,
0176: object value):
0177: """
0178: Make an Adjustment object from date/asset labels into a labelled baseline
0179: array.
0180: """
+0181: cdef type type_ = choose_adjustment_type(adjustment_kind, value)
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_choose_adjustment_type(__pyx_v_adjustment_kind, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 181, __pyx_L1_error) __pyx_v_type_ = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0;
+0182: return type_.from_assets_and_dates(
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_type_), __pyx_n_s_from_assets_and_dates); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
0183: dates_index,
0184: assets_index,
0185: start_date,
0186: end_date,
+0187: asset_id,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_asset_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0188: value,
__pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[7] = {__pyx_t_4, ((PyObject *)__pyx_v_dates_index), ((PyObject *)__pyx_v_assets_index), ((PyObject *)__pyx_v_start_date), ((PyObject *)__pyx_v_end_date), __pyx_t_3, __pyx_v_value}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[7] = {__pyx_t_4, ((PyObject *)__pyx_v_dates_index), ((PyObject *)__pyx_v_assets_index), ((PyObject *)__pyx_v_start_date), ((PyObject *)__pyx_v_end_date), __pyx_t_3, __pyx_v_value}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_6 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_dates_index)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dates_index)); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_dates_index)); __Pyx_INCREF(((PyObject *)__pyx_v_assets_index)); __Pyx_GIVEREF(((PyObject *)__pyx_v_assets_index)); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_assets_index)); __Pyx_INCREF(((PyObject *)__pyx_v_start_date)); __Pyx_GIVEREF(((PyObject *)__pyx_v_start_date)); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, ((PyObject *)__pyx_v_start_date)); __Pyx_INCREF(((PyObject *)__pyx_v_end_date)); __Pyx_GIVEREF(((PyObject *)__pyx_v_end_date)); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, ((PyObject *)__pyx_v_end_date)); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_5, __pyx_v_value); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0189: )
0190:
0191:
+0192: cpdef tuple get_adjustment_locs(DatetimeIndex_t dates_index,
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_7get_adjustment_locs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_get_adjustment_locs(__pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id, CYTHON_UNUSED int __pyx_skip_dispatch) { int __pyx_v_start_date_loc; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_adjustment_locs", 0); __Pyx_TraceCall("get_adjustment_locs", __pyx_f[0], 192, 0, __PYX_ERR(0, 192, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("zipline.lib.adjustment.get_adjustment_locs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_7get_adjustment_locs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_6get_adjustment_locs[] = "get_adjustment_locs(DatetimeIndex_t dates_index, Int64Index_t assets_index, Timestamp_t start_date, Timestamp_t end_date, int64_t asset_id) -> tuple\n\n Compute indices suitable for passing to an Adjustment constructor.\n\n If the specified dates aren't in dates_index, we return the index of the\n first date **BEFORE** the supplied date.\n\n Example:\n\n >>> from pandas import date_range, Int64Index, Timestamp\n >>> dates = date_range('2014-01-01', '2014-01-07')\n >>> assets = Int64Index(range(10))\n >>> get_adjustment_locs(\n ... dates,\n ... assets,\n ... Timestamp('2014-01-03'),\n ... Timestamp('2014-01-05'),\n ... 3,\n ... )\n (2, 4, 3)\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_7get_adjustment_locs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index = 0; __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date = 0; __pyx_t_5numpy_int64_t __pyx_v_asset_id; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_adjustment_locs (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dates_index,&__pyx_n_s_assets_index,&__pyx_n_s_start_date,&__pyx_n_s_end_date,&__pyx_n_s_asset_id,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dates_index)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assets_index)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_adjustment_locs", 1, 5, 5, 1); __PYX_ERR(0, 192, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_adjustment_locs", 1, 5, 5, 2); __PYX_ERR(0, 192, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_adjustment_locs", 1, 5, 5, 3); __PYX_ERR(0, 192, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_asset_id)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("get_adjustment_locs", 1, 5, 5, 4); __PYX_ERR(0, 192, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_adjustment_locs") < 0)) __PYX_ERR(0, 192, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_dates_index = ((__pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t)values[0]); __pyx_v_assets_index = ((__pyx_t_7zipline_3lib_10adjustment_Int64Index_t)values[1]); __pyx_v_start_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[2]); __pyx_v_end_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[3]); __pyx_v_asset_id = __Pyx_PyInt_As_npy_int64(values[4]); if (unlikely((__pyx_v_asset_id == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_adjustment_locs", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 192, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.get_adjustment_locs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_6get_adjustment_locs(__pyx_self, __pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_6get_adjustment_locs(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_adjustment_locs", 0); __Pyx_TraceCall("get_adjustment_locs (wrapper)", __pyx_f[0], 192, 0, __PYX_ERR(0, 192, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_get_adjustment_locs(__pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.get_adjustment_locs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0193: Int64Index_t assets_index,
0194: Timestamp_t start_date,
0195: Timestamp_t end_date,
0196: np.int64_t asset_id):
0197: """
0198: Compute indices suitable for passing to an Adjustment constructor.
0199:
0200: If the specified dates aren't in dates_index, we return the index of the
0201: first date **BEFORE** the supplied date.
0202:
0203: Example:
0204:
0205: >>> from pandas import date_range, Int64Index, Timestamp
0206: >>> dates = date_range('2014-01-01', '2014-01-07')
0207: >>> assets = Int64Index(range(10))
0208: >>> get_adjustment_locs(
0209: ... dates,
0210: ... assets,
0211: ... Timestamp('2014-01-03'),
0212: ... Timestamp('2014-01-05'),
0213: ... 3,
0214: ... )
0215: (2, 4, 3)
0216: """
0217: cdef int start_date_loc
0218:
0219: # None or NaT signifies "All values before the end_date".
+0220: if isnull(start_date):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_isnull); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_start_date)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_start_date)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L3; }
+0221: start_date_loc = 0
__pyx_v_start_date_loc = 0;
0222: else:
0223: # Location of earliest date on or after start_date.
+0224: start_date_loc = dates_index.get_loc(start_date, method='bfill')
/*else*/ { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_dates_index), __pyx_n_s_get_loc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_start_date)); __Pyx_GIVEREF(((PyObject *)__pyx_v_start_date)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_start_date)); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_method, __pyx_n_u_bfill) < 0) __PYX_ERR(0, 224, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_start_date_loc = __pyx_t_6; } __pyx_L3:;
0225:
+0226: return (
__Pyx_XDECREF(__pyx_r);
+0227: start_date_loc,
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_start_date_loc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* … */ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_1 = 0; __pyx_r = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
0228: # Location of latest date on or before start_date.
+0229: dates_index.get_loc(end_date, method='ffill'),
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_dates_index), __pyx_n_s_get_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_end_date)); __Pyx_GIVEREF(((PyObject *)__pyx_v_end_date)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_end_date)); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_method, __pyx_n_u_ffill) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0230: assets_index.get_loc(asset_id), # Must be exact match.
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_assets_index), __pyx_n_s_get_loc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_asset_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0231: )
0232:
0233:
+0234: cpdef _from_assets_and_dates(cls,
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_9_from_assets_and_dates(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment__from_assets_and_dates(PyObject *__pyx_v_cls, __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id, PyObject *__pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_col; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_from_assets_and_dates", 0); __Pyx_TraceCall("_from_assets_and_dates", __pyx_f[0], 234, 0, __PYX_ERR(0, 234, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("zipline.lib.adjustment._from_assets_and_dates", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_9_from_assets_and_dates(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_8_from_assets_and_dates[] = "_from_assets_and_dates(cls, DatetimeIndex_t dates_index, Int64Index_t assets_index, Timestamp_t start_date, Timestamp_t end_date, int64_t asset_id, value)\n\n Helper for constructing an Adjustment instance from coordinates in\n assets/dates indices.\n\n Example\n -------\n\n >>> from pandas import date_range, Int64Index, Timestamp\n >>> dates = date_range('2014-01-01', '2014-01-07')\n >>> assets = Int64Index(range(10))\n >>> Float64Multiply.from_assets_and_dates(\n ... dates,\n ... assets,\n ... Timestamp('2014-01-03'),\n ... Timestamp('2014-01-05'),\n ... 3,\n ... 0.5,\n ... )\n Float64Multiply(first_row=2, last_row=4, first_col=3, last_col=3, value=0.500000)\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_9_from_assets_and_dates(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_cls = 0; __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index = 0; __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date = 0; __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date = 0; __pyx_t_5numpy_int64_t __pyx_v_asset_id; PyObject *__pyx_v_value = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_from_assets_and_dates (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_dates_index,&__pyx_n_s_assets_index,&__pyx_n_s_start_date,&__pyx_n_s_end_date,&__pyx_n_s_asset_id,&__pyx_n_s_value,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cls)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dates_index)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 1); __PYX_ERR(0, 234, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assets_index)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 2); __PYX_ERR(0, 234, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 3); __PYX_ERR(0, 234, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_date)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 4); __PYX_ERR(0, 234, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_asset_id)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 5); __PYX_ERR(0, 234, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, 6); __PYX_ERR(0, 234, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_from_assets_and_dates") < 0)) __PYX_ERR(0, 234, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_cls = values[0]; __pyx_v_dates_index = ((__pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t)values[1]); __pyx_v_assets_index = ((__pyx_t_7zipline_3lib_10adjustment_Int64Index_t)values[2]); __pyx_v_start_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[3]); __pyx_v_end_date = ((__pyx_t_7zipline_3lib_10adjustment_Timestamp_t)values[4]); __pyx_v_asset_id = __Pyx_PyInt_As_npy_int64(values[5]); if (unlikely((__pyx_v_asset_id == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 239, __pyx_L3_error) __pyx_v_value = values[6]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_from_assets_and_dates", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 234, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment._from_assets_and_dates", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_8_from_assets_and_dates(__pyx_self, __pyx_v_cls, __pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_8_from_assets_and_dates(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, __pyx_t_7zipline_3lib_10adjustment_DatetimeIndex_t __pyx_v_dates_index, __pyx_t_7zipline_3lib_10adjustment_Int64Index_t __pyx_v_assets_index, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_start_date, __pyx_t_7zipline_3lib_10adjustment_Timestamp_t __pyx_v_end_date, __pyx_t_5numpy_int64_t __pyx_v_asset_id, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_from_assets_and_dates", 0); __Pyx_TraceCall("_from_assets_and_dates (wrapper)", __pyx_f[0], 234, 0, __PYX_ERR(0, 234, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment__from_assets_and_dates(__pyx_v_cls, __pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment._from_assets_and_dates", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0235: DatetimeIndex_t dates_index,
0236: Int64Index_t assets_index,
0237: Timestamp_t start_date,
0238: Timestamp_t end_date,
0239: np.int64_t asset_id,
0240: object value):
0241: """
0242: Helper for constructing an Adjustment instance from coordinates in
0243: assets/dates indices.
0244:
0245: Example
0246: -------
0247:
0248: >>> from pandas import date_range, Int64Index, Timestamp
0249: >>> dates = date_range('2014-01-01', '2014-01-07')
0250: >>> assets = Int64Index(range(10))
0251: >>> Float64Multiply.from_assets_and_dates(
0252: ... dates,
0253: ... assets,
0254: ... Timestamp('2014-01-03'),
0255: ... Timestamp('2014-01-05'),
0256: ... 3,
0257: ... 0.5,
0258: ... )
0259: Float64Multiply(first_row=2, last_row=4, first_col=3, last_col=3, value=0.500000)
0260: """
0261: cdef:
0262: Py_ssize_t first_row, last_row, col
0263:
+0264: first_row, last_row, col = get_adjustment_locs(
__pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_get_adjustment_locs(__pyx_v_dates_index, __pyx_v_assets_index, __pyx_v_start_date, __pyx_v_end_date, __pyx_v_asset_id, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 264, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 264, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_first_row = __pyx_t_5; __pyx_v_last_row = __pyx_t_6; __pyx_v_col = __pyx_t_7;
0265: dates_index,
0266: assets_index,
0267: start_date,
0268: end_date,
0269: asset_id,
0270: )
+0271: return cls(
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_cls, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
+0272: first_row=first_row,
__pyx_t_1 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_first_row, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0273: last_row=last_row,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_last_row, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0274: first_col=col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_first_col, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0275: last_col=col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_last_col, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0276: value=value,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
0277: )
0278:
0279:
+0280: cdef class Adjustment:
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment { PyObject *(*_key)(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment *__pyx_vtabptr_7zipline_3lib_10adjustment_Adjustment;
0281: """
0282: Base class for Adjustments.
0283:
0284: Subclasses should inherit and provide a `value` attribute and a `mutate`
0285: method.
0286: """
+0287: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_10Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_10Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); __PYX_ERR(0, 287, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); __PYX_ERR(0, 287, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); __PYX_ERR(0, 287, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 287, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 289, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 287, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_10Adjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_10Adjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 287, 0, __PYX_ERR(0, 287, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0288: Py_ssize_t first_row,
0289: Py_ssize_t last_row,
0290: Py_ssize_t first_col,
0291: Py_ssize_t last_col):
+0292: if not (0 <= first_row <= last_row):
__pyx_t_1 = (0 <= __pyx_v_first_row); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_first_row <= __pyx_v_last_row); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (unlikely(__pyx_t_2)) { /* … */ }
+0293: raise ValueError(
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 293, __pyx_L1_error)
+0294: 'first_row must be in the range [0, last_row], got:'
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 127; __Pyx_INCREF(__pyx_kp_u_first_row_must_be_in_the_range_0); __pyx_t_4 += 61; __Pyx_GIVEREF(__pyx_kp_u_first_row_must_be_in_the_range_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_first_row_must_be_in_the_range_0); /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0295: ' first_row=%s last_row=%s' % (
+0296: first_row,
__pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_2); __pyx_t_4 += 10; __Pyx_GIVEREF(__pyx_kp_u_last_row_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_last_row_2);
+0297: last_row,
__pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_6); __pyx_t_6 = 0;
0298: ),
0299: )
+0300: if not (0 <= first_col <= last_col):
__pyx_t_2 = (0 <= __pyx_v_first_col); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_first_col <= __pyx_v_last_col); } __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); if (unlikely(__pyx_t_1)) { /* … */ }
+0301: raise ValueError(
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 301, __pyx_L1_error)
+0302: 'first_col must be in the range [0, last_col], got:'
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 127; __Pyx_INCREF(__pyx_kp_u_first_col_must_be_in_the_range_0); __pyx_t_4 += 61; __Pyx_GIVEREF(__pyx_kp_u_first_col_must_be_in_the_range_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_first_col_must_be_in_the_range_0); /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0303: ' first_col=%s last_col=%s' % (
+0304: first_col,
__pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_2); __pyx_t_4 += 10; __Pyx_GIVEREF(__pyx_kp_u_last_col_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_last_col_2);
+0305: last_col,
__pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_6); __pyx_t_6 = 0;
0306: ),
0307: )
0308:
+0309: self.first_col = first_col
__pyx_v_self->first_col = __pyx_v_first_col;
+0310: self.last_col = last_col
__pyx_v_self->last_col = __pyx_v_last_col;
+0311: self.first_row = first_row
__pyx_v_self->first_row = __pyx_v_first_row;
+0312: self.last_row = last_row
__pyx_v_self->last_row = __pyx_v_last_row;
0313:
+0314: from_assets_and_dates = classmethod(_from_assets_and_dates)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_from_assets_and_dates_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Adjustment->tp_dict, __pyx_n_s_from_assets_and_dates, __pyx_t_1) < 0) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_7zipline_3lib_10adjustment_Adjustment);
0315:
+0316: def __richcmp__(self, object other, int op):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_3__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_3__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_10Adjustment_2__richcmp__(((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self), ((PyObject *)__pyx_v_other), ((int)__pyx_v_op)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_10Adjustment_2__richcmp__(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__richcmp__", 0); __Pyx_TraceCall("__richcmp__", __pyx_f[0], 316, 0, __PYX_ERR(0, 316, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0317: """
0318: Rich comparison method. Only Equality is defined.
0319: """
+0320: if op != Py_EQ or type(self) != type(other):
__pyx_t_2 = ((__pyx_v_op != Py_EQ) != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), ((PyObject *)Py_TYPE(__pyx_v_other)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 320, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0321: return NotImplemented
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_builtin_NotImplemented); __pyx_r = __pyx_builtin_NotImplemented; goto __pyx_L0;
0322:
+0323: return self._key() == other._key()
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self->__pyx_vtab)->_key(__pyx_v_self, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
0324:
+0325: cpdef tuple _key(self):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_5_key(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_10Adjustment__key(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_v_self, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_key", 0); __Pyx_TraceCall("_key", __pyx_f[0], 325, 0, __PYX_ERR(0, 325, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_5_key)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 325, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment._key", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_5_key(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_10Adjustment_4_key[] = "Adjustment._key(self) -> tuple\n\n Comparison key\n "; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_5_key(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_key (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_10Adjustment_4_key(((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_10Adjustment_4_key(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_key", 0); __Pyx_TraceCall("_key (wrapper)", __pyx_f[0], 325, 0, __PYX_ERR(0, 325, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_10Adjustment__key(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment._key", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0326: """
0327: Comparison key
0328: """
+0329: return (
__Pyx_XDECREF(__pyx_r);
+0330: self.first_row,
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_r = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
+0331: self.last_row,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0332: self.first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0333: self.last_col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0334: self.value,
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
0335: )
0336:
+0337: def __reduce__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_7__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_10Adjustment_6__reduce__[] = "Adjustment.__reduce__(self)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Adjustment_7__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_10Adjustment_6__reduce__(((struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_10Adjustment_6__reduce__(struct __pyx_obj_7zipline_3lib_10adjustment_Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__", 0); __Pyx_TraceCall("__reduce__", __pyx_f[0], 337, 0, __PYX_ERR(0, 337, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("zipline.lib.adjustment.Adjustment.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0338: return type(self), self._key()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment *)__pyx_v_self->__pyx_vtab)->_key(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0339:
0340:
+0341: cdef class Float64Adjustment(Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Adjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Adjustment *__pyx_vtabptr_7zipline_3lib_10adjustment_Float64Adjustment;
0342: """
0343: Base class for adjustments that operate on Float64 data.
0344: """
+0345: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_17Float64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_17Float64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; __pyx_t_5numpy_float64_t __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_value,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 345, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 345, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 346, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 347, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 348, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 349, __pyx_L3_error) __pyx_v_value = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_value == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 350, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17Float64Adjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Float64Adjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_17Float64Adjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Adjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col, __pyx_t_5numpy_float64_t __pyx_v_value) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 345, 0, __PYX_ERR(0, 345, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0346: Py_ssize_t first_row,
0347: Py_ssize_t last_row,
0348: Py_ssize_t first_col,
0349: Py_ssize_t last_col,
0350: float64_t value):
0351:
+0352: super(Float64Adjustment, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Adjustment)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Adjustment)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Adjustment)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0353: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0354: last_row=last_row,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0355: first_col=first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0356: last_col=last_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0357: )
+0358: self.value = value
__pyx_v_self->value = __pyx_v_value;
0359:
+0360: from_assets_and_dates = classmethod(_from_assets_and_dates)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_from_assets_and_dates_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float64Adjustment->tp_dict, __pyx_n_s_from_assets_and_dates, __pyx_t_2) < 0) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_7zipline_3lib_10adjustment_Float64Adjustment);
0361:
+0362: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17Float64Adjustment_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17Float64Adjustment_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17Float64Adjustment_2__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment_Float64Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_17Float64Adjustment_2__repr__(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 362, 0, __PYX_ERR(0, 362, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Adjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0363: return (
__Pyx_XDECREF(__pyx_r);
+0364: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0365: " first_col=%d, last_col=%d, value=%f)" % (
+0366: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0367: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0368: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0369: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0370: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0371: self.value,
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_Format(__pyx_t_5, __pyx_n_u_f); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0372: )
0373: )
0374:
0375:
+0376: cdef class Float64Multiply(Float64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Multiply { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Adjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Multiply *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Multiply *__pyx_vtabptr_7zipline_3lib_10adjustment_Float64Multiply;
0377: """
0378: An adjustment that multiplies by a float.
0379:
0380: Example
0381: -------
0382:
0383: >>> import numpy as np
0384: >>> arr = np.arange(9, dtype=float).reshape(3, 3)
0385: >>> arr
0386: array([[ 0., 1., 2.],
0387: [ 3., 4., 5.],
0388: [ 6., 7., 8.]])
0389:
0390: >>> adj = Float64Multiply(
0391: ... first_row=1,
0392: ... last_row=2,
0393: ... first_col=1,
0394: ... last_col=2,
0395: ... value=4.0,
0396: ... )
0397: >>> adj.mutate(arr)
0398: >>> arr
0399: array([[ 0., 1., 2.],
0400: [ 3., 16., 20.],
0401: [ 6., 28., 32.]])
0402: """
0403:
+0404: cpdef mutate(self, float64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15Float64Multiply_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_15Float64Multiply_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Multiply *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_float64_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 404, 0, __PYX_ERR(0, 404, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_15Float64Multiply_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 404, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Multiply.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15Float64Multiply_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_15Float64Multiply_mutate[] = "Float64Multiply.mutate(self, float64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15Float64Multiply_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 404, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float64Multiply.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_15Float64Multiply_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Float64Multiply *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_15Float64Multiply_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Multiply *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 404, 0, __PYX_ERR(0, 404, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 404, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_15Float64Multiply_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Multiply.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0405: cdef Py_ssize_t row, col
+0406: cdef float64_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.value; __pyx_v_value = __pyx_t_6;
0407:
0408: # last_col + 1 because last_col should also be affected.
+0409: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
0410: # last_row + 1 because last_row should also be affected.
+0411: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+0412: data[row, col] *= value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 412, __pyx_L1_error) } *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) *= __pyx_v_value; } }
0413:
0414:
+0415: cdef class Float64Overwrite(Float64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Overwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Adjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Overwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Overwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Float64Overwrite;
0416: """
0417: An adjustment that overwrites with a float.
0418:
0419: Example
0420: -------
0421:
0422: >>> import numpy as np
0423: >>> arr = np.arange(9, dtype=float).reshape(3, 3)
0424: >>> arr
0425: array([[ 0., 1., 2.],
0426: [ 3., 4., 5.],
0427: [ 6., 7., 8.]])
0428:
0429: >>> adj = Float64Overwrite(
0430: ... first_row=1,
0431: ... last_row=2,
0432: ... first_col=1,
0433: ... last_col=2,
0434: ... value=0.0,
0435: ... )
0436: >>> adj.mutate(arr)
0437: >>> arr
0438: array([[ 0., 1., 2.],
0439: [ 3., 0., 0.],
0440: [ 6., 0., 0.]])
0441: """
0442:
+0443: cpdef mutate(self, float64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16Float64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_16Float64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_float64_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 443, 0, __PYX_ERR(0, 443, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_16Float64Overwrite_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 443, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16Float64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_16Float64Overwrite_mutate[] = "Float64Overwrite.mutate(self, float64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16Float64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 443, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_16Float64Overwrite_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Float64Overwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_16Float64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 443, 0, __PYX_ERR(0, 443, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 443, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_16Float64Overwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0444: cdef Py_ssize_t row, col
+0445: cdef float64_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.value; __pyx_v_value = __pyx_t_6;
0446:
0447: # last_col + 1 because last_col should also be affected.
+0448: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
0449: # last_row + 1 because last_row should also be affected.
+0450: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+0451: data[row, col] = value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 451, __pyx_L1_error) } *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) = __pyx_v_value; } }
0452:
0453:
+0454: cdef class ArrayAdjustment(Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment *__pyx_vtabptr_7zipline_3lib_10adjustment_ArrayAdjustment;
0455: """
0456: Base class for ArrayAdjustments.
0457:
0458: Subclasses should inherit and provide a `values` attribute and a `mutate`
0459: method.
0460: """
+0461: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15ArrayAdjustment_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15ArrayAdjustment_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_15ArrayAdjustment___repr__(((struct __pyx_obj_7zipline_3lib_10adjustment_ArrayAdjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_15ArrayAdjustment___repr__(struct __pyx_obj_7zipline_3lib_10adjustment_ArrayAdjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 461, 0, __PYX_ERR(0, 461, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("zipline.lib.adjustment.ArrayAdjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0462: return (
__Pyx_XDECREF(__pyx_r);
+0463: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0464: " first_col=%d, last_col=%d, values=%s)" % (
+0465: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0466: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0467: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0468: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0469: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_values); __pyx_t_2 += 9; __Pyx_GIVEREF(__pyx_kp_u_values); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_values);
+0470: asarray(self.values),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_values_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0471: )
0472: )
0473:
+0474: cdef class Float641DArrayOverwrite(ArrayAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float641DArrayOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float641DArrayOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Float641DArrayOverwrite;
0475: """
0476: An adjustment that overwrites subarrays with a value for each subarray.
0477:
0478: Example
0479: -------
0480:
0481: >>> import numpy as np
0482: >>> arr = np.arange(25, dtype=float).reshape(5, 5)
0483: >>> arr
0484: array([[ 0., 1., 2., 3., 4.],
0485: [ 5., 6., 7., 8., 9.],
0486: [ 10., 11., 12., 13., 14.],
0487: [ 15., 16., 17., 18., 19.],
0488: [ 20., 21., 22., 23., 24.]])
0489: >>> adj = Float641DArrayOverwrite(
0490: ... row_start=0,
0491: ... row_end=3,
0492: ... column_start=0,
0493: ... column_end=0,
0494: ... values=np.array([1, 2, 3, 4]),
0495: )
0496: >>> adj.mutate(arr)
0497: >>> arr
0498: array([[ 1., 1., 2., 3., 4.],
0499: [ 2., 6., 7., 8., 9.],
0500: [ 3., 11., 12., 13., 14.],
0501: [ 4., 16., 17., 18., 19.],
0502: [ 20., 21., 22., 23., 24.]])
0503: """
+0504: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_5numpy_int64_t __pyx_v_first_row; __pyx_t_5numpy_int64_t __pyx_v_last_row; __pyx_t_5numpy_int64_t __pyx_v_first_col; __pyx_t_5numpy_int64_t __pyx_v_last_col; __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_values_2,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 504, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 504, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 504, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values_2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 504, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 504, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyInt_As_npy_int64(values[0]); if (unlikely((__pyx_v_first_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 505, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyInt_As_npy_int64(values[1]); if (unlikely((__pyx_v_last_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 506, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyInt_As_npy_int64(values[2]); if (unlikely((__pyx_v_first_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 507, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyInt_As_npy_int64(values[3]); if (unlikely((__pyx_v_last_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 508, __pyx_L3_error) __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 509, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 504, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float641DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Float641DArrayOverwrite___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_values); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_23Float641DArrayOverwrite___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *__pyx_v_self, __pyx_t_5numpy_int64_t __pyx_v_first_row, __pyx_t_5numpy_int64_t __pyx_v_last_row, __pyx_t_5numpy_int64_t __pyx_v_first_col, __pyx_t_5numpy_int64_t __pyx_v_last_col, __Pyx_memviewslice __pyx_v_values) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 504, 0, __PYX_ERR(0, 504, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment.Float641DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_values, 1); __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0505: int64_t first_row,
0506: int64_t last_row,
0507: int64_t first_col,
0508: int64_t last_col,
0509: float64_t[:] values):
+0510: super(Float641DArrayOverwrite, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float641DArrayOverwrite)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float641DArrayOverwrite)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Float641DArrayOverwrite)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0511: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0512: last_row=last_row,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0513: first_col=first_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0514: last_col=last_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0515: )
+0516: if last_row + 1 - first_row != len(values):
__pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_values);
__pyx_t_5 = ((((__pyx_v_last_row + 1) - __pyx_v_first_row) != __pyx_t_4) != 0);
if (unlikely(__pyx_t_5)) {
/* … */
}
+0517: raise ValueError(
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 517, __pyx_L1_error)
+0518: "Mismatch: got %d values for rows starting at index %d and "
__pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = 127; __Pyx_INCREF(__pyx_kp_u_Mismatch_got); __pyx_t_6 += 14; __Pyx_GIVEREF(__pyx_kp_u_Mismatch_got); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Mismatch_got); /* … */ __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 7, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0519: "ending at index %d." % (len(values), first_row, last_row)
__pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_values); __pyx_t_2 = __Pyx_PyUnicode_From_size_t(__pyx_t_4, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_6 += 35; __Pyx_GIVEREF(__pyx_kp_u_values_for_rows_starting_at_ind); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_2 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_2), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_and_ending_at_index); __pyx_t_6 += 21; __Pyx_GIVEREF(__pyx_kp_u_and_ending_at_index); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u_and_ending_at_index); __pyx_t_1 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_1), __pyx_n_u_d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_7; __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_6 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_kp_u__2);
0520: )
+0521: self.values = values
__PYX_XDEC_MEMVIEW(&__pyx_v_self->values, 0); __PYX_INC_MEMVIEW(&__pyx_v_values, 0); __pyx_v_self->values = __pyx_v_values;
0522:
+0523: cpdef mutate(self, float64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 523, 0, __PYX_ERR(0, 523, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_3mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 523, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_AddTraceback("zipline.lib.adjustment.Float641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_values, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_2mutate[] = "Float641DArrayOverwrite.mutate(self, float64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 523, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_2mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_2mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float641DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 523, 0, __PYX_ERR(0, 523, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 523, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_23Float641DArrayOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Float641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0524: cdef Py_ssize_t i, row, col
+0525: cdef float64_t[:] values = self.values
if (unlikely(!__pyx_v_self->values.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");__PYX_ERR(0, 525, __pyx_L1_error)} __pyx_t_6 = __pyx_v_self->values; __PYX_INC_MEMVIEW(&__pyx_t_6, 1); __pyx_v_values = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0526: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
+0527: for i, row in enumerate(range(self.first_row, self.last_row + 1)):
__pyx_t_10 = 0; __pyx_t_11 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_12 = __pyx_t_11; for (__pyx_t_13 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_row = __pyx_t_13; __pyx_v_i = __pyx_t_10; __pyx_t_10 = (__pyx_t_10 + 1);
+0528: data[row, col] = values[i]
__pyx_t_14 = __pyx_v_i; __pyx_t_15 = -1; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_values.shape[0]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_14 >= __pyx_v_values.shape[0])) __pyx_t_15 = 0; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 528, __pyx_L1_error) } __pyx_t_16 = __pyx_v_row; __pyx_t_17 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_16 < 0) { __pyx_t_16 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_16 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_16 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_17 < 0) { __pyx_t_17 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_17 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_17 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 528, __pyx_L1_error) } *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_16 * __pyx_v_data.strides[0]) ) + __pyx_t_17 * __pyx_v_data.strides[1]) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_values.data + __pyx_t_14 * __pyx_v_values.strides[0]) ))); } }
0529:
0530:
+0531: cdef class Datetime641DArrayOverwrite(ArrayAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite;
0532: """
0533: An adjustment that overwrites subarrays with a value for each subarray.
0534:
0535: Example
0536: -------
0537:
0538: >>> import numpy as np; import pandas as pd
0539: >>> dts = pd.date_range('2014', freq='D', periods=9, tz='UTC')
0540: >>> arr = dts.values.reshape(3, 3)
0541: >>> arr == np.datetime64(0, 'ns')
0542: array([[False, False, False],
0543: [False, False, False],
0544: [False, False, False]], dtype=bool)
0545: >>> adj = Datetime641DArrayOverwrite(
0546: ... first_row=1,
0547: ... last_row=2,
0548: ... first_col=1,
0549: ... last_col=2,
0550: ... values=np.array([
0551: ... np.datetime64(0, 'ns'),
0552: ... np.datetime64(1, 'ns')
0553: ... ])
0554: ... )
0555: >>> adj.mutate(arr.view(np.int64))
0556: >>> arr == np.datetime64(0, 'ns')
0557: array([[False, False, False],
0558: [False, True, True],
0559: [False, False, False]], dtype=bool)
0560: >>> arr == np.datetime64(1, 'ns')
0561: array([[False, False, False],
0562: [False, False, False],
0563: [False, True, True]], dtype=bool)
0564: """
+0565: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_5numpy_int64_t __pyx_v_first_row; __pyx_t_5numpy_int64_t __pyx_v_last_row; __pyx_t_5numpy_int64_t __pyx_v_first_col; __pyx_t_5numpy_int64_t __pyx_v_last_col; PyObject *__pyx_v_values = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_values_2,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 565, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 565, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 565, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values_2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 565, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 565, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyInt_As_npy_int64(values[0]); if (unlikely((__pyx_v_first_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyInt_As_npy_int64(values[1]); if (unlikely((__pyx_v_last_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyInt_As_npy_int64(values[2]); if (unlikely((__pyx_v_first_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyInt_As_npy_int64(values[3]); if (unlikely((__pyx_v_last_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 569, __pyx_L3_error) __pyx_v_values = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 565, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_values); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *__pyx_v_self, __pyx_t_5numpy_int64_t __pyx_v_first_row, __pyx_t_5numpy_int64_t __pyx_v_last_row, __pyx_t_5numpy_int64_t __pyx_v_first_col, __pyx_t_5numpy_int64_t __pyx_v_last_col, PyObject *__pyx_v_values) { PyObject *__pyx_7genexpr__pyx_v_value = NULL; int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 565, 0, __PYX_ERR(0, 565, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value); __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0566: int64_t first_row,
0567: int64_t last_row,
0568: int64_t first_col,
0569: int64_t last_col,
0570: object values):
+0571: super(Datetime641DArrayOverwrite, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0572: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0573: last_row=last_row,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0574: first_col=first_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0575: last_col=last_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0576: )
+0577: if last_row + 1 - first_row != len(values):
__pyx_t_4 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 577, __pyx_L1_error) __pyx_t_5 = ((((__pyx_v_last_row + 1) - __pyx_v_first_row) != __pyx_t_4) != 0); if (unlikely(__pyx_t_5)) { /* … */ }
+0578: raise ValueError("Mismatch: got %d values for rows starting at"
__pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_6 = 127; __Pyx_INCREF(__pyx_kp_u_Mismatch_got); __pyx_t_4 += 14; __Pyx_GIVEREF(__pyx_kp_u_Mismatch_got); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Mismatch_got); /* … */ __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 7, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 578, __pyx_L1_error)
0579: " index %d and ending at index %d." % (
+0580: len(values), first_row, last_row)
__pyx_t_7 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 580, __pyx_L1_error) __pyx_t_2 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_7, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_4 += 35; __Pyx_GIVEREF(__pyx_kp_u_values_for_rows_starting_at_ind); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_2 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_2), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_6; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_and_ending_at_index); __pyx_t_4 += 21; __Pyx_GIVEREF(__pyx_kp_u_and_ending_at_index); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u_and_ending_at_index); __pyx_t_1 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_1), __pyx_n_u_d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_6; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_kp_u__2);
0581: )
+0582: self.values = asarray([datetime_to_int(value) for value in values])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_values)) || PyTuple_CheckExact(__pyx_v_values)) { __pyx_t_8 = __pyx_v_values; __Pyx_INCREF(__pyx_t_8); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L6_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_t_10); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 582, __pyx_L6_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_8, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_t_10); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 582, __pyx_L6_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_8, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 582, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_value, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_f_7zipline_3lib_10adjustment_datetime_to_int(__pyx_7genexpr__pyx_v_value); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 582, __pyx_L6_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value); __pyx_7genexpr__pyx_v_value = 0; goto __pyx_L9_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value); __pyx_7genexpr__pyx_v_value = 0; goto __pyx_L1_error; __pyx_L9_exit_scope:; } /* exit inner scope */ __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_self->values, 0); __pyx_v_self->values = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
0583:
+0584: cpdef mutate(self, int64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 584, 0, __PYX_ERR(0, 584, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_3mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 584, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_values, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_2mutate[] = "Datetime641DArrayOverwrite.mutate(self, int64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_int64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 584, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_2mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_2mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 584, 0, __PYX_ERR(0, 584, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 584, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0585: cdef Py_ssize_t i, row, col
+0586: cdef int64_t[:] values = self.values
if (unlikely(!__pyx_v_self->values.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");__PYX_ERR(0, 586, __pyx_L1_error)} __pyx_t_6 = __pyx_v_self->values; __PYX_INC_MEMVIEW(&__pyx_t_6, 1); __pyx_v_values = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0587: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
+0588: for i, row in enumerate(range(self.first_row, self.last_row + 1)):
__pyx_t_10 = 0; __pyx_t_11 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_12 = __pyx_t_11; for (__pyx_t_13 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_row = __pyx_t_13; __pyx_v_i = __pyx_t_10; __pyx_t_10 = (__pyx_t_10 + 1);
+0589: data[row, col] = values[i]
__pyx_t_14 = __pyx_v_i; __pyx_t_15 = -1; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_values.shape[0]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_14 >= __pyx_v_values.shape[0])) __pyx_t_15 = 0; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 589, __pyx_L1_error) } __pyx_t_16 = __pyx_v_row; __pyx_t_17 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_16 < 0) { __pyx_t_16 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_16 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_16 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_17 < 0) { __pyx_t_17 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_17 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_17 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 589, __pyx_L1_error) } *((__pyx_t_5numpy_int64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_16 * __pyx_v_data.strides[0]) ) + __pyx_t_17 * __pyx_v_data.strides[1]) )) = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_values.data + __pyx_t_14 * __pyx_v_values.strides[0]) ))); } }
0590:
+0591: def __reduce__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_4__reduce__[] = "Datetime641DArrayOverwrite.__reduce__(self)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_4__reduce__(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_26Datetime641DArrayOverwrite_4__reduce__(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime641DArrayOverwrite *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__", 0); __Pyx_TraceCall("__reduce__", __pyx_f[0], 591, 0, __PYX_ERR(0, 591, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime641DArrayOverwrite.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0592: return type(self), (
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+0593: self.first_row,
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0;
+0594: self.last_row,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0595: self.first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0596: self.last_col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0597: self.values.view('datetime64[ns]'),
if (unlikely(!__pyx_v_self->values.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");__PYX_ERR(0, 597, __pyx_L1_error)} __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_self->values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_view); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_kp_u_datetime64_ns) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_kp_u_datetime64_ns); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0598: )
0599:
0600:
+0601: cdef class Object1DArrayOverwrite(ArrayAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Object1DArrayOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *, PyObject *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Object1DArrayOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Object1DArrayOverwrite;
+0602: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_5numpy_int64_t __pyx_v_first_row; __pyx_t_5numpy_int64_t __pyx_v_last_row; __pyx_t_5numpy_int64_t __pyx_v_first_col; __pyx_t_5numpy_int64_t __pyx_v_last_col; PyObject *__pyx_v_values = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_values_2,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 602, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 602, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 602, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values_2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 602, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 602, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyInt_As_npy_int64(values[0]); if (unlikely((__pyx_v_first_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyInt_As_npy_int64(values[1]); if (unlikely((__pyx_v_last_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 604, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyInt_As_npy_int64(values[2]); if (unlikely((__pyx_v_first_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 605, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyInt_As_npy_int64(values[3]); if (unlikely((__pyx_v_last_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 606, __pyx_L3_error) __pyx_v_values = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 602, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Object1DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_22Object1DArrayOverwrite___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_values); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_22Object1DArrayOverwrite___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *__pyx_v_self, __pyx_t_5numpy_int64_t __pyx_v_first_row, __pyx_t_5numpy_int64_t __pyx_v_last_row, __pyx_t_5numpy_int64_t __pyx_v_first_col, __pyx_t_5numpy_int64_t __pyx_v_last_col, PyObject *__pyx_v_values) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 602, 0, __PYX_ERR(0, 602, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment.Object1DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0603: int64_t first_row,
0604: int64_t last_row,
0605: int64_t first_col,
0606: int64_t last_col,
0607: object values):
+0608: super(Object1DArrayOverwrite, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Object1DArrayOverwrite)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Object1DArrayOverwrite)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Object1DArrayOverwrite)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0609: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0610: last_row=last_row,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0611: first_col=first_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0612: last_col=last_col,
__pyx_t_3 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0613: )
+0614: if last_row + 1 - first_row != len(values):
__pyx_t_4 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 614, __pyx_L1_error) __pyx_t_5 = ((((__pyx_v_last_row + 1) - __pyx_v_first_row) != __pyx_t_4) != 0); if (unlikely(__pyx_t_5)) { /* … */ }
+0615: raise ValueError(
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 615, __pyx_L1_error)
+0616: "Mismatch: got %d values for rows starting at index %d and "
__pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_6 = 127; __Pyx_INCREF(__pyx_kp_u_Mismatch_got); __pyx_t_4 += 14; __Pyx_GIVEREF(__pyx_kp_u_Mismatch_got); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Mismatch_got); /* … */ __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 7, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0617: "ending at index %d." % (len(values), first_row, last_row)
__pyx_t_7 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 617, __pyx_L1_error) __pyx_t_2 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_7, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_4 += 35; __Pyx_GIVEREF(__pyx_kp_u_values_for_rows_starting_at_ind); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_2 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_2), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_6; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_and_ending_at_index); __pyx_t_4 += 21; __Pyx_GIVEREF(__pyx_kp_u_and_ending_at_index); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u_and_ending_at_index); __pyx_t_1 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_1), __pyx_n_u_d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_6; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_kp_u__2);
0618: )
+0619: self.values = values[:, None]
__pyx_slice__3 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__3)) __PYX_ERR(0, 619, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__3); __Pyx_GIVEREF(__pyx_slice__3); /* … */ __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_values, __pyx_tuple__4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->values); __Pyx_DECREF(__pyx_v_self->values); __pyx_v_self->values = __pyx_t_3; __pyx_t_3 = 0; __pyx_tuple__4 = PyTuple_Pack(2, __pyx_slice__3, Py_None); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 619, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4);
0620:
+0621: cpdef mutate(self, object data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *__pyx_v_self, PyObject *__pyx_v_data, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 621, 0, __PYX_ERR(0, 621, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_3mutate)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_data); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Object1DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_2mutate[] = "Object1DArrayOverwrite.mutate(self, data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_2mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *)__pyx_v_self), ((PyObject *)__pyx_v_data)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_2mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Object1DArrayOverwrite *__pyx_v_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 621, 0, __PYX_ERR(0, 621, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_22Object1DArrayOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Object1DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0622: # data is an object here because this is intended to be used with a
0623: # `zipline.lib.LabelArray`.
0624:
+0625: data[
__pyx_t_4 = PySlice_New(__pyx_t_2, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_5 = PySlice_New(__pyx_t_3, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; if (unlikely(PyObject_SetItem(__pyx_v_data, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0626: self.first_row:self.last_row + 1,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t((__pyx_v_self->__pyx_base.__pyx_base.last_row + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0627: self.first_col:self.last_col + 1,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyInt_FromSsize_t((__pyx_v_self->__pyx_base.__pyx_base.last_col + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0628: ] = self.values
__pyx_t_1 = __pyx_v_self->values;
__Pyx_INCREF(__pyx_t_1);
0629:
0630:
0631:
+0632: cdef class Boolean1DArrayOverwrite(ArrayAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ArrayAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite;
+0633: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __pyx_t_5numpy_int64_t __pyx_v_first_row; __pyx_t_5numpy_int64_t __pyx_v_last_row; __pyx_t_5numpy_int64_t __pyx_v_first_col; __pyx_t_5numpy_int64_t __pyx_v_last_col; PyObject *__pyx_v_values = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_values_2,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 633, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 633, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 633, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values_2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 633, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 633, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyInt_As_npy_int64(values[0]); if (unlikely((__pyx_v_first_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 634, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyInt_As_npy_int64(values[1]); if (unlikely((__pyx_v_last_row == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 635, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyInt_As_npy_int64(values[2]); if (unlikely((__pyx_v_first_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 636, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyInt_As_npy_int64(values[3]); if (unlikely((__pyx_v_last_col == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 637, __pyx_L3_error) __pyx_v_values = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 633, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_values); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_v_self, __pyx_t_5numpy_int64_t __pyx_v_first_row, __pyx_t_5numpy_int64_t __pyx_v_last_row, __pyx_t_5numpy_int64_t __pyx_v_first_col, __pyx_t_5numpy_int64_t __pyx_v_last_col, PyObject *__pyx_v_values) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 633, 0, __PYX_ERR(0, 633, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0634: int64_t first_row,
0635: int64_t last_row,
0636: int64_t first_col,
0637: int64_t last_col,
0638: object values):
+0639: if values.dtype.kind != 'b':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_values, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_kind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_b, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_3)) { /* … */ }
+0640: raise TypeError('dtype is not bool, got: %r' % values.dtype)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_values, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_dtype_is_not_bool_got_r, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 640, __pyx_L1_error)
0641:
+0642: super(Boolean1DArrayOverwrite, self).__init__(
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0643: first_row=first_row,
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_first_row, __pyx_t_4) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0644: last_row=last_row,
__pyx_t_4 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_last_row, __pyx_t_4) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0645: first_col=first_col,
__pyx_t_4 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_first_col, __pyx_t_4) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0646: last_col=last_col,
__pyx_t_4 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_last_col, __pyx_t_4) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
0647: )
0648:
+0649: if last_row + 1 - first_row != len(values):
__pyx_t_5 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 649, __pyx_L1_error) __pyx_t_3 = ((((__pyx_v_last_row + 1) - __pyx_v_first_row) != __pyx_t_5) != 0); if (unlikely(__pyx_t_3)) { /* … */ }
+0650: raise ValueError(
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 650, __pyx_L1_error)
+0651: "Mismatch: got %d values for rows starting at index %d and "
__pyx_t_4 = PyTuple_New(7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = 127; __Pyx_INCREF(__pyx_kp_u_Mismatch_got); __pyx_t_5 += 14; __Pyx_GIVEREF(__pyx_kp_u_Mismatch_got); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_Mismatch_got); /* … */ __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_4, 7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0652: "ending at index %d." % (len(values), first_row, last_row)
__pyx_t_7 = PyObject_Length(__pyx_v_values); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 652, __pyx_L1_error) __pyx_t_1 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_7, 0, ' ', 'd'); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_5 += 35; __Pyx_GIVEREF(__pyx_kp_u_values_for_rows_starting_at_ind); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_values_for_rows_starting_at_ind); __pyx_t_1 = __Pyx_PyInt_From_npy_int64(__pyx_v_first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_1), __pyx_n_u_d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_6; __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u_and_ending_at_index); __pyx_t_5 += 21; __Pyx_GIVEREF(__pyx_kp_u_and_ending_at_index); PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_kp_u_and_ending_at_index); __pyx_t_2 = __Pyx_PyInt_From_npy_int64(__pyx_v_last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_2), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_6; __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_5 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_kp_u__2);
0653: )
+0654: self.values = values.view('uint8')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_values, __pyx_n_s_view); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_n_u_uint8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_u_uint8); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_self->values, 0); __pyx_v_self->values = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL;
0655:
+0656: cpdef mutate(self, np.uint8_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 656, 0, __PYX_ERR(0, 656, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_3mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 656, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_values, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_2mutate[] = "Boolean1DArrayOverwrite.mutate(self, uint8_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_3mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_uint8_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 656, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_2mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_2mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 656, 0, __PYX_ERR(0, 656, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 656, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0657: cdef Py_ssize_t i, row, col
+0658: cdef np.uint8_t[:] values = self.values
if (unlikely(!__pyx_v_self->values.memview)) {PyErr_SetString(PyExc_AttributeError,"Memoryview is not initialized");__PYX_ERR(0, 658, __pyx_L1_error)} __pyx_t_6 = __pyx_v_self->values; __PYX_INC_MEMVIEW(&__pyx_t_6, 1); __pyx_v_values = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0659: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
+0660: for i, row in enumerate(range(self.first_row, self.last_row + 1)):
__pyx_t_10 = 0; __pyx_t_11 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_12 = __pyx_t_11; for (__pyx_t_13 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { __pyx_v_row = __pyx_t_13; __pyx_v_i = __pyx_t_10; __pyx_t_10 = (__pyx_t_10 + 1);
+0661: data[row, col] = values[i]
__pyx_t_14 = __pyx_v_i; __pyx_t_15 = -1; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_values.shape[0]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_14 >= __pyx_v_values.shape[0])) __pyx_t_15 = 0; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 661, __pyx_L1_error) } __pyx_t_16 = __pyx_v_row; __pyx_t_17 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_16 < 0) { __pyx_t_16 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_16 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_16 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_17 < 0) { __pyx_t_17 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_17 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_17 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 661, __pyx_L1_error) } *((__pyx_t_5numpy_uint8_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_16 * __pyx_v_data.strides[0]) ) + __pyx_t_17 * __pyx_v_data.strides[1]) )) = (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_values.data + __pyx_t_14 * __pyx_v_values.strides[0]) ))); } }
0662:
+0663: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_5__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_5__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_4__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_4__repr__(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 663, 0, __PYX_ERR(0, 663, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0664: return (
__Pyx_XDECREF(__pyx_r);
+0665: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
0666: " first_col=%d, last_col=%d, value=%r)" % (
+0667: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0668: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0669: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0670: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0671: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0672: self.value.view('?'),
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_view); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_kp_u__5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_kp_u__5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0673: )
0674: )
0675:
+0676: def __reduce__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_7__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_6__reduce__[] = "Boolean1DArrayOverwrite.__reduce__(self)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_7__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_6__reduce__(((struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_23Boolean1DArrayOverwrite_6__reduce__(struct __pyx_obj_7zipline_3lib_10adjustment_Boolean1DArrayOverwrite *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__", 0); __Pyx_TraceCall("__reduce__", __pyx_f[0], 676, 0, __PYX_ERR(0, 676, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("zipline.lib.adjustment.Boolean1DArrayOverwrite.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0677: return type(self), (
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+0678: self.first_row,
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0;
+0679: self.last_row,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0680: self.first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0681: self.last_col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0682: self.value.view('?'),
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_view); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_kp_u__5) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_kp_u__5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0683: )
0684:
0685:
+0686: cdef class Float64Add(Float64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Add { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Adjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Add *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Float64Add *__pyx_vtabptr_7zipline_3lib_10adjustment_Float64Add;
0687: """
0688: An adjustment that adds a float.
0689:
0690: Example
0691: -------
0692:
0693: >>> import numpy as np
0694: >>> arr = np.arange(9, dtype=float).reshape(3, 3)
0695: >>> arr
0696: array([[ 0., 1., 2.],
0697: [ 3., 4., 5.],
0698: [ 6., 7., 8.]])
0699:
0700: >>> adj = Float64Add(
0701: ... first_row=1,
0702: ... last_row=2,
0703: ... first_col=1,
0704: ... last_col=2,
0705: ... value=1.0,
0706: ... )
0707: >>> adj.mutate(arr)
0708: >>> arr
0709: array([[ 0., 1., 2.],
0710: [ 3., 5., 6.],
0711: [ 6., 8., 9.]])
0712: """
0713:
+0714: cpdef mutate(self, float64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Float64Add_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_10Float64Add_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Add *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_float64_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 714, 0, __PYX_ERR(0, 714, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_10Float64Add_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 714, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Add.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Float64Add_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_10Float64Add_mutate[] = "Float64Add.mutate(self, float64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_10Float64Add_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 714, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Float64Add.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_10Float64Add_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Float64Add *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_10Float64Add_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Float64Add *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 714, 0, __PYX_ERR(0, 714, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 714, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_10Float64Add_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Float64Add.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0715: cdef Py_ssize_t row, col
+0716: cdef float64_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.value; __pyx_v_value = __pyx_t_6;
0717:
0718: # last_col + 1 because last_col should also be affected.
+0719: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
0720: # last_row + 1 because last_row should also be affected.
+0721: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+0722: data[row, col] += value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 722, __pyx_L1_error) } *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) += __pyx_v_value; } }
0723:
0724:
+0725: cdef class _Int64Adjustment(Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment__Int64Adjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment__Int64Adjustment *__pyx_vtabptr_7zipline_3lib_10adjustment__Int64Adjustment;
0726: """
0727: Base class for adjustments that operate on integral data.
0728:
0729: This is private because we never actually operate on integers as data, but
0730: we use integer arrays to represent datetime and timedelta data.
0731: """
+0732: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_16_Int64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_16_Int64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; __pyx_t_5numpy_int64_t __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_value,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 732, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 732, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 732, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 732, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 732, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 733, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 734, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 735, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error) __pyx_v_value = __Pyx_PyInt_As_npy_int64(values[4]); if (unlikely((__pyx_v_value == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 737, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 732, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment._Int64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_16_Int64Adjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment__Int64Adjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_16_Int64Adjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment__Int64Adjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col, __pyx_t_5numpy_int64_t __pyx_v_value) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 732, 0, __PYX_ERR(0, 732, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment._Int64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0733: Py_ssize_t first_row,
0734: Py_ssize_t last_row,
0735: Py_ssize_t first_col,
0736: Py_ssize_t last_col,
0737: int64_t value):
+0738: super(_Int64Adjustment, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__Int64Adjustment)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__Int64Adjustment)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__Int64Adjustment)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0739: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0740: last_row=last_row,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0741: first_col=first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0742: last_col=last_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0743: )
+0744: self.value = value
__pyx_v_self->value = __pyx_v_value;
0745:
+0746: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16_Int64Adjustment_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16_Int64Adjustment_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_16_Int64Adjustment_2__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment__Int64Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_16_Int64Adjustment_2__repr__(struct __pyx_obj_7zipline_3lib_10adjustment__Int64Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 746, 0, __PYX_ERR(0, 746, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment._Int64Adjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0747: return (
__Pyx_XDECREF(__pyx_r);
+0748: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0749: " first_col=%d, last_col=%d, value=%d)" % (
+0750: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0751: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0752: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0753: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0754: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0755: self.value,
__pyx_t_5 = __Pyx_PyInt_From_npy_int64(__pyx_v_self->value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_5), __pyx_n_u_d); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0756: )
0757: )
0758:
0759:
+0760: cdef class Int64Overwrite(_Int64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Int64Overwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment__Int64Adjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Int64Overwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Int64Overwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Int64Overwrite;
0761: """
0762: An adjustment that overwrites with an int.
0763:
0764: Example
0765: -------
0766:
0767: >>> import numpy as np
0768: >>> arr = np.arange(9, dtype=int).reshape(3, 3)
0769: >>> arr
0770: array([[ 0, 1, 2],
0771: [ 3, 4, 5],
0772: [ 6, 7, 8]])
0773:
0774: >>> adj = Int64Overwrite(
0775: ... first_row=1,
0776: ... last_row=2,
0777: ... first_col=1,
0778: ... last_col=2,
0779: ... value=0,
0780: ... )
0781: >>> adj.mutate(arr)
0782: >>> arr
0783: array([[ 0, 1, 2],
0784: [ 3, 0, 0],
0785: [ 6, 0, 0]])
0786: """
0787:
+0788: cpdef mutate(self, int64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_14Int64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_14Int64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Int64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_int64_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 788, 0, __PYX_ERR(0, 788, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_14Int64Overwrite_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 788, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Int64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_14Int64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_14Int64Overwrite_mutate[] = "Int64Overwrite.mutate(self, int64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_14Int64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_int64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 788, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Int64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_14Int64Overwrite_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Int64Overwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_14Int64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Int64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 788, 0, __PYX_ERR(0, 788, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 788, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_14Int64Overwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Int64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0789: cdef Py_ssize_t row, col
+0790: cdef int64_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.value; __pyx_v_value = __pyx_t_6;
0791:
0792: # last_col + 1 because last_col should also be affected.
+0793: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
0794: # last_row + 1 because last_row should also be affected.
+0795: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+0796: data[row, col] = value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 796, __pyx_L1_error) } *((__pyx_t_5numpy_int64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) = __pyx_v_value; } }
0797:
0798:
+0799: cdef datetime_to_int(object datetimelike):
static PyObject *__pyx_f_7zipline_3lib_10adjustment_datetime_to_int(PyObject *__pyx_v_datetimelike) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("datetime_to_int", 0); __Pyx_TraceCall("datetime_to_int", __pyx_f[0], 799, 0, __PYX_ERR(0, 799, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.datetime_to_int", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0800: """
0801: Coerce a datetime-like object to the int format used by AdjustedArrays of
0802: Datetime64 type.
0803: """
+0804: if isinstance(datetimelike, Timestamp):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Timestamp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_datetimelike, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+0805: return datetimelike.value
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_datetimelike, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0806:
+0807: if not isinstance(datetimelike, datetime64):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_datetime64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_IsInstance(__pyx_v_datetimelike, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 807, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0); if (unlikely(__pyx_t_2)) { /* … */ }
+0808: raise TypeError("Expected datetime64, got %s" % type(datetimelike))
__pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Expected_datetime64_got_s, ((PyObject *)Py_TYPE(__pyx_v_datetimelike))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 808, __pyx_L1_error)
0809:
+0810: elif datetimelike.dtype.name != 'datetime64[ns]':
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_datetimelike, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u_datetime64_ns, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_2)) { /* … */ }
+0811: raise TypeError(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_kp_u_Expected_datetime64_ns_got_s); __Pyx_GIVEREF(__pyx_kp_u_Expected_datetime64_ns_got_s); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Expected_datetime64_ns_got_s); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 811, __pyx_L1_error)
0812: "Expected datetime64[ns], got %s",
+0813: datetimelike.dtype.name,
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_datetimelike, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0814: )
0815:
+0816: return datetimelike.astype(int64)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_datetimelike, __pyx_n_s_astype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0817:
0818:
+0819: cdef class Datetime64Adjustment(_Int64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime64Adjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment__Int64Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime64Adjustment *__pyx_vtabptr_7zipline_3lib_10adjustment_Datetime64Adjustment;
0820: """
0821: Base class for adjustments that operate on Datetime64 data.
0822:
0823: Notes
0824: -----
0825: Numpy stores datetime64 values in arrays of type int64. There's no
0826: straightforward way to work with statically-typed datetime64 data, so
0827: instead we work with int64 values everywhere, and we do validation/coercion
0828: at API boundaries.
0829: """
+0830: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; PyObject *__pyx_v_value = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_value,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 830, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 830, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 830, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 830, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 830, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L3_error) __pyx_v_value = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 830, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 830, 0, __PYX_ERR(0, 830, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Adjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0831: Py_ssize_t first_row,
0832: Py_ssize_t last_row,
0833: Py_ssize_t first_col,
0834: Py_ssize_t last_col,
0835: object value):
0836:
+0837: super(Datetime64Adjustment, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime64Adjustment)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime64Adjustment)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_Datetime64Adjustment)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0838: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0839: last_row=last_row,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0840: first_col=first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0841: last_col=last_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0842: value=datetime_to_int(value),
__pyx_t_3 = __pyx_f_7zipline_3lib_10adjustment_datetime_to_int(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_value, __pyx_t_3) < 0) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0843: )
0844:
+0845: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment_2__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment_2__repr__(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 845, 0, __PYX_ERR(0, 845, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Adjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0846: return (
__Pyx_XDECREF(__pyx_r);
+0847: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0848: " first_col=%d, last_col=%d, value=%r)" % (
+0849: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0850: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0851: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0852: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0853: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0854: datetime64(self.value, 'ns'),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_datetime64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_self->__pyx_base.value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_n_u_ns}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_n_u_ns}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_n_u_ns); __Pyx_GIVEREF(__pyx_n_u_ns); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_ns); __pyx_t_6 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0855: )
0856: )
0857:
+0858: def __reduce__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_20Datetime64Adjustment_4__reduce__[] = "Datetime64Adjustment.__reduce__(self)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_20Datetime64Adjustment_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment_4__reduce__(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_20Datetime64Adjustment_4__reduce__(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Adjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__", 0); __Pyx_TraceCall("__reduce__", __pyx_f[0], 858, 0, __PYX_ERR(0, 858, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Adjustment.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0859: return type(self), (
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+0860: self.first_row,
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0;
+0861: self.last_row,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0862: self.first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+0863: self.last_col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+0864: datetime64(self.value, 'ns'),
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_datetime64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_self->__pyx_base.value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_n_u_ns}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_n_u_ns}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_n_u_ns); __Pyx_GIVEREF(__pyx_n_u_ns); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_n_u_ns); __pyx_t_7 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
0865: )
0866:
0867:
+0868: cdef class Datetime64Overwrite(Datetime64Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime64Overwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime64Adjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Overwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Datetime64Overwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_Datetime64Overwrite;
0869: """
0870: An adjustment that overwrites with a datetime.
0871:
0872: This operates on int64 data which should be interpreted as nanoseconds
0873: since the epoch.
0874:
0875: Example
0876: -------
0877:
0878: >>> import numpy as np; import pandas as pd
0879: >>> dts = pd.date_range('2014', freq='D', periods=9, tz='UTC')
0880: >>> arr = dts.values.reshape(3, 3)
0881: >>> arr == np.datetime64(0, 'ns')
0882: array([[False, False, False],
0883: [False, False, False],
0884: [False, False, False]], dtype=bool)
0885: >>> adj = Datetime64Overwrite(
0886: ... first_row=1,
0887: ... last_row=2,
0888: ... first_col=1,
0889: ... last_col=2,
0890: ... value=np.datetime64(0, 'ns'),
0891: ... )
0892: >>> adj.mutate(arr.view(np.int64))
0893: >>> arr == np.datetime64(0, 'ns')
0894: array([[False, False, False],
0895: [False, True, True],
0896: [False, True, True]], dtype=bool)
0897: """
+0898: cpdef mutate(self, int64_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_19Datetime64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_19Datetime64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_int64_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 898, 0, __PYX_ERR(0, 898, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_19Datetime64Overwrite_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 898, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_19Datetime64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_19Datetime64Overwrite_mutate[] = "Datetime64Overwrite.mutate(self, int64_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_19Datetime64Overwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_int64_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 898, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_19Datetime64Overwrite_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Overwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_19Datetime64Overwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_Datetime64Overwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 898, 0, __PYX_ERR(0, 898, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 898, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_19Datetime64Overwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.Datetime64Overwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0899: cdef Py_ssize_t row, col
+0900: cdef int64_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.__pyx_base.value; __pyx_v_value = __pyx_t_6;
0901:
0902: # last_col + 1 because last_col should also be affected.
+0903: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
0904: # last_row + 1 because last_row should also be affected.
+0905: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+0906: data[row, col] = value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 906, __pyx_L1_error) } *((__pyx_t_5numpy_int64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) = __pyx_v_value; } }
0907:
0908:
+0909: cdef class _ObjectAdjustment(Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment__ObjectAdjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment__ObjectAdjustment *__pyx_vtabptr_7zipline_3lib_10adjustment__ObjectAdjustment;
0910: """
0911: Base class for adjustments that operate on arbitrary objects.
0912:
0913: We use only this for categorical data, where our data buffer is an array of
0914: indices into an array of unique Python string objects.
0915: """
+0916: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_17_ObjectAdjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_17_ObjectAdjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; PyObject *__pyx_v_value = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_value,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 916, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 916, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 916, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 916, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 916, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 917, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 919, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 920, __pyx_L3_error) __pyx_v_value = values[4]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 916, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment._ObjectAdjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17_ObjectAdjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment__ObjectAdjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_17_ObjectAdjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment__ObjectAdjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 916, 0, __PYX_ERR(0, 916, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment._ObjectAdjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0917: Py_ssize_t first_row,
0918: Py_ssize_t last_row,
0919: Py_ssize_t first_col,
0920: Py_ssize_t last_col,
0921: object value):
+0922: super(_ObjectAdjustment, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__ObjectAdjustment)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__ObjectAdjustment)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment__ObjectAdjustment)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0923: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0924: last_row=last_row,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0925: first_col=first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0926: last_col=last_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0927: )
+0928: self.value = value
__Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(__pyx_v_self->value); __Pyx_DECREF(__pyx_v_self->value); __pyx_v_self->value = __pyx_v_value;
0929:
+0930: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17_ObjectAdjustment_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17_ObjectAdjustment_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17_ObjectAdjustment_2__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment__ObjectAdjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_17_ObjectAdjustment_2__repr__(struct __pyx_obj_7zipline_3lib_10adjustment__ObjectAdjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 930, 0, __PYX_ERR(0, 930, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment._ObjectAdjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0931: return (
__Pyx_XDECREF(__pyx_r);
+0932: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
0933: " first_col=%d, last_col=%d, value=%r)" % (
+0934: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0935: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0936: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0937: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0938: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0939: self.value,
__pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_self->value), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0940: )
0941: )
0942:
0943:
+0944: cdef class ObjectOverwrite(_ObjectAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ObjectOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment__ObjectAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_ObjectOverwrite *, PyObject *, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_ObjectOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_ObjectOverwrite;
0945:
+0946: cpdef mutate(self, object data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15ObjectOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_15ObjectOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_ObjectOverwrite *__pyx_v_self, PyObject *__pyx_v_data, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 946, 0, __PYX_ERR(0, 946, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_15ObjectOverwrite_1mutate)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_data); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("zipline.lib.adjustment.ObjectOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15ObjectOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_15ObjectOverwrite_mutate[] = "ObjectOverwrite.mutate(self, data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_15ObjectOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_15ObjectOverwrite_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_ObjectOverwrite *)__pyx_v_self), ((PyObject *)__pyx_v_data)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_15ObjectOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_ObjectOverwrite *__pyx_v_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 946, 0, __PYX_ERR(0, 946, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_15ObjectOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.ObjectOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0947: # data is an object here because this is intended to be used with a
0948: # `zipline.lib.LabelArray`.
0949:
0950: # We don't do this in a loop because we only want to look up the label
0951: # code in the array's categories once.
+0952: data.set_scalar(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_set_scalar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
0953: (
+0954: slice(self.first_row, self.last_row + 1),
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyInt_FromSsize_t((__pyx_v_self->__pyx_base.__pyx_base.last_row + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySlice_New(__pyx_t_3, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0;
+0955: slice(self.first_col, self.last_col + 1),
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.__pyx_base.first_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyInt_FromSsize_t((__pyx_v_self->__pyx_base.__pyx_base.last_col + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PySlice_New(__pyx_t_4, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0956: ),
+0957: self.value,
__pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_v_self->__pyx_base.value}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_v_self->__pyx_base.value}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_3); __Pyx_INCREF(__pyx_v_self->__pyx_base.value); __Pyx_GIVEREF(__pyx_v_self->__pyx_base.value); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_v_self->__pyx_base.value); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0958: )
0959:
0960:
+0961: cdef class BooleanAdjustment(Adjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_BooleanAdjustment { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_Adjustment __pyx_base; }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_BooleanAdjustment *__pyx_vtabptr_7zipline_3lib_10adjustment_BooleanAdjustment;
0962: """
0963: Base class for adjustments that operate on boolean data.
0964:
0965: Notes
0966: -----
0967: Numpy stores boolean values in arrays of type uint8. There's no
0968: straightforward way to work with statically-typed boolean data, so
0969: instead we work with uint8 values everywhere, and we do validation/coercion
0970: at API boundaries.
0971: """
+0972: def __init__(self,
/* Python wrapper */ static int __pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { Py_ssize_t __pyx_v_first_row; Py_ssize_t __pyx_v_last_row; Py_ssize_t __pyx_v_first_col; Py_ssize_t __pyx_v_last_col; int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_first_row,&__pyx_n_s_last_row,&__pyx_n_s_first_col,&__pyx_n_s_last_col,&__pyx_n_s_value,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_row)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_row)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); __PYX_ERR(0, 972, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); __PYX_ERR(0, 972, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_col)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); __PYX_ERR(0, 972, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); __PYX_ERR(0, 972, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 972, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_first_row = __Pyx_PyIndex_AsSsize_t(values[0]); if (unlikely((__pyx_v_first_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L3_error) __pyx_v_last_row = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_last_row == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L3_error) __pyx_v_first_col = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_first_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L3_error) __pyx_v_last_col = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_last_col == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 976, __pyx_L3_error) __pyx_v_value = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 972, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.BooleanAdjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment___init__(((struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *)__pyx_v_self), __pyx_v_first_row, __pyx_v_last_row, __pyx_v_first_col, __pyx_v_last_col, __pyx_v_value); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment___init__(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *__pyx_v_self, Py_ssize_t __pyx_v_first_row, Py_ssize_t __pyx_v_last_row, Py_ssize_t __pyx_v_first_col, Py_ssize_t __pyx_v_last_col, int __pyx_v_value) { int __pyx_r; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); __Pyx_TraceCall("__init__", __pyx_f[0], 972, 0, __PYX_ERR(0, 972, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("zipline.lib.adjustment.BooleanAdjustment.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_TraceReturn(Py_None, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0973: Py_ssize_t first_row,
0974: Py_ssize_t last_row,
0975: Py_ssize_t first_col,
0976: Py_ssize_t last_col,
0977: bint value):
0978:
+0979: super(BooleanAdjustment, self).__init__(
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_BooleanAdjustment)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_BooleanAdjustment)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7zipline_3lib_10adjustment_BooleanAdjustment)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0980: first_row=first_row,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_row, __pyx_t_3) < 0) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0981: last_row=last_row,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_row); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_row, __pyx_t_3) < 0) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0982: first_col=first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_first_col, __pyx_t_3) < 0) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0983: last_col=last_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_last_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_col, __pyx_t_3) < 0) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0984: )
+0985: self.value = value
__pyx_v_self->value = __pyx_v_value;
0986:
+0987: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment_2__repr__(((struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment_2__repr__(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_TraceCall("__repr__", __pyx_f[0], 987, 0, __PYX_ERR(0, 987, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.BooleanAdjustment.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0988: return (
__Pyx_XDECREF(__pyx_r);
+0989: "%s(first_row=%d, last_row=%d,"
__pyx_t_1 = PyTuple_New(12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 12, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0990: " first_col=%d, last_col=%d, value=%r)" % (
+0991: type(self).__name__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_row_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_first_row_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_first_row_2);
+0992: self.first_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_row_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_row_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u_last_row_3);
+0993: self.last_row,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_row, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_first_col_2); __pyx_t_2 += 12; __Pyx_GIVEREF(__pyx_kp_u_first_col_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u_first_col_2);
+0994: self.first_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.first_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_last_col_3); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_last_col_3); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u_last_col_3);
+0995: self.last_col,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_self->__pyx_base.last_col, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_value_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_value_2); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u_value_2);
+0996: bool(self.value),
__pyx_t_5 = __Pyx_PyInt_From_npy_uint8(__pyx_v_self->value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 996, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyBool_FromLong((!(!__pyx_t_6))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u_); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u_);
0997: )
0998: )
0999:
+1000: def __reduce__(self):
/* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_17BooleanAdjustment_4__reduce__[] = "BooleanAdjustment.__reduce__(self)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_17BooleanAdjustment_5__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment_4__reduce__(((struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_17BooleanAdjustment_4__reduce__(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanAdjustment *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce__", 0); __Pyx_TraceCall("__reduce__", __pyx_f[0], 1000, 0, __PYX_ERR(0, 1000, __pyx_L1_error)); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("zipline.lib.adjustment.BooleanAdjustment.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1001: return type(self), (
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+1002: self.first_row,
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.first_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0;
+1003: self.last_row,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.last_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+1004: self.first_col,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.first_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+1005: self.last_col,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_self->__pyx_base.last_col); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+1006: bool(self.value),
__pyx_t_5 = __Pyx_PyInt_From_npy_uint8(__pyx_v_self->value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1006, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyBool_FromLong((!(!__pyx_t_6))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
1007: )
1008:
1009:
+1010: cdef class BooleanOverwrite(BooleanAdjustment):
struct __pyx_vtabstruct_7zipline_3lib_10adjustment_BooleanOverwrite { struct __pyx_vtabstruct_7zipline_3lib_10adjustment_BooleanAdjustment __pyx_base; PyObject *(*mutate)(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanOverwrite *, __Pyx_memviewslice, int __pyx_skip_dispatch); }; static struct __pyx_vtabstruct_7zipline_3lib_10adjustment_BooleanOverwrite *__pyx_vtabptr_7zipline_3lib_10adjustment_BooleanOverwrite;
1011: """
1012: An adjustment that overwrites with a boolean.
1013:
1014: This operates on uint8 data.
1015: """
+1016: cpdef mutate(self, uint8_t[:, :] data):
static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16BooleanOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static PyObject *__pyx_f_7zipline_3lib_10adjustment_16BooleanOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data, int __pyx_skip_dispatch) { Py_ssize_t __pyx_v_row; Py_ssize_t __pyx_v_col; __pyx_t_5numpy_uint8_t __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate", __pyx_f[0], 1016, 0, __PYX_ERR(0, 1016, __pyx_L1_error)); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mutate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_7zipline_3lib_10adjustment_16BooleanOverwrite_1mutate)) { __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 1016, __pyx_L1_error) } __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_data, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("zipline.lib.adjustment.BooleanOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16BooleanOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data); /*proto*/ static char __pyx_doc_7zipline_3lib_10adjustment_16BooleanOverwrite_mutate[] = "BooleanOverwrite.mutate(self, uint8_t[:, :] data)"; static PyObject *__pyx_pw_7zipline_3lib_10adjustment_16BooleanOverwrite_1mutate(PyObject *__pyx_v_self, PyObject *__pyx_arg_data) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate (wrapper)", 0); assert(__pyx_arg_data); { __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_uint8_t(__pyx_arg_data, PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 1016, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("zipline.lib.adjustment.BooleanOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7zipline_3lib_10adjustment_16BooleanOverwrite_mutate(((struct __pyx_obj_7zipline_3lib_10adjustment_BooleanOverwrite *)__pyx_v_self), __pyx_v_data); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7zipline_3lib_10adjustment_16BooleanOverwrite_mutate(struct __pyx_obj_7zipline_3lib_10adjustment_BooleanOverwrite *__pyx_v_self, __Pyx_memviewslice __pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_TraceDeclarations __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mutate", 0); __Pyx_TraceCall("mutate (wrapper)", __pyx_f[0], 1016, 0, __PYX_ERR(0, 1016, __pyx_L1_error)); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 1016, __pyx_L1_error) } __pyx_t_1 = __pyx_f_7zipline_3lib_10adjustment_16BooleanOverwrite_mutate(__pyx_v_self, __pyx_v_data, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("zipline.lib.adjustment.BooleanOverwrite.mutate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_TraceReturn(__pyx_r, 0); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1017: cdef Py_ssize_t row, col
+1018: cdef uint8_t value = self.value
__pyx_t_6 = __pyx_v_self->__pyx_base.value; __pyx_v_value = __pyx_t_6;
1019:
1020: # last_col + 1 because last_col should also be affected.
+1021: for col in range(self.first_col, self.last_col + 1):
__pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.last_col + 1); __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = __pyx_v_self->__pyx_base.__pyx_base.first_col; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_col = __pyx_t_9;
1022: # last_row + 1 because last_row should also be affected.
+1023: for row in range(self.first_row, self.last_row + 1):
__pyx_t_10 = (__pyx_v_self->__pyx_base.__pyx_base.last_row + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = __pyx_v_self->__pyx_base.__pyx_base.first_row; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_row = __pyx_t_12;
+1024: data[row, col] = value
__pyx_t_13 = __pyx_v_row; __pyx_t_14 = __pyx_v_col; __pyx_t_15 = -1; if (__pyx_t_13 < 0) { __pyx_t_13 += __pyx_v_data.shape[0]; if (unlikely(__pyx_t_13 < 0)) __pyx_t_15 = 0; } else if (unlikely(__pyx_t_13 >= __pyx_v_data.shape[0])) __pyx_t_15 = 0; if (__pyx_t_14 < 0) { __pyx_t_14 += __pyx_v_data.shape[1]; if (unlikely(__pyx_t_14 < 0)) __pyx_t_15 = 1; } else if (unlikely(__pyx_t_14 >= __pyx_v_data.shape[1])) __pyx_t_15 = 1; if (unlikely(__pyx_t_15 != -1)) { __Pyx_RaiseBufferIndexError(__pyx_t_15); __PYX_ERR(0, 1024, __pyx_L1_error) } *((__pyx_t_5numpy_uint8_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_data.data + __pyx_t_13 * __pyx_v_data.strides[0]) ) + __pyx_t_14 * __pyx_v_data.strides[1]) )) = __pyx_v_value; } }