from_sequence(start=0, stop)

        Create an SArray from sequence

        .. sourcecode:: python

            Construct an SArray of integer values from 0 to 999

            >>> tc.SArray.from_sequence(1000)

            This is equivalent, but more efficient than:

            >>> tc.SArray(range(1000))

            Construct an SArray of integer values from 10 to 999

            >>> tc.SArray.from_sequence(10, 1000)

            This is equivalent, but more efficient than:

            >>> tc.SArray(range(10, 1000))

        Parameters
        ----------
        start : int, optional
            The start of the sequence. The sequence will contain this value.

        stop : int
          The end of the sequence. The sequence will not contain this value.

def from_sequence(cls, *args):
        """
        from_sequence(start=0, stop)

        Create an SArray from sequence

        .. sourcecode:: python

            Construct an SArray of integer values from 0 to 999

            >>> tc.SArray.from_sequence(1000)

            This is equivalent, but more efficient than:

            >>> tc.SArray(range(1000))

            Construct an SArray of integer values from 10 to 999

            >>> tc.SArray.from_sequence(10, 1000)

            This is equivalent, but more efficient than:

            >>> tc.SArray(range(10, 1000))

        Parameters
        ----------
        start : int, optional
            The start of the sequence. The sequence will contain this value.

        stop : int
          The end of the sequence. The sequence will not contain this value.

        """
        start = None
        stop = None
        # fill with args. This checks for from_sequence(100), from_sequence(10,100)
        if len(args) == 1:
            stop = args[0]
        elif len(args) == 2:
            start = args[0]
            stop = args[1]

        if stop is None and start is None:
            raise TypeError("from_sequence expects at least 1 argument. got 0")
        elif start is None:
            return _create_sequential_sarray(stop)
        else:
            size = stop - start
            # this matches the behavior of range
            # i.e. range(100,10) just returns an empty array
            if (size < 0):
                size = 0
            return _create_sequential_sarray(size, start)