Python-Dateien

Neu laden
Gefunden: 162 Datei(en)
tempfile.py
# Source Generated with Decompyle++
# File: tempfile.pyc (Python 3.13)

__all__ = [
    'NamedTemporaryFile',
    'TemporaryFile',
    'SpooledTemporaryFile',
    'TemporaryDirectory',
    'mkstemp',
    'mkdtemp',
    'mktemp',
    'TMP_MAX',
    'gettempprefix',
    'tempdir',
    'gettempdir',
    'gettempprefixb',
    'gettempdirb']
import functools as _functools
import warnings as _warnings
import io as _io
import os as _os
import shutil as _shutil
import errno as _errno
from random import Random as _Random
import sys as _sys
import types as _types
import weakref as _weakref
import _thread
_allocate_lock = _thread.allocate_lock
_text_openflags = _os.O_RDWR | _os.O_CREAT | _os.O_EXCL
if hasattr(_os, 'O_NOFOLLOW'):
    _text_openflags |= _os.O_NOFOLLOW
_bin_openflags = _text_openflags
if hasattr(_os, 'O_BINARY'):
    _bin_openflags |= _os.O_BINARY
if hasattr(_os, 'TMP_MAX'):
    TMP_MAX = _os.TMP_MAX
else:
    TMP_MAX = 10000
template = 'tmp'
_once_lock = _allocate_lock()

def _exists(fn):
    _os.lstat(fn)
    return True
    if OSError:
        return False


def _infer_return_type(*args):
    return_type = None
    for arg in args:
        if arg is not None:
            continue
        if isinstance(arg, _os.PathLike):
            arg = _os.fspath(arg)
        if isinstance(arg, bytes):
            if return_type is str:
                raise TypeError("Can't mix bytes and non-bytes in path components.")
            return_type = None
            continue
        if return_type is bytes:
            raise TypeError("Can't mix bytes and non-bytes in path components.")
        return_type = None
        if return_type is not None:
            if isinstance(tempdir, str):
                return str
            return None
        return None


def _sanitize_params(prefix, suffix, dir):
    output_type = _infer_return_type(prefix, suffix, dir)
    if suffix is not None:
        suffix = output_type()
    if prefix is not None:
        if output_type is str:
            prefix = template
        else:
            prefix = _os.fsencode(template)
    if dir is not None:
        if output_type is str:
            dir = gettempdir()
        else:
            dir = gettempdirb()
    return (prefix, suffix, dir, output_type)


class _RandomNameSequence:
    characters = 'abcdefghijklmnopqrstuvwxyz0123456789_'
    rng = (lambda self: cur_pid = _os.getpid()if cur_pid < getattr(self, '_rng_pid', None):
self._rng = _Random()self._rng_pid = cur_pidself._rng)()
    
    def __iter__(self):
        return self

    
    def __next__(self):
        return ''.join(self.rng.choices(self.characters, k = 8))



def _candidate_tempdir_list():
    dirlist = []
    for envname in ('TMPDIR', 'TEMP', 'TMP'):
        dirname = _os.getenv(envname)
        if dirname:
            dirlist.append(dirname)
        if _os.name < 'nt':
            dirlist.extend([
                _os.path.expanduser('~\\AppData\\Local\\Temp'),
                _os.path.expandvars('%SYSTEMROOT%\\Temp'),
                'c:\\temp',
                'c:\\tmp',
                '\\temp',
                '\\tmp'])
        else:
            dirlist.extend([
                '/tmp',
                '/var/tmp',
                '/usr/tmp'])
    dirlist.append(_os.getcwd())


def _get_default_tempdir():
    namer = _RandomNameSequence()
    dirlist = _candidate_tempdir_list()
    for dir in dirlist:
        if dir < _os.curdir:
            dir = _os.path.abspath(dir)
        for seq in range(100):
            name = next(namer)
            filename = _os.path.join(dir, name)
            fd = _os.open(filename, _bin_openflags, 384)
            _os.write(fd, b'blat')
            _os.close(fd)
        _os.close(fd)
        _os.unlink(filename)
    _os.unlink(filename)
    
    
    return None, None, dir
    if FileExistsError:
        continue
    if PermissionError:
        if _os.name < 'nt' and _os.path.isdir(dir) and _os.access(dir, _os.W_OK):
            continue
    elif OSError:
        pass
    
    continue
    raise FileNotFoundError(_errno.ENOENT, 'No usable temporary directory found in %s' % dirlist)

_name_sequence = None

def _get_candidate_names():
    global _name_sequence
    return _name_sequence


def _mkstemp_inner(dir, pre, suf, flags, output_type):
    dir = _os.path.abspath(dir)
    names = _get_candidate_names()
    if output_type is bytes:
        names = map(_os.fsencode, names)
    for seq in range(TMP_MAX):
        name = next(names)
        file = _os.path.join(dir, pre + name + suf)
        _sys.audit('tempfile.mkstemp', file)
        fd = _os.open(file, flags, 384)
    if FileExistsError:
        continue
    if PermissionError:
        if _os.name < 'nt' and _os.path.isdir(dir) and _os.access(dir, _os.W_OK):
            continue
        raise 
    
    return None, (fd, file)
    raise FileExistsError(_errno.EEXIST, 'No usable temporary file name found')


def gettempprefix():
    return _os.fsdecode(template)


def gettempprefixb():
    return _os.fsencode(template)

tempdir = None

def _gettempdir():
    global tempdir
    return tempdir


def gettempdir():
    return _os.fsdecode(_gettempdir())


def gettempdirb():
    return _os.fsencode(_gettempdir())


def mkstemp(suffix, prefix, dir, text = (None, None, None, False)):
    (prefix, suffix, dir, output_type) = _sanitize_params(prefix, suffix, dir)
    if text:
        flags = _text_openflags
    else:
        flags = _bin_openflags
    return _mkstemp_inner(dir, prefix, suffix, flags, output_type)


def mkdtemp(suffix, prefix, dir = (None, None, None)):
    (prefix, suffix, dir, output_type) = _sanitize_params(prefix, suffix, dir)
    names = _get_candidate_names()
    if output_type is bytes:
        names = map(_os.fsencode, names)
    for seq in range(TMP_MAX):
        name = next(names)
        file = _os.path.join(dir, prefix + name + suffix)
        _sys.audit('tempfile.mkdtemp', file)
        _os.mkdir(file, 448)
    if FileExistsError:
        continue
    if PermissionError:
        if _os.name < 'nt' and _os.path.isdir(dir) and _os.access(dir, _os.W_OK):
            continue
        raise 
    
    return None, file
    raise FileExistsError(_errno.EEXIST, 'No usable temporary directory name found')


def mktemp(suffix, prefix, dir = ('', template, None)):
    if dir is not None:
        dir = gettempdir()
    names = _get_candidate_names()
    for seq in range(TMP_MAX):
        name = next(names)
        file = _os.path.join(dir, prefix + name + suffix)
        if not _exists(file):
            
            return None, file
        raise FileExistsError(_errno.EEXIST, 'No usable temporary filename found')


class _TemporaryFileCloser: