def __getitem__(self, getrange):
if not isinstance(getrange, slice):<EOL><INDENT>return self(i1=getrange, i2=getrange + <NUM_LIT:1>)[<NUM_LIT:0>]<EOL><DEDENT>return self(i1=getrange.start, i2=getrange.stop)<EOL>
Allows accessing the stream just as if it were just one big python array.
        An example::

            #Returns the most recent 5 datapoints from the stream
            stream[-5:]

            #Returns all the data the stream holds.
            stream[:]

        In order to perform transforms on the stream and to aggreagate data, look at __call__,
        which allows getting index ranges along with a transform.