class_docstr: An array that can be iterated with a variable-length window, and which can
  provide different views on data from different perspectives.
  
  Parameters
  ----------
  data : np.ndarray
      The baseline data values. This array may be mutated by
      ``traverse(..., copy=False)`` calls.
  adjustments : dict[int -> list[Adjustment]]
      A dict mapping row indices to lists of adjustments to apply when we
      reach that row.
  missing_value : object
      A value to use to fill missing data in yielded windows.
      Should be a value coercible to `data.dtype`.
class_docstr_tok: ["An","array","that","can","be","iterated","with","a","variable-length","window",",","and","which","can","provide","different","views","on","data","from","different","perspectives",".","Parameters","--","--","--","--","--","data",":","np.ndarray","The","baseline","data","values",".","This","array","may","be","mutated","by","``","traverse","(","...",",","copy=False",")","``","calls",".","adjustments",":","dict","[","int","-",">","list","[","Adjustment","]","]","A","dict","mapping","row","indices","to","lists","of","adjustments","to","apply","when","we","reach","that","row",".","missing_value",":","object","A","value","to","use","to","fill","missing","data","in","yielded","windows",".","Should","be","a","value","coercible","to","`","data.dtype","`","."]
docstr: Produce an iterator rolling windows rows over our data.
  Each emitted window will have `window_length` rows.
  
  Parameters
  ----------
  window_length : int
      The number of rows in each emitted window.
  offset : int, optional
      Number of rows to skip before the first window.  Default is 0.
  perspective_offset : int, optional
      Number of rows past the end of the current window from which to
      "view" the underlying data.
  copy : bool, optional
      Copy the underlying data. If ``copy=False``, the adjusted array
      will be invalidated and cannot be traversed again.
docstr_tok: ["Produce","an","iterator","rolling","windows","rows","over","our","data",".","Each","emitted","window","will","have","`","window_length","`","rows",".","Parameters","--","--","--","--","--","window_length",":","int","The","number","of","rows","in","each","emitted","window",".","offset",":","int",",","optional","Number","of","rows","to","skip","before","the","first","window",".","Default","is","0.","perspective_offset",":","int",",","optional","Number","of","rows","past","the","end","of","the","current","window","from","which","to","``","view","''","the","underlying","data",".","copy",":","bool",",","optional","Copy","the","underlying","data",".","If","``","copy=False","``",",","the","adjusted","array","will","be","invalidated","and","can","not","be","traversed","again","."]
code: def traverse(
      self, window_length, offset=0, perspective_offset=0, copy=True
  ):
      """
      Produce an iterator rolling windows rows over our data.
      Each emitted window will have `window_length` rows.
  
      Parameters
      ----------
      window_length : int
          The number of rows in each emitted window.
      offset : int, optional
          Number of rows to skip before the first window.  Default is 0.
      perspective_offset : int, optional
          Number of rows past the end of the current window from which to
          "view" the underlying data.
      copy : bool, optional
          Copy the underlying data. If ``copy=False``, the adjusted array
          will be invalidated and cannot be traversed again.
      """
      if self._invalidated:
          raise ValueError("cannot traverse invalidated AdjustedArray")
  
      data = self._data
      if copy:
          data = data.copy(order="F")
      else:
          self._invalidated = True
  
      _check_window_params(data, window_length)
      return self._iterator_type(
          data,
          self._view_kwargs,
          self.adjustments,
          offset,
          window_length,
          perspective_offset,
          rounding_places=None,
      )
  
imports: from textwrap import dedent
  from functools import partial
  from numpy import bool_, dtype, float32, float64, int32, int64, int16, uint16, ndarray, uint32, uint8
  from six import iteritems
  from toolz import merge_with
  from zipline.errors import WindowLengthNotPositive, WindowLengthTooLong
  from zipline.lib.labelarray import LabelArray
  from zipline.utils.numpy_utils import datetime64ns_dtype, float64_dtype, int64_dtype, uint8_dtype
  from zipline.utils.memoize import lazyval
  from ._float64window import AdjustedArrayWindow
  from ._int64window import AdjustedArrayWindow
  from ._labelwindow import AdjustedArrayWindow
  from ._uint8window import AdjustedArrayWindow
label_desc: Use image node_id 7 for calling the AdjustedArray obj's underlying member method code with example usage: obj.traverse(window_length, offset, perspective_offset, copy) and returns: self