Python __builtin__ 模块,xrange() 实例源码

我们从Python开源项目中,提取了以下7个代码示例,用于说明如何使用__builtin__.xrange()

项目:PyFactorizationMachines    作者:dstein64    | 项目源码 | 文件源码
def xrange(*args, **kwargs):
    major_version = sys.version_info.major
    if major_version == 3:
        import builtins
        return builtins.range(*args, **kwargs)
    elif major_version == 2:
        import __builtin__
        return __builtin__.xrange(*args, **kwargs)
    else:
        raise RuntimeError("Unsupported version of Python.")
项目:centos-base-consul    作者:zeroc0d3lab    | 项目源码 | 文件源码
def visual_range(pl, segment_info, CTRL_V_text='{rows} x {vcols}', v_text_oneline='C:{vcols}', v_text_multiline='L:{rows}', V_text='L:{rows}'):
    '''Return the current visual selection range.

    :param str CTRL_V_text:
        Text to display when in block visual or select mode.
    :param str v_text_oneline:
        Text to display when in charaterwise visual or select mode, assuming 
        selection occupies only one line.
    :param str v_text_multiline:
        Text to display when in charaterwise visual or select mode, assuming 
        selection occupies more then one line.
    :param str V_text:
        Text to display when in linewise visual or select mode.

    All texts are format strings which are passed the following parameters:

    =========  =============================================================
    Parameter  Description
    =========  =============================================================
    sline      Line number of the first line of the selection
    eline      Line number of the last line of the selection
    scol       Column number of the first character of the selection
    ecol       Column number of the last character of the selection
    svcol      Virtual column number of the first character of the selection
    secol      Virtual column number of the last character of the selection
    rows       Number of lines in the selection
    cols       Number of columns in the selection
    vcols      Number of virtual columns in the selection
    =========  =============================================================
    '''
    sline, scol, soff = [int(v) for v in vim_funcs['getpos']('v')[1:]]
    eline, ecol, eoff = [int(v) for v in vim_funcs['getpos']('.')[1:]]
    svcol = vim_funcs['virtcol']([sline, scol, soff])
    evcol = vim_funcs['virtcol']([eline, ecol, eoff])
    rows = abs(eline - sline) + 1
    cols = abs(ecol - scol) + 1
    vcols = abs(evcol - svcol) + 1
    return {
        '^': CTRL_V_text,
        's': v_text_oneline if rows == 1 else v_text_multiline,
        'S': V_text,
        'v': v_text_oneline if rows == 1 else v_text_multiline,
        'V': V_text,
    }.get(segment_info['mode'][0], '').format(
        sline=sline, eline=eline,
        scol=scol, ecol=ecol,
        svcol=svcol, evcol=evcol,
        rows=rows, cols=cols, vcols=vcols,
    )
项目:centos-base-consul    作者:zeroc0d3lab    | 项目源码 | 文件源码
def trailing_whitespace(pl, segment_info):
    '''Return the line number for trailing whitespaces

    It is advised not to use this segment in insert mode: in Insert mode it will 
    iterate over all lines in buffer each time you happen to type a character 
    which may cause lags. It will also show you whitespace warning each time you 
    happen to type space.

    Highlight groups used: ``trailing_whitespace`` or ``warning``.
    '''
    global trailing_whitespace_cache
    if trailing_whitespace_cache is None:
        trailing_whitespace_cache = register_buffer_cache(defaultdict(lambda: (0, None)))
    bufnr = segment_info['bufnr']
    changedtick = getbufvar(bufnr, 'changedtick')
    if trailing_whitespace_cache[bufnr][0] == changedtick:
        return trailing_whitespace_cache[bufnr][1]
    else:
        buf = segment_info['buffer']
        bws = b' \t'
        sws = str(' \t')  # Ignore unicode_literals and use native str.
        for i in range(len(buf)):
            try:
                line = buf[i]
            except UnicodeDecodeError:  # May happen in Python 3
                if hasattr(vim, 'bindeval'):
                    line = vim.bindeval('getbufline({0}, {1})'.format(
                        bufnr, i + 1))
                    has_trailing_ws = (line[-1] in bws)
                else:
                    line = vim.eval('strtrans(getbufline({0}, {1}))'.format(
                        bufnr, i + 1))
                    has_trailing_ws = (line[-1] in bws)
            else:
                has_trailing_ws = (line and line[-1] in sws)
            if has_trailing_ws:
                break
        if has_trailing_ws:
            ret = [{
                'contents': str(i + 1),
                'highlight_groups': ['trailing_whitespace', 'warning'],
            }]
        else:
            ret = None
        trailing_whitespace_cache[bufnr] = (changedtick, ret)
        return ret
项目:oa_qian    作者:sunqb    | 项目源码 | 文件源码
def iwait(objects, timeout=None, count=None):
    """
    Iteratively yield *objects* as they are ready, until all (or *count*) are ready
    or *timeout* expired.

    :param objects: A sequence (supporting :func:`len`) containing objects
        implementing the wait protocol (rawlink() and unlink()).
    :keyword int count: If not `None`, then a number specifying the maximum number
        of objects to wait for. If ``None`` (the default), all objects
        are waited for.
    :keyword float timeout: If given, specifies a maximum number of seconds
        to wait. If the timeout expires before the desired waited-for objects
        are available, then this method returns immediately.

    .. seealso:: :func:`wait`

    .. versionchanged:: 1.1a1
       Add the *count* parameter.
    .. versionchanged:: 1.1a2
       No longer raise :exc:`LoopExit` if our caller switches greenlets
       in between items yielded by this function.
    """
    # QQQ would be nice to support iterable here that can be generated slowly (why?)
    if objects is None:
        yield get_hub().join(timeout=timeout)
        return

    count = len(objects) if count is None else min(count, len(objects))
    waiter = _MultipleWaiter()
    switch = waiter.switch

    if timeout is not None:
        timer = get_hub().loop.timer(timeout, priority=-1)
        timer.start(switch, _NONE)

    try:
        for obj in objects:
            obj.rawlink(switch)

        for _ in xrange(count):
            item = waiter.get()
            waiter.clear()
            if item is _NONE:
                return
            yield item
    finally:
        if timeout is not None:
            timer.stop()
        for obj in objects:
            unlink = getattr(obj, 'unlink', None)
            if unlink:
                try:
                    unlink(switch)
                except:
                    traceback.print_exc()
项目:dotfiles    作者:gbraad    | 项目源码 | 文件源码
def visual_range(pl, segment_info, CTRL_V_text='{rows} x {vcols}', v_text_oneline='C:{vcols}', v_text_multiline='L:{rows}', V_text='L:{rows}'):
    '''Return the current visual selection range.

    :param str CTRL_V_text:
        Text to display when in block visual or select mode.
    :param str v_text_oneline:
        Text to display when in charaterwise visual or select mode, assuming 
        selection occupies only one line.
    :param str v_text_multiline:
        Text to display when in charaterwise visual or select mode, assuming 
        selection occupies more then one line.
    :param str V_text:
        Text to display when in linewise visual or select mode.

    All texts are format strings which are passed the following parameters:

    =========  =============================================================
    Parameter  Description
    =========  =============================================================
    sline      Line number of the first line of the selection
    eline      Line number of the last line of the selection
    scol       Column number of the first character of the selection
    ecol       Column number of the last character of the selection
    svcol      Virtual column number of the first character of the selection
    secol      Virtual column number of the last character of the selection
    rows       Number of lines in the selection
    cols       Number of columns in the selection
    vcols      Number of virtual columns in the selection
    =========  =============================================================
    '''
    sline, scol, soff = [int(v) for v in vim_funcs['getpos']('v')[1:]]
    eline, ecol, eoff = [int(v) for v in vim_funcs['getpos']('.')[1:]]
    svcol = vim_funcs['virtcol']([sline, scol, soff])
    evcol = vim_funcs['virtcol']([eline, ecol, eoff])
    rows = abs(eline - sline) + 1
    cols = abs(ecol - scol) + 1
    vcols = abs(evcol - svcol) + 1
    return {
        '^': CTRL_V_text,
        's': v_text_oneline if rows == 1 else v_text_multiline,
        'S': V_text,
        'v': v_text_oneline if rows == 1 else v_text_multiline,
        'V': V_text,
    }.get(segment_info['mode'][0], '').format(
        sline=sline, eline=eline,
        scol=scol, ecol=ecol,
        svcol=svcol, evcol=evcol,
        rows=rows, cols=cols, vcols=vcols,
    )
项目:dotfiles    作者:gbraad    | 项目源码 | 文件源码
def trailing_whitespace(pl, segment_info):
    '''Return the line number for trailing whitespaces

    It is advised not to use this segment in insert mode: in Insert mode it will 
    iterate over all lines in buffer each time you happen to type a character 
    which may cause lags. It will also show you whitespace warning each time you 
    happen to type space.

    Highlight groups used: ``trailing_whitespace`` or ``warning``.
    '''
    global trailing_whitespace_cache
    if trailing_whitespace_cache is None:
        trailing_whitespace_cache = register_buffer_cache(defaultdict(lambda: (0, None)))
    bufnr = segment_info['bufnr']
    changedtick = getbufvar(bufnr, 'changedtick')
    if trailing_whitespace_cache[bufnr][0] == changedtick:
        return trailing_whitespace_cache[bufnr][1]
    else:
        buf = segment_info['buffer']
        bws = b' \t'
        sws = str(' \t')  # Ignore unicode_literals and use native str.
        for i in range(len(buf)):
            try:
                line = buf[i]
            except UnicodeDecodeError:  # May happen in Python 3
                if hasattr(vim, 'bindeval'):
                    line = vim.bindeval('getbufline({0}, {1})'.format(
                        bufnr, i + 1))
                    has_trailing_ws = (line[-1] in bws)
                else:
                    line = vim.eval('strtrans(getbufline({0}, {1}))'.format(
                        bufnr, i + 1))
                    has_trailing_ws = (line[-1] in bws)
            else:
                has_trailing_ws = (line and line[-1] in sws)
            if has_trailing_ws:
                break
        if has_trailing_ws:
            ret = [{
                'contents': str(i + 1),
                'highlight_groups': ['trailing_whitespace', 'warning'],
            }]
        else:
            ret = None
        trailing_whitespace_cache[bufnr] = (changedtick, ret)
        return ret
项目:Lixiang_zhaoxin    作者:hejaxian    | 项目源码 | 文件源码
def iwait(objects, timeout=None, count=None):
    """
    Iteratively yield *objects* as they are ready, until all (or *count*) are ready
    or *timeout* expired.

    :param objects: A sequence (supporting :func:`len`) containing objects
        implementing the wait protocol (rawlink() and unlink()).
    :keyword int count: If not `None`, then a number specifying the maximum number
        of objects to wait for. If ``None`` (the default), all objects
        are waited for.
    :keyword float timeout: If given, specifies a maximum number of seconds
        to wait. If the timeout expires before the desired waited-for objects
        are available, then this method returns immediately.

    .. seealso:: :func:`wait`

    .. versionchanged:: 1.1a1
       Add the *count* parameter.
    .. versionchanged:: 1.1a2
       No longer raise :exc:`LoopExit` if our caller switches greenlets
       in between items yielded by this function.
    """
    # QQQ would be nice to support iterable here that can be generated slowly (why?)
    if objects is None:
        yield get_hub().join(timeout=timeout)
        return

    count = len(objects) if count is None else min(count, len(objects))
    waiter = _MultipleWaiter()
    switch = waiter.switch

    if timeout is not None:
        timer = get_hub().loop.timer(timeout, priority=-1)
        timer.start(switch, _NONE)

    try:
        for obj in objects:
            obj.rawlink(switch)

        for _ in xrange(count):
            item = waiter.get()
            waiter.clear()
            if item is _NONE:
                return
            yield item
    finally:
        if timeout is not None:
            timer.stop()
        for obj in objects:
            unlink = getattr(obj, 'unlink', None)
            if unlink:
                try:
                    unlink(switch)
                except:
                    traceback.print_exc()