Python tarfile.is_tarfile() Examples
The following are 30
code examples of tarfile.is_tarfile().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tarfile
, or try the search function
.
Example #1
Source File: import_export.py From signac with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _prepare_import_into_project(origin, project, schema=None): "Prepare the data space at origin for import into project with the given schema function." if os.path.isfile(origin): if zipfile.is_zipfile(origin): with zipfile.ZipFile(origin) as file: yield _analyze_zipfile_for_import(file, project, schema) elif tarfile.is_tarfile(origin): with TemporaryDirectory() as tmpdir: with tarfile.open(origin) as file: yield _analyze_tarfile_for_import(file, project, schema, tmpdir) else: raise RuntimeError("Unknown file type: '{}'.".format(origin)) elif os.path.isdir(origin): yield _analyze_directory_for_import(root=origin, project=project, schema=schema) else: raise ValueError("Unable to import from '{}'. Does the origin exist?".format(origin))
Example #2
Source File: downloader.py From audiomate with MIT License | 6 votes |
def _extract_file(self, file_path, target_folder): ark_type = self.ark_type if self.ark_type == ArkType.AUTO: if tarfile.is_tarfile(file_path): ark_type = ArkType.TAR elif zipfile.is_zipfile(file_path): ark_type = ArkType.ZIP if ark_type == ArkType.TAR: download.extract_tar(file_path, target_folder) elif ark_type == ArkType.ZIP: download.extract_zip(file_path, target_folder) else: raise ValueError( 'Unrecognized archive type (Only zip/tar supported)!' )
Example #3
Source File: file_reference.py From cot with MIT License | 6 votes |
def __init__(self, tarfile_path, filename, **kwargs): """Create a reference to a file contained in a TAR archive. Args: tarfile_path (str): Path to TAR archive to read filename (str): File name in the TAR archive. **kwargs: Passed through to :meth:`FileReference.__init__`. Raises: IOError: if ``tarfile_path`` doesn't reference a TAR file, or the TAR file does not contain ``filename``. """ if not os.path.isabs(tarfile_path): logger.warning("Only absolute paths are accepted, but " 'got apparent relative path "%s".' "\nAttempting to convert it to an absolute path.", tarfile_path) tarfile_path = os.path.abspath(tarfile_path) if not tarfile.is_tarfile(tarfile_path): raise IOError("{0} is not a valid TAR file.".format(tarfile_path)) self.tarf = None super(FileInTAR, self).__init__(tarfile_path, filename, **kwargs)
Example #4
Source File: backup.py From ideascube with GNU Affero General Public License v3.0 | 6 votes |
def load(cls, file_): name = os.path.basename(file_.name) backup = Backup(name) with open(backup.path, mode='wb') as f: try: for chunk in file_.chunks(): f.write(chunk) except AttributeError: # file_ as no chunks, # read without them. while True: content = file_.read(4096) if not content: break f.write(content) if not ((name.endswith('.zip') and zipfile.is_zipfile(backup.path)) or tarfile.is_tarfile(backup.path) ): os.unlink(backup.path) raise ValueError(_("Not a {} file").format( 'zip' if name.endswith('.zip') else 'tar')) return backup
Example #5
Source File: util.py From oss-ftp with MIT License | 6 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.endswith('.zip') or filename.endswith('.pybundle') or filename.endswith('.whl') or zipfile.is_zipfile(filename)): unzip_file(filename, location, flatten=not filename.endswith(('.pybundle', '.whl'))) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or splitext(filename)[1].lower() in ('.tar', '.tar.gz', '.tar.bz2', '.tgz', '.tbz')): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: ## FIXME: handle? ## FIXME: magic signatures? logger.fatal('Cannot unpack file %s (downloaded from %s, content-type: %s); cannot detect archive format' % (filename, location, content_type)) raise InstallationError('Cannot determine archive format of %s' % location)
Example #6
Source File: image.py From sagemaker-python-sdk with Apache License 2.0 | 6 votes |
def _prepare_serving_volumes(self, model_location): """ Args: model_location: """ volumes = [] host = self.hosts[0] # Make the model available to the container. If this is a local file just mount it to # the container as a volume. If it is an S3 location, the DataSource will download it, we # just need to extract the tar file. host_dir = os.path.join(self.container_root, host) os.makedirs(host_dir) model_data_source = sagemaker.local.data.get_data_source_instance( model_location, self.sagemaker_session ) for filename in model_data_source.get_file_list(): if tarfile.is_tarfile(filename): with tarfile.open(filename) as tar: tar.extractall(path=model_data_source.get_root_dir()) volumes.append(_Volume(model_data_source.get_root_dir(), "/opt/ml/model")) return volumes
Example #7
Source File: common.py From sciwing with MIT License | 6 votes |
def cached_path(path: Union[pathlib.Path, str], url: str, unzip=True) -> pathlib.Path: if isinstance(path, str): path = pathlib.Path(path) msg_printer = Printer() if path.is_file() or path.is_dir(): msg_printer.info(f"{path} exists.") return path download_file(url=url, dest_filename=str(path)) if unzip: if zipfile.is_zipfile(str(path)): extract_zip(filename=str(path), destination_dir=str(path.parent)) if tarfile.is_tarfile(str(path)): if "tar" in path.suffix: mode = "r" elif "gz" in path.suffix: mode = "r:gz" else: mode = "r" extract_tar(filename=str(path), destination_dir=str(path.parent), mode=mode) return path
Example #8
Source File: utils.py From substra-backend with Apache License 2.0 | 6 votes |
def uncompress_path(archive_path, to_directory): if zipfile.is_zipfile(archive_path): with ZipFile(archive_path, 'r') as zf: # Check no path traversal filenames = [os.path.join(to_directory, filename) for filename in zf.namelist()] raise_if_path_traversal(filenames, to_directory) zf.extractall(to_directory) elif tarfile.is_tarfile(archive_path): with tarfile.open(archive_path, 'r:*') as tf: # Check no path traversal filenames = [os.path.join(to_directory, filename) for filename in tf.getnames()] raise_if_path_traversal(filenames, to_directory) tf.extractall(to_directory) else: raise Exception('Archive must be zip or tar.gz')
Example #9
Source File: test_call_hooks.py From pep517 with MIT License | 6 votes |
def test_build_sdist(): hooks = get_hooks('pkg1') with TemporaryDirectory() as sdistdir: with modified_env({'PYTHONPATH': BUILDSYS_PKGS}): sdist = hooks.build_sdist(sdistdir, {}) assert sdist.endswith('.tar.gz') assert os.sep not in sdist sdist = pjoin(sdistdir, sdist) assert_isfile(sdist) assert tarfile.is_tarfile(sdist) with tarfile.open(sdist) as tf: contents = tf.getnames() assert 'pkg1-0.5/pyproject.toml' in contents
Example #10
Source File: archiving.py From cloudify-manager with Apache License 2.0 | 6 votes |
def get_archive_type(archive_path): if zipfile.is_zipfile(archive_path): return 'zip' if tarfile.is_tarfile(archive_path): max_len = max(len(x) for x in TAR_MAGIC_DICT) with open(archive_path, 'rb') as f: file_start = f.read(max_len) for magic, ext in TAR_MAGIC_DICT.items(): if file_start.startswith(magic): return ext return 'tar' raise RuntimeError("Can't recognize archive type; Archive path {0}" .format(archive_path))
Example #11
Source File: system.py From stem with GNU Lesser General Public License v3.0 | 6 votes |
def is_tarfile(path: str) -> bool: """ Returns if the path belongs to a tarfile or not. .. versionadded:: 1.2.0 :param path: path to be checked :returns: **True** if the path belongs to a tarball, **False** otherwise """ # Checking if it's a tar file may fail due to permissions so failing back # to the mime type... # # IOError: [Errno 13] Permission denied: '/vmlinuz.old' # # With python 3 insuffient permissions raises an AttributeError instead... # # http://bugs.python.org/issue17059 try: return tarfile.is_tarfile(path) except (IOError, AttributeError): return mimetypes.guess_type(path)[0] == 'application/x-tar'
Example #12
Source File: app.py From pipenv with MIT License | 6 votes |
def prepare_fixtures(path): path = os.path.abspath(path) if not (os.path.exists(path) and os.path.isdir(path)): raise ValueError("{} is not a directory!".format(path)) for root, dirs, files in os.walk(path): package_name, _, _ = os.path.relpath(root, start=path).partition(os.path.sep) if package_name not in ARTIFACTS: ARTIFACTS[package_name] = Artifact(package_name) for file in files: file_path = os.path.join(root, file) rel_path = os.path.relpath(file_path, start=path) _, _, subpkg = rel_path.partition(os.path.sep) subpkg, _, _ = subpkg.partition(os.path.sep) pkg, ext = os.path.splitext(subpkg) if not (is_tarfile(file_path) or is_zipfile(file_path) or ext == ".git"): continue if subpkg not in ARTIFACTS[package_name].files: ARTIFACTS[package_name].add_file(os.path.join(root, file)) ARTIFACTS[package_name].add_file(os.path.join(root, file))
Example #13
Source File: stdownloader.py From syncthing-gtk with GNU General Public License v2.0 | 5 votes |
def _open_archive(self, archive_name): try: # Determine archive format archive = None if tarfile.is_tarfile(archive_name): # Open TAR archive = tarfile.open(archive_name, "r", bufsize=CHUNK_SIZE * 2) elif zipfile.is_zipfile(archive_name): # Open ZIP archive = ZipThatPretendsToBeTar(archive_name, "r") else: # Unrecognized format self.emit("error", None, _("Downloaded file is corrupted.")) # Find binary inside for pathname in archive.getnames(): # Strip initial 'syncthing-platform-vXYZ' from path path = pathname.replace("\\", "/").split("/")[1:] if len(path) < 1 : continue filename = path[0] if filename in ("syncthing", "syncthing.exe"): # Last sanity check, then just open files # and start extracting tinfo = archive.getmember(pathname) log.debug("Extracting '%s'..." % (pathname,)) if tinfo.isfile(): compressed = archive.extractfile(pathname) try: os.makedirs(os.path.split(self.target)[0]) except Exception: pass output = open(self.target, "wb") GLib.idle_add(self._extract, (archive, compressed, output, 0, tinfo.size)) return except Exception as e: log.exception(e) self.emit("error", e, _("Failed to determine latest Syncthing version.")) return
Example #14
Source File: utility.py From signac with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _extract(filename): with TemporaryDirectory() as tmpdir: if zipfile.is_zipfile(filename): with zipfile.ZipFile(filename) as file: file.extractall(tmpdir) yield tmpdir elif tarfile.is_tarfile(filename): with tarfile.open(filename) as file: file.extractall(path=tmpdir) yield tmpdir else: raise RuntimeError("Unknown file type: '{}'.".format(filename))
Example #15
Source File: model_upload.py From inference-model-manager with Apache License 2.0 | 5 votes |
def upload_model(url, params, headers, part_size, verify=False): file_path = params['file_path'] if os.path.isfile(file_path): if tarfile.is_tarfile(file_path): untar_and_upload(url, params, headers, part_size, verify) else: upload_file(url, params, headers, part_size, verify) elif os.path.isdir(file_path): upload_dir(url, params, headers, part_size, verify) else: raise Exception("Unrecognized type of upload")
Example #16
Source File: __init__.py From telegram-robot-rss with Mozilla Public License 2.0 | 5 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #17
Source File: misc.py From scylla with Apache License 2.0 | 5 votes |
def unpack_file( filename, # type: str location, # type: str content_type, # type: Optional[str] link # type: Optional[Link] ): # type: (...) -> None filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip._internal.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #18
Source File: utils.py From cloudify-cli with Apache License 2.0 | 5 votes |
def extract_archive(source): if tarfile.is_tarfile(source): return untar(source) elif zipfile.is_zipfile(source): return unzip(source) raise CloudifyCliError( 'Unsupported archive type provided or archive is not valid: {0}.' ' Supported archive types are: {1}' .format(source, SUPPORTED_ARCHIVE_TYPES) )
Example #19
Source File: utils.py From cloudify-cli with Apache License 2.0 | 5 votes |
def is_archive(source): return tarfile.is_tarfile(source) or zipfile.is_zipfile(source)
Example #20
Source File: profiles.py From cloudify-cli with Apache License 2.0 | 5 votes |
def _assert_is_tarfile(archive_path): if not tarfile.is_tarfile(archive_path): raise CloudifyCliError('The archive provided must be a tar.gz archive')
Example #21
Source File: misc.py From hacktoberfest2018 with GNU General Public License v3.0 | 5 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip._internal.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #22
Source File: misc.py From Building-Recommendation-Systems-with-Python with MIT License | 5 votes |
def unpack_file( filename, # type: str location, # type: str content_type, # type: Optional[str] link # type: Optional[Link] ): # type: (...) -> None filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip._internal.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #23
Source File: misc.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip._internal.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #24
Source File: file_reference.py From cot with MIT License | 5 votes |
def create(cls, container_path, filename, **kwargs): """Create a reference to a file in a container of some sort. Args: container_path (str): Absolute path to a container such as a directory or a TAR file. filename (str): Name of file within the container in question. **kwargs: See :meth:__init__() Returns: FileReference: instance of appropriate subclass """ if not os.path.isabs(container_path): logger.warning("Only absolute paths are accepted, but " 'got apparent relative path "%s".' "\nAttempting to convert it to an absolute path.", container_path) container_path = os.path.abspath(container_path) if not os.path.exists(container_path): raise IOError("Container path '{0}' does not exist" .format(container_path)) if os.path.isdir(container_path): return FileOnDisk(container_path, filename, **kwargs) elif tarfile.is_tarfile(container_path): return FileInTAR(container_path, filename, **kwargs) else: raise NotImplementedError("Don't know how to open container {0}!" .format(container_path))
Example #25
Source File: unpacking.py From pipenv with MIT License | 5 votes |
def unpack_file( filename, # type: str location, # type: str content_type=None, # type: Optional[str] ): # type: (...) -> None filename = os.path.realpath(filename) if ( content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename) ): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif ( content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS ) ): untar_file(filename, location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of {}'.format(location) )
Example #26
Source File: misc.py From deepWordBug with Apache License 2.0 | 5 votes |
def unpack_file( filename, # type: str location, # type: str content_type, # type: Optional[str] link # type: Optional[Link] ): # type: (...) -> None filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip._internal.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #27
Source File: unpacking.py From pex with Apache License 2.0 | 5 votes |
def unpack_file( filename, # type: str location, # type: str content_type=None, # type: Optional[str] ): # type: (...) -> None filename = os.path.realpath(filename) if ( content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename) ): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif ( content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS ) ): untar_file(filename, location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of {}'.format(location) )
Example #28
Source File: __init__.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )
Example #29
Source File: archive.py From CAMISIM with Apache License 2.0 | 5 votes |
def is_archive(file_path): """ Test if archive can be assumed by filename @param file_path: Path to file @type file_path: str | unicode @return: True if file is archive @rtype: str | None """ return tarfile.is_tarfile(file_path) or zipfile.is_zipfile(file_path)
Example #30
Source File: __init__.py From anpr with Creative Commons Attribution 4.0 International | 5 votes |
def unpack_file(filename, location, content_type, link): filename = os.path.realpath(filename) if (content_type == 'application/zip' or filename.lower().endswith(ZIP_EXTENSIONS) or zipfile.is_zipfile(filename)): unzip_file( filename, location, flatten=not filename.endswith('.whl') ) elif (content_type == 'application/x-gzip' or tarfile.is_tarfile(filename) or filename.lower().endswith( TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): untar_file(filename, location) elif (content_type and content_type.startswith('text/html') and is_svn_page(file_contents(filename))): # We don't really care about this from pip.vcs.subversion import Subversion Subversion('svn+' + link.url).unpack(location) else: # FIXME: handle? # FIXME: magic signatures? logger.critical( 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' 'cannot detect archive format', filename, location, content_type, ) raise InstallationError( 'Cannot determine archive format of %s' % location )