def is_tarball(fn): logmsg('is_tarball: %s' % fn) types = filetype_short(fn) logmsg('filetypes:', types) for t in types: if t.startswith('POSIX tar archive'): return True return False
def get_image_type(infile): typeinfo = filetype_short(infile) if typeinfo is None: return (None, None, 'Could not determine file type (does the file exist?): %s' % infile) (ext,cmd) = get_cmd(typeinfo, imgcmds) logging.debug('ext:', ext) # "file" recognizes some RAWs as TIFF, but tifftopnm can't read them... # run "dcraw" here if the type is TIFF. if ext == tiffext and is_raw(infile): (ext, cmd) = imgcmds['raw'] if ext is not None: return (ext, cmd, None) if ext != tiffext and is_raw(infile): # it's a RAW image. (ext, cmd) = imgcmds['raw'] return (ext, cmd, None) return (None, None, 'Unknown image type "%s"' % typeinfo)
def get_image_type(infile): typeinfo = filetype_short(infile) if typeinfo is None: return (None, None, 'Could not determine file type (does the file exist?): %s' % infile) (ext,cmd) = get_cmd(typeinfo, imgcmds) logging.debug('ext: %s' % ext) # "file" recognizes some RAWs as TIFF, but tifftopnm can't read them... # run "dcraw" here if the type is TIFF. if ext == tiffext and is_raw(infile): (ext, cmd) = imgcmds['raw'] if ext is not None: return (ext, cmd, None) if ext != tiffext and is_raw(infile): # it's a RAW image. (ext, cmd) = imgcmds['raw'] return (ext, cmd, None) return (None, None, 'Unknown image type "%s"' % typeinfo)
def uncompress_file(infile, uncompressed, typeinfo=None, extension=None): """ infile: input filename. uncompressed: output filename. typeinfo: output from the 'file' command; if None we'll run 'file'. Returns: comptype comptype: None if the file wasn't compressed, or 'gz' or 'bz2'. """ if typeinfo is None: typeinfo = filetype_short(infile) if typeinfo is None: logging.debug('Could not determine file type of "%s"' % infile) return None # print('uncompress_file: type is', typeinfo) (ext, cmd) = get_cmd(typeinfo, compcmds) # print('ext:', ext) if ext is None: # Check for fpack compressed FITS file. if fitstype in typeinfo: # FITS file. Check header for ZIMAGE=T try: import fitsio logging.debug('Checking FITS header of', infile, 'ext', extension, 'for ZIMAGE card (fpack compression)') hdr = fitsio.read_header(infile, ext=extension) if hdr.get('ZIMAGE', False): # Compressed cmd = (funpack_cmd % (extension or 0, shell_escape(infile), shell_escape(uncompressed))) logging.debug('Fpack compressed; uncompressing with', cmd) if os.system(cmd) == 0: return 'fz' except: pass logging.debug('File is not compressed: "%s"' % '/'.join(typeinfo)) return None assert uncompressed != infile logging.debug('Compressed file (type %s), dumping to: "%s"' % (ext, uncompressed)) do_command(cmd % (shell_escape(infile), shell_escape(uncompressed))) return ext
def uncompress_file(infile, uncompressed, typeinfo=None, extension=None): """ infile: input filename. uncompressed: output filename. typeinfo: output from the 'file' command; if None we'll run 'file'. Returns: comptype comptype: None if the file wasn't compressed, or 'gz' or 'bz2'. """ if typeinfo is None: typeinfo = filetype_short(infile) if typeinfo is None: logging.debug('Could not determine file type of "%s"' % infile) return None # print('uncompress_file: type is', typeinfo) (ext,cmd) = get_cmd(typeinfo, compcmds) # print('ext:', ext) if ext is None: # Check for fpack compressed FITS file. if fitstype in typeinfo: # FITS file. Check header for ZIMAGE=T try: import fitsio logging.debug('Checking FITS header of', infile, 'ext', extension, 'for ZIMAGE card (fpack compression)') hdr = fitsio.read_header(infile, ext=extension) if hdr.get('ZIMAGE', False): # Compressed cmd = (funpack_cmd % ( extension or 0, shell_escape(infile), shell_escape(uncompressed))) logging.debug('Fpack compressed; uncompressing with', cmd) if os.system(cmd) == 0: return 'fz' except: pass logging.debug('File is not compressed: "%s"' % '/'.join(typeinfo)) return None assert uncompressed != infile logging.debug('Compressed file (type %s), dumping to: "%s"' % (ext, uncompressed)) do_command(cmd % (shell_escape(infile), shell_escape(uncompressed))) return ext
def uncompress_file(infile, uncompressed, typeinfo=None): """ infile: input filename. uncompressed: output filename. typeinfo: output from the 'file' command; if None we'll run 'file'. Returns: comptype comptype: None if the file wasn't compressed, or 'gz' or 'bz2'. """ if typeinfo is None: typeinfo = filetype_short(infile) if typeinfo is None: logging.debug('Could not determine file type of "%s"' % infile) return None (ext,cmd) = get_cmd(typeinfo, compcmds) if ext is None: logging.debug('File is not compressed: "%s"' % '/'.join(typeinfo)) return None assert uncompressed != infile logging.debug('Compressed file (type %s), dumping to: "%s"' % (ext, uncompressed)) do_command(cmd % (shell_escape(infile), shell_escape(uncompressed))) return ext
def set_size_and_file_type(self): fn = self.get_path() st = os.stat(fn) self.size = st.st_size filetypes = filetype_short(fn) self.file_type = ';'.join(filetypes)