environment/lib/python2.7/site-packages/IPython/core/history.py
def extract_hist_ranges(ranges_str):
    """Turn a string of history ranges into 3-tuples of (session, start, stop).

    Examples
    --------
    list(extract_input_ranges("~8/5-~7/4 2"))
    [(-8, 5, None), (-7, 1, 4), (0, 2, 3)]
    """
    for range_str in ranges_str.split():
        rmatch = range_re.match(range_str)
        if not rmatch:
            continue
        start = int(rmatch.group("start"))
        end = rmatch.group("end")
        end = int(end) if end else start+1   # If no end specified, get (a, a+1)
        if rmatch.group("sep") == "-":       # 1-3 == 1:4 --> [1, 2, 3]
            end += 1
        startsess = rmatch.group("startsess") or "0"
        endsess = rmatch.group("endsess") or startsess
        startsess = int(startsess.replace("~","-"))
        endsess = int(endsess.replace("~","-"))
        assert endsess >= startsess

        if endsess == startsess:
            yield (startsess, start, end)
            continue
        # Multiple sessions in one range:
        yield (startsess, start, None)
        for sess in range(startsess+1, endsess):
            yield (sess, 1, None)
        yield (endsess, 1, end)
def extract_hist_ranges(ranges_str):
    """Turn a string of history ranges into 3-tuples of (session, start, stop).

    Examples
    --------
    list(extract_input_ranges("~8/5-~7/4 2"))
    [(-8, 5, None), (-7, 1, 4), (0, 2, 3)]
    """
    for range_str in ranges_str.split():
        rmatch = range_re.match(range_str)
        if not rmatch:
            continue
        start = int(rmatch.group("start"))
        end = rmatch.group("end")
        end = int(end) if end else start+1   # If no end specified, get (a, a+1)
        if rmatch.group("sep") == "-":       # 1-3 == 1:4 --> [1, 2, 3]
            end += 1
        startsess = rmatch.group("startsess") or "0"
        endsess = rmatch.group("endsess") or startsess
        startsess = int(startsess.replace("~","-"))
        endsess = int(endsess.replace("~","-"))
        assert endsess >= startsess

        if endsess == startsess:
            yield (startsess, start, end)
            continue
        # Multiple sessions in one range:
        yield (startsess, start, None)
        for sess in range(startsess+1, endsess):
            yield (sess, 1, None)
        yield (endsess, 1, end)
def extract_hist_ranges ( ranges_str ) : for range_str in ranges_str . split ( ) : rmatch = range_re . match ( range_str ) if not rmatch : continue start = int ( rmatch . group ( "start" ) ) end = rmatch . group ( "end" ) end = int ( end ) if end else start + 1 # If no end specified, get (a, a+1) if rmatch . group ( "sep" ) == "-" : # 1-3 == 1:4 --> [1, 2, 3] end += 1 startsess = rmatch . group ( "startsess" ) or "0" endsess = rmatch . group ( "endsess" ) or startsess startsess = int ( startsess . replace ( "~" , "-" ) ) endsess = int ( endsess . replace ( "~" , "-" ) ) assert endsess >= startsess if endsess == startsess : yield ( startsess , start , end ) continue # Multiple sessions in one range: yield ( startsess , start , None ) for sess in range ( startsess + 1 , endsess ) : yield ( sess , 1 , None ) yield ( endsess , 1 , end )
Turn a string of history ranges into 3-tuples of (session, start, stop).

    Examples
    --------
    list(extract_input_ranges("~8/5-~7/4 2"))
    [(-8, 5, None), (-7, 1, 4), (0, 2, 3)]
Turn a string of history ranges into 3 - tuples of ( session start stop ) .