Drop `_slice_from_time()`
							parent
							
								
									5c417fe815
								
							
						
					
					
						commit
						688d7d7f2f
					
				| 
						 | 
					@ -272,55 +272,6 @@ def ohlc_flatten(
 | 
				
			||||||
    return x, flat
 | 
					    return x, flat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@njit
 | 
					 | 
				
			||||||
def _slice_from_time(
 | 
					 | 
				
			||||||
    arr: np.ndarray,
 | 
					 | 
				
			||||||
    start_t: float,
 | 
					 | 
				
			||||||
    stop_t: float,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
) -> tuple[int, int]:
 | 
					 | 
				
			||||||
    '''
 | 
					 | 
				
			||||||
    Slice an input struct array to a time range and return the absolute
 | 
					 | 
				
			||||||
    and "readable" slices for that array as well as the indexing mask
 | 
					 | 
				
			||||||
    for the caller to use to slice the input array if needed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    '''
 | 
					 | 
				
			||||||
    times = arr['time']
 | 
					 | 
				
			||||||
    index = arr['index']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (
 | 
					 | 
				
			||||||
        start_t < 0
 | 
					 | 
				
			||||||
        or start_t >= stop_t
 | 
					 | 
				
			||||||
    ):
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
            (
 | 
					 | 
				
			||||||
                index[0],
 | 
					 | 
				
			||||||
                index[-1],
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
            (
 | 
					 | 
				
			||||||
                0,
 | 
					 | 
				
			||||||
                len(arr),
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    read_i_0: int = 0
 | 
					 | 
				
			||||||
    read_i_last: int = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for i in range(times.shape[0]):
 | 
					 | 
				
			||||||
        time = times[i]
 | 
					 | 
				
			||||||
        if time >= start_t:
 | 
					 | 
				
			||||||
            read_i_0 = i
 | 
					 | 
				
			||||||
            break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for i in range(read_i_0, times.shape[0]):
 | 
					 | 
				
			||||||
        time = times[i]
 | 
					 | 
				
			||||||
        if time > stop_t:
 | 
					 | 
				
			||||||
            read_i_last = time
 | 
					 | 
				
			||||||
            break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return read_i_0, read_i_last
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def slice_from_time(
 | 
					def slice_from_time(
 | 
				
			||||||
    arr: np.ndarray,
 | 
					    arr: np.ndarray,
 | 
				
			||||||
    start_t: float,
 | 
					    start_t: float,
 | 
				
			||||||
| 
						 | 
					@ -437,20 +388,6 @@ def slice_from_time(
 | 
				
			||||||
            # )
 | 
					            # )
 | 
				
			||||||
            read_i_start = new_read_i_start
 | 
					            read_i_start = new_read_i_start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # old much slower non-bin-search ``numba`` approach..
 | 
					 | 
				
			||||||
    # (
 | 
					 | 
				
			||||||
    #     read_i_start,
 | 
					 | 
				
			||||||
    #     read_i_stop,
 | 
					 | 
				
			||||||
    # ) = _slice_from_time(
 | 
					 | 
				
			||||||
    #     arr,
 | 
					 | 
				
			||||||
    #     start_t,
 | 
					 | 
				
			||||||
    #     stop_t,
 | 
					 | 
				
			||||||
    # )
 | 
					 | 
				
			||||||
    # abs_i_start = int(index[0]) + read_i_0
 | 
					 | 
				
			||||||
    # abs_i_stop = int(index[0]) + read_i_last
 | 
					 | 
				
			||||||
    # if read_i_stop == 0:
 | 
					 | 
				
			||||||
    #     read_i_stop = times.shape[0]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # read-relative indexes: gives a slice where `shm.array[read_slc]`
 | 
					    # read-relative indexes: gives a slice where `shm.array[read_slc]`
 | 
				
			||||||
    # will be the data spanning the input time range `start_t` ->
 | 
					    # will be the data spanning the input time range `start_t` ->
 | 
				
			||||||
    # `stop_t`
 | 
					    # `stop_t`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue