コード例 #1
0
 def test_same_thing(self):
     a = tempfile.gettempdir()
     b = tempfile.gettempdir()
     c = tempfile.gettempdirb()
     self.assertTrue(a is b)
     self.assertNotEqual(type(a), type(c))
     self.assertEqual(a, os.fsdecode(c))
コード例 #2
0
def parse_remote_path(save_path):
    if save_path is None or not save_path.startswith('s3://'):
        return None, save_path
    remote_path = save_path
    filename = os.path.basename(remote_path)
    save_path = "%s/%d-%s" % (gettempdirb().decode("utf-8"), time(), filename)
    return remote_path, save_path
コード例 #3
0
    def test_directory_exists(self):
        # gettempdir returns a directory which exists

        for d in (tempfile.gettempdir(), tempfile.gettempdirb()):
            self.assertTrue(os.path.isabs(d) or d == os.curdir,
                            "%r is not an absolute path" % d)
            self.assertTrue(os.path.isdir(d),
                            "%r is not a directory" % d)
コード例 #4
0
    def test_directory_exists(self):
        # gettempdir returns a directory which exists

        for d in (tempfile.gettempdir(), tempfile.gettempdirb()):
            self.assertTrue(os.path.isabs(d) or d == os.curdir,
                            "%r is not an absolute path" % d)
            self.assertTrue(os.path.isdir(d),
                            "%r is not a directory" % d)
コード例 #5
0
    def test_same_thing(self):
        # gettempdir always returns the same object
        a = tempfile.gettempdir()
        b = tempfile.gettempdir()
        c = tempfile.gettempdirb()

        self.assertTrue(a is b)
        self.assertNotEqual(type(a), type(c))
        self.assertEqual(a, os.fsdecode(c))
コード例 #6
0
    def test_same_thing(self):
        # gettempdir always returns the same object
        a = tempfile.gettempdir()
        b = tempfile.gettempdir()
        c = tempfile.gettempdirb()

        self.assertTrue(a is b)
        self.assertNotEqual(type(a), type(c))
        self.assertEqual(a, os.fsdecode(c))
コード例 #7
0
    def gettempdirb(self):
        """Same as :meth:`gettempdir()`, but the return value is ``bytes``

        """
        dir = self._resolve_tempdir()
        if dir is None:
            return tempfile.gettempdirb()
        if not isinstance(dir, bytes):
            return dir.encode()
        return dir
コード例 #8
0
 def test_basic_with_bytes_names(self):
     dir_b = tempfile.gettempdirb()
     self.do_create(dir=dir_b, suf=b'').write(b'blat')
     self.do_create(dir=dir_b, pre=b'a').write(b'blat')
     self.do_create(dir=dir_b, suf=b'b').write(b'blat')
     self.do_create(dir=dir_b, pre=b'a', suf=b'b').write(b'blat')
     self.do_create(dir=dir_b, pre=b'aa', suf=b'.txt').write(b'blat')
     with self.assertRaises(TypeError):
         self.do_create(dir='', suf=b'').write(b'blat')
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre='').write(b'blat')
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre=b'', suf='').write(b'blat')
コード例 #9
0
 def test_basic_with_bytes_names(self):
     d = tempfile.gettempdirb()
     os.rmdir(self.do_create(dir=d))
     os.rmdir(self.do_create(dir=d, pre=b'a'))
     os.rmdir(self.do_create(dir=d, suf=b'b'))
     os.rmdir(self.do_create(dir=d, pre=b'a', suf=b'b'))
     os.rmdir(self.do_create(dir=d, pre=b'aa', suf=b'.txt'))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre='aa', suf=b'.txt'))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre=b'aa', suf='.txt'))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir='', pre=b'aa', suf=b'.txt'))
コード例 #10
0
 def do_create(self, dir=None, pre=None, suf=None, bin=1):
     output_type = tempfile._infer_return_type(dir, pre, suf)
     if dir is None:
         if output_type is str:
             dir = tempfile.gettempdir()
         else:
             dir = tempfile.gettempdirb()
     if pre is None:
         pre = output_type()
     if suf is None:
         suf = output_type()
     file = self.mkstemped(dir, pre, suf, bin)
     self.nameCheck(file.name, dir, pre, suf)
     return file
コード例 #11
0
 def test_basic_with_bytes_names(self):
     # mkdtemp can create directories when given all binary parts
     d = tempfile.gettempdirb()
     os.rmdir(self.do_create(dir=d))
     os.rmdir(self.do_create(dir=d, pre=b"a"))
     os.rmdir(self.do_create(dir=d, suf=b"b"))
     os.rmdir(self.do_create(dir=d, pre=b"a", suf=b"b"))
     os.rmdir(self.do_create(dir=d, pre=b"aa", suf=b".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre="aa", suf=b".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre=b"aa", suf=".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir="", pre=b"aa", suf=b".txt"))
コード例 #12
0
 def test_basic_with_bytes_names(self):
     # mkdtemp can create directories when given all binary parts
     d = tempfile.gettempdirb()
     os.rmdir(self.do_create(dir=d))
     os.rmdir(self.do_create(dir=d, pre=b"a"))
     os.rmdir(self.do_create(dir=d, suf=b"b"))
     os.rmdir(self.do_create(dir=d, pre=b"a", suf=b"b"))
     os.rmdir(self.do_create(dir=d, pre=b"aa", suf=b".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre="aa", suf=b".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir=d, pre=b"aa", suf=".txt"))
     with self.assertRaises(TypeError):
         os.rmdir(self.do_create(dir="", pre=b"aa", suf=b".txt"))
コード例 #13
0
    def do_create(self, dir=None, pre=None, suf=None, bin=1):
        output_type = tempfile._infer_return_type(dir, pre, suf)
        if dir is None:
            if output_type is str:
                dir = tempfile.gettempdir()
            else:
                dir = tempfile.gettempdirb()
        if pre is None:
            pre = output_type()
        if suf is None:
            suf = output_type()
        file = self.mkstemped(dir, pre, suf, bin)

        self.nameCheck(file.name, dir, pre, suf)
        return file
コード例 #14
0
 def test_basic_with_bytes_names(self):
     # _mkstemp_inner can create files when given name parts all
     # specified as bytes.
     dir_b = tempfile.gettempdirb()
     self.do_create(dir=dir_b, suf=b"").write(b"blat")
     self.do_create(dir=dir_b, pre=b"a").write(b"blat")
     self.do_create(dir=dir_b, suf=b"b").write(b"blat")
     self.do_create(dir=dir_b, pre=b"a", suf=b"b").write(b"blat")
     self.do_create(dir=dir_b, pre=b"aa", suf=b".txt").write(b"blat")
     # Can't mix str & binary types in the args.
     with self.assertRaises(TypeError):
         self.do_create(dir="", suf=b"").write(b"blat")
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre="").write(b"blat")
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre=b"", suf="").write(b"blat")
コード例 #15
0
 def test_basic_with_bytes_names(self):
     # _mkstemp_inner can create files when given name parts all
     # specified as bytes.
     dir_b = tempfile.gettempdirb()
     self.do_create(dir=dir_b, suf=b"").write(b"blat")
     self.do_create(dir=dir_b, pre=b"a").write(b"blat")
     self.do_create(dir=dir_b, suf=b"b").write(b"blat")
     self.do_create(dir=dir_b, pre=b"a", suf=b"b").write(b"blat")
     self.do_create(dir=dir_b, pre=b"aa", suf=b".txt").write(b"blat")
     # Can't mix str & binary types in the args.
     with self.assertRaises(TypeError):
         self.do_create(dir="", suf=b"").write(b"blat")
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre="").write(b"blat")
     with self.assertRaises(TypeError):
         self.do_create(dir=dir_b, pre=b"", suf="").write(b"blat")
コード例 #16
0
 def test_basic_with_bytes_names(self):
     # mkstemp can create files when given name parts all
     # specified as bytes.
     d = tempfile.gettempdirb()
     self.do_create(dir=d, suf=b"")
     self.do_create(dir=d, pre=b"a")
     self.do_create(dir=d, suf=b"b")
     self.do_create(dir=d, pre=b"a", suf=b"b")
     self.do_create(dir=d, pre=b"aa", suf=b".txt")
     self.do_create(dir=b".")
     with self.assertRaises(TypeError):
         self.do_create(dir=".", pre=b"aa", suf=b".txt")
     with self.assertRaises(TypeError):
         self.do_create(dir=b".", pre="aa", suf=b".txt")
     with self.assertRaises(TypeError):
         self.do_create(dir=b".", pre=b"aa", suf=".txt")
コード例 #17
0
 def test_basic_with_bytes_names(self):
     # mkstemp can create files when given name parts all
     # specified as bytes.
     d = tempfile.gettempdirb()
     self.do_create(dir=d, suf=b"")
     self.do_create(dir=d, pre=b"a")
     self.do_create(dir=d, suf=b"b")
     self.do_create(dir=d, pre=b"a", suf=b"b")
     self.do_create(dir=d, pre=b"aa", suf=b".txt")
     self.do_create(dir=b".")
     with self.assertRaises(TypeError):
         self.do_create(dir=".", pre=b"aa", suf=b".txt")
     with self.assertRaises(TypeError):
         self.do_create(dir=b".", pre="aa", suf=b".txt")
     with self.assertRaises(TypeError):
         self.do_create(dir=b".", pre=b"aa", suf=".txt")
コード例 #18
0
 def do_create(self, dir=None, pre=None, suf=None):
     output_type = tempfile._infer_return_type(dir, pre, suf)
     if dir is None:
         if output_type is str:
             dir = tempfile.gettempdir()
         else:
             dir = tempfile.gettempdirb()
     if pre is None:
         pre = output_type()
     if suf is None:
         suf = output_type()
     name = tempfile.mkdtemp(dir=dir, prefix=pre, suffix=suf)
     try:
         self.nameCheck(name, dir, pre, suf)
         return name
     except:
         os.rmdir(name)
         raise
コード例 #19
0
    def do_create(self, dir=None, pre=None, suf=None):
        output_type = tempfile._infer_return_type(dir, pre, suf)
        if dir is None:
            if output_type is str:
                dir = tempfile.gettempdir()
            else:
                dir = tempfile.gettempdirb()
        if pre is None:
            pre = output_type()
        if suf is None:
            suf = output_type()
        name = tempfile.mkdtemp(dir=dir, prefix=pre, suffix=suf)

        try:
            self.nameCheck(name, dir, pre, suf)
            return name
        except:
            os.rmdir(name)
            raise
コード例 #20
0
ファイル: socklocks.py プロジェクト: JustinTArthur/socklocks
    def __init__(self,
                 name: Optional[Union[bytes, bytearray, memoryview,
                                      str]] = None,
                 max_waiters: int = 1024,
                 allowed_inet_ports: Optional[Union[range, tuple,
                                                    list]] = None):
        if isinstance(name, str):
            # Use ASCII bytes for maximum compatibility with file systems.
            name = name.encode('ascii')

        self._needs_unlink = False
        if SUPPORTS_ABSTRACT_SOCKS and SUPPORTS_CMSG_SHARE:
            self._addr_family = socket.AF_UNIX
            if not name:
                namelen = 107 - len(self.PREFIX)
                name = bytes([random.getrandbits(8) for _ in range(namelen)])
            self._addr = b'\x00' + self.PREFIX + name
        elif SUPPORTS_UNIX_SOCKS and SUPPORTS_CMSG_SHARE:
            self._addr_family = socket.AF_UNIX
            if not name:
                name_len = random.randint(4, 22)
                name = bytes(random.choices(SIMPLE_CHAR_BYTES, k=name_len))
            self._addr = os.path.join(tempfile.gettempdirb(),
                                      self.PREFIX + name)
            self._needs_unlink = True
        elif SUPPORTS_ANY_SHARE:
            allowed_inet_ports = allowed_inet_ports or DEFAULT_ALLOWED_PORTS
            if name:
                position = hash(name) % (len(allowed_inet_ports) + 1)
                port = allowed_inet_ports[position]
            else:
                port = name = random.choice(allowed_inet_ports)
            self._addr_family = socket.AF_INET
            self._addr = ('127.0.0.1', port)
        else:
            raise NotImplementedError(
                'Socket handle sharing not implemented on this platform.')
        self._name = name
        self._max_waiters = max_waiters
        self._socket = None
コード例 #21
0
    def do_create(self, dir=None, pre=None, suf=None):
        output_type = tempfile._infer_return_type(dir, pre, suf)
        if dir is None:
            if output_type is str:
                dir = tempfile.gettempdir()
            else:
                dir = tempfile.gettempdirb()
        if pre is None:
            pre = output_type()
        if suf is None:
            suf = output_type()
        (fd, name) = tempfile.mkstemp(dir=dir, prefix=pre, suffix=suf)
        (ndir, nbase) = os.path.split(name)
        adir = os.path.abspath(dir)
        self.assertEqual(adir, ndir,
            "Directory '%s' incorrectly returned as '%s'" % (adir, ndir))

        try:
            self.nameCheck(name, dir, pre, suf)
        finally:
            os.close(fd)
            os.unlink(name)
コード例 #22
0
    def do_create(self, dir=None, pre=None, suf=None):
        output_type = tempfile._infer_return_type(dir, pre, suf)
        if dir is None:
            if output_type is str:
                dir = tempfile.gettempdir()
            else:
                dir = tempfile.gettempdirb()
        if pre is None:
            pre = output_type()
        if suf is None:
            suf = output_type()
        (fd, name) = tempfile.mkstemp(dir=dir, prefix=pre, suffix=suf)
        (ndir, nbase) = os.path.split(name)
        adir = os.path.abspath(dir)
        self.assertEqual(adir, ndir,
            "Directory '%s' incorrectly returned as '%s'" % (adir, ndir))

        try:
            self.nameCheck(name, dir, pre, suf)
        finally:
            os.close(fd)
            os.unlink(name)
コード例 #23
0
 def update_event(self, inp=-1):
     self.set_output_val(0, tempfile.gettempdirb())
コード例 #24
0
 def test_directory_exists(self):
     for d in (tempfile.gettempdir(), tempfile.gettempdirb()):
         self.assertTrue(
             os.path.isabs(d) or d == os.curdir,
             '%r is not an absolute path' % d)
         self.assertTrue(os.path.isdir(d), '%r is not a directory' % d)
コード例 #25
0
ファイル: Security.py プロジェクト: maru-shlee/rdiff-backup
def _set_security_level(security_class, cmdpairs):
    """
    If running client, set security level and restrict_path

    To find these settings, we must look at the action's security class
    to see what is supposed to happen, and then look at the cmdpairs to
    see what end the client is on.
    """
    def islocal(cmdpair):
        return not cmdpair[0]

    def bothlocal(cp1, cp2):
        return islocal(cp1) and islocal(cp2)

    def bothremote(cp1, cp2):
        return not islocal(cp1) and not islocal(cp2)

    def getpath(cmdpair):
        return cmdpair[1]

    if security_class == "server":
        return
    cp1 = cmdpairs[0]
    if len(cmdpairs) > 1:
        cp2 = cmdpairs[1]
    else:
        cp2 = cp1

    if security_class == "backup":
        if bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            rdir = getpath(cp1)
        else:  # cp2 is local but not cp1
            sec_level = "update-only"
            rdir = getpath(cp2)
    elif security_class == "restore":
        if len(cmdpairs) == 1 or bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            # FIXME it shouldn't be necessary to call back Main's function.
            Main.restore_set_root(
                rpath.RPath(Globals.local_connection, getpath(cp1)))
            if Main.restore_root:
                rdir = Main.restore_root.path
            else:
                log.Log.FatalError("Invalid restore directory")
        else:  # cp2 is local but not cp1
            sec_level = "all"
            rdir = getpath(cp2)
    elif security_class == "mirror":  # compat200 not sure what this was?!?
        if bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            rdir = getpath(cp1)
        else:  # cp2 is local but not cp1
            sec_level = "all"
            rdir = getpath(cp2)
    elif security_class == "validate":
        sec_level = "minimal"
        rdir = tempfile.gettempdirb()
    else:
        raise RuntimeError("Unknown action security class '{sec}'.".format(
            sec=security_class))

    Globals.security_level = sec_level
    Globals.restrict_path = rpath.RPath(Globals.local_connection,
                                        rdir).normalize().path
コード例 #26
0
# -*- encoding: utf-8 -*-
import tempfile

print("Dir temporal del sistema", tempfile.gettempdir())
print("Dir temporal (en bytes)", tempfile.gettempdirb())  # Python +3.5

print("Prefijo:", tempfile.gettempprefix())
print("Prefijo (en bytes)", tempfile.gettempprefixb())  # Python +3.5

#tempfile.tempdir = '/home/usuario/temp'
print("Directorio temporal", tempfile.gettempdir())
print("Directorio temporal", tempfile.tempdir)
コード例 #27
0
# tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True)
'''创建临时文件,与上述函数相比,当该程序向临时文件中写入数据时,会先写入到内存中,只到超过max_size才会真正的写入到物理磁盘中
	增加的max_size参数默认为0,当内存中需要写入数据大小超过max_size后或文件的fileno()方法被调用时,将内容写入硬盘,此时操作与TemporaryFile一致'''
# tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None)
'''生成临时目录'''
# tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None)

import tempfile

fp = tempfile.TemporaryFile()
print(
    fp.name)  # C:\Users\dxj728\AppData\Local\Temp\tmppzl2lqxk    \\ 返回临时文件路径名

print(tempfile.gettempdir()
      )  # C:\Users\dxj728\AppData\Local\Temp                \\ 获取系统的临时目录
print(tempfile.gettempdirb()
      )  # b'C:\\Users\\dxj728\\AppData\\Local\\Temp'        \\ 与上相同,只是返回字节串
print(tempfile.gettempprefix()
      )  # tmp                                               \\ 返回用于生成临时文件的前缀名
print(tempfile.gettempprefixb()
      )  # b'tmp'                                            \\ 与上相同,只是返回字节串

fp.write('hello'.encode('utf-8'))
fp.write('world'.encode('utf-8'))

fp.seek(0)  # 文件指针移到开始处,准备读取文件
print(fp.read().decode('utf-8'))

fp.close()  # 关闭临时文件,该文件会被自动删除

with tempfile.TemporaryDirectory() as fd:  # 使用with语句创建临时目录
コード例 #28
0
ファイル: test.py プロジェクト: huigher/pcap_redis
def tmp11():
    print(tempfile.gettempdir())
    print(tempfile.gettempprefix())
    print(tempfile.gettempdirb())
    print(tempfile.gettempprefixb())
    print(os.sep)
コード例 #29
0
def test181():
    print(tempfile.gettempdir())
    print(tempfile.gettempprefix())
    print(tempfile.gettempdirb())
コード例 #30
0
ファイル: Security.py プロジェクト: detrax/rdiff-backup
def _set_security_level(security_class, security_level, restrict_path,
                        cmdpairs):
    """
    If running client, set security level and restrict_path

    To find these settings, we must look at the action's security class
    to see what is supposed to happen, and then look at the cmdpairs to
    see what end the client is on, unless we're in server security class,
    in which case, we just return what's been chosen by the user.
    """
    def islocal(cmdpair):
        return not cmdpair[0]

    def bothlocal(cp1, cp2):
        return islocal(cp1) and islocal(cp2)

    def bothremote(cp1, cp2):
        return not islocal(cp1) and not islocal(cp2)

    def getpath(cmdpair):
        return cmdpair[1]

    # in security class model, we use the restrictions given by the user
    if security_class is None or security_class == "server":
        return (security_level, restrict_path)

    cp1 = cmdpairs[0]
    if len(cmdpairs) > 1:
        cp2 = cmdpairs[1]
    else:
        cp2 = cp1

    if security_class == "backup":
        if bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            rdir = getpath(cp1)
        else:  # cp2 is local but not cp1
            sec_level = "update-only"
            rdir = getpath(cp2)
    elif security_class == "restore":
        if len(cmdpairs) == 1 or bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            rp1 = rpath.RPath(Globals.local_connection, getpath(cp1))
            (base_dir, restore_index, restore_type) = rp1.get_repository_dirs()
            if restore_type is None:
                # the error will be catched later more cleanly, so that the
                # connections can be properly closed
                log.Log(
                    "Invalid restore directory '{rd}'".format(rd=getpath(cp1)),
                    log.ERROR)
            rdir = base_dir.path
        else:  # cp2 is local but not cp1
            sec_level = "read-write"
            rdir = getpath(cp2)
    elif security_class == "mirror":  # compat200 not sure what this was?!?
        if bothlocal(cp1, cp2) or bothremote(cp1, cp2):
            sec_level = "minimal"
            rdir = tempfile.gettempdirb()
        elif islocal(cp1):
            sec_level = "read-only"
            rdir = getpath(cp1)
        else:  # cp2 is local but not cp1
            sec_level = "read-write"
            rdir = getpath(cp2)
    elif security_class == "validate":
        sec_level = "minimal"
        rdir = tempfile.gettempdirb()
    else:
        raise RuntimeError("Unknown action security class '{sec}'.".format(
            sec=security_class))

    return (sec_level, rdir)
コード例 #31
0
ファイル: test.py プロジェクト: bmeg/gpython
import tempfile
import os

print("test tempfile")

if not tempfile.tempdir is None:
    print("tempfile.tempdir is not None: %s" % (tempfile.tempdir, ))
else:
    print("tempfile.tempdir is None [OK]")

v = tempfile.gettempdir()
if type(v) != type(""):
    print("tempfile.gettempdir() returned %s (type=%s)" % (v, type(v)))

v = tempfile.gettempdirb()
if type(v) != type(b""):
    print("tempfile.gettempdirb() returned %s (type=%s)" % (v, type(v)))

## mkdtemp
try:
    tmp = tempfile.mkdtemp()
    os.rmdir(tmp)
    print("mkdtemp() [OK]")
except Exception as e:
    print("could not create tmp dir w/ mkdtemp(): %s" % e)

try:
    tmp = tempfile.mkdtemp(prefix="prefix-", suffix="-suffix")
    os.rmdir(tmp)
    print("mkdtemp(prefix='prefix-', suffix='-suffix') [OK]")