コード例 #1
0
ファイル: platforms.py プロジェクト: jonadiazz/celery
def fd_by_path(paths):
    """Return a list of fds.

    This method returns list of fds corresponding to
    file paths passed in paths variable.

    :keyword paths: List of file paths go get fd for.

    :returns: :list:.

    **Example**:

    .. code-block:: python

        keep = fd_by_path(['/dev/urandom',
                           '/my/precious/'])
    """
    stats = set()
    for path in paths:
        try:
            fd = os.open(path, os.O_RDONLY)
        except OSError:
            continue
        try:
            stats.add(os.fstat(fd)[1:3])
        finally:
            os.close(fd)

    def fd_in_stats(fd):
        try:
            return os.fstat(fd)[1:3] in stats
        except OSError:
            return False

    return [_fd for _fd in range(get_fdmax(2048)) if fd_in_stats(_fd)]
コード例 #2
0
def fd_by_path(paths):
    """Return a list of file descriptors.

    This method returns list of file descriptors corresponding to
    file paths passed in paths variable.

    Arguments:
        paths: List[str]: List of file paths.

    Returns:
        List[int]: List of file descriptors.

    Example:
        >>> keep = fd_by_path(['/dev/urandom', '/my/precious/'])
    """
    stats = set()
    for path in paths:
        try:
            fd = os.open(path, os.O_RDONLY)
        except OSError:
            continue
        try:
            stats.add(os.fstat(fd)[1:3])
        finally:
            os.close(fd)

    def fd_in_stats(fd):
        try:
            return os.fstat(fd)[1:3] in stats
        except OSError:
            return False

    return [_fd for _fd in range(get_fdmax(2048)) if fd_in_stats(_fd)]
コード例 #3
0
ファイル: platforms.py プロジェクト: AlJohri/celery
def fd_by_path(paths):
    """Return a list of fds.

    This method returns list of fds corresponding to
    file paths passed in paths variable.

    :keyword paths: List of file paths go get fd for.

    :returns: :list:.

    **Example**:

    .. code-block:: python

        keep = fd_by_path(['/dev/urandom',
                           '/my/precious/'])
    """
    stats = set()
    for path in paths:
        try:
            fd = os.open(path, os.O_RDONLY)
        except OSError:
            continue
        try:
            stats.add(os.fstat(fd)[1:3])
        finally:
            os.close(fd)

    def fd_in_stats(fd):
        try:
            return os.fstat(fd)[1:3] in stats
        except OSError:
            return False

    return [_fd for _fd in range(get_fdmax(2048)) if fd_in_stats(_fd)]