home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1378 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.2 KB  |  114 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from __future__ import with_statement
  5. __license__ = 'GPL v3'
  6. __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
  7. import tempfile
  8. import os
  9. import atexit
  10. import shutil
  11. from calibre import __version__, __appname__
  12.  
  13. def cleanup(path):
  14.     
  15.     try:
  16.         import os
  17.         if os.path.exists(path):
  18.             os.remove(path)
  19.     except:
  20.         pass
  21.  
  22.  
  23.  
  24. class PersistentTemporaryFile(object):
  25.     _file = None
  26.     
  27.     def __init__(self, suffix = '', prefix = '', dir = None, mode = 'w+b'):
  28.         if prefix == None:
  29.             prefix = ''
  30.         
  31.         (fd, name) = tempfile.mkstemp(suffix, __appname__ + '_' + __version__ + '_' + prefix, dir = dir)
  32.         self._file = os.fdopen(fd, mode)
  33.         self._name = name
  34.         self._fd = fd
  35.         atexit.register(cleanup, name)
  36.  
  37.     
  38.     def __getattr__(self, name):
  39.         if name == 'name':
  40.             return self.__dict__['_name']
  41.         return getattr(self.__dict__['_file'], name)
  42.  
  43.     
  44.     def __enter__(self):
  45.         return self
  46.  
  47.     
  48.     def __exit__(self, *args):
  49.         self.close()
  50.  
  51.     
  52.     def __del__(self):
  53.         
  54.         try:
  55.             self.close()
  56.         except:
  57.             pass
  58.  
  59.  
  60.  
  61.  
  62. def PersistentTemporaryDirectory(suffix = '', prefix = '', dir = None):
  63.     tdir = tempfile.mkdtemp(suffix, __appname__ + '_' + __version__ + '_' + prefix, dir)
  64.     atexit.register(shutil.rmtree, tdir, True)
  65.     return tdir
  66.  
  67.  
  68. class TemporaryDirectory(object):
  69.     
  70.     def __init__(self, suffix = '', prefix = '', dir = None, keep = False):
  71.         self.suffix = suffix
  72.         self.prefix = prefix
  73.         self.dir = dir
  74.         self.keep = keep
  75.  
  76.     
  77.     def __enter__(self):
  78.         self.tdir = tempfile.mkdtemp(self.suffix, __appname__ + '_' + __version__ + '_' + self.prefix, self.dir)
  79.         return self.tdir
  80.  
  81.     
  82.     def __exit__(self, *args):
  83.         if not (self.keep) and os.path.exists(self.tdir):
  84.             shutil.rmtree(self.tdir, ignore_errors = True)
  85.         
  86.  
  87.  
  88.  
  89. class TemporaryFile(object):
  90.     
  91.     def __init__(self, suffix = '', prefix = '', dir = None, mode = 'w+b'):
  92.         if prefix == None:
  93.             prefix = ''
  94.         
  95.         if suffix is None:
  96.             suffix = ''
  97.         
  98.         (self.prefix, self.suffix, self.dir, self.mode) = (prefix, suffix, dir, mode)
  99.         self._file = None
  100.  
  101.     
  102.     def __enter__(self):
  103.         (fd, name) = tempfile.mkstemp(self.suffix, __appname__ + '_' + __version__ + '_' + self.prefix, dir = self.dir)
  104.         self._file = os.fdopen(fd, self.mode)
  105.         self._name = name
  106.         self._file.close()
  107.         return name
  108.  
  109.     
  110.     def __exit__(self, *args):
  111.         cleanup(self._name)
  112.  
  113.  
  114.