X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_common%2Ffslocal.py;h=5bae0e92d2a9ff53eb2ef26b78bcbe2bbe6a013e;hb=refs%2Fchanges%2F16%2F11816%2F6;hp=4a82c4f43cd996732aa7c7e1872e7bc98e6dcecd;hpb=2644b76248a1b96f7a47013b414e31b4e3feecf8;p=osm%2Fcommon.git diff --git a/osm_common/fslocal.py b/osm_common/fslocal.py index 4a82c4f..5bae0e9 100644 --- a/osm_common/fslocal.py +++ b/osm_common/fslocal.py @@ -15,12 +15,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import logging - -# import tarfile from http import HTTPStatus +import logging +import os from shutil import rmtree +import tarfile +import zipfile + from osm_common.fsbase import FsBase, FsException __author__ = "Alfonso Tierno " @@ -116,10 +117,10 @@ class FsLocal(FsBase): f = "/".join(storage) return os.path.getsize(self.path + f) - def file_extract(self, tar_object, path): + def file_extract(self, compressed_object, path): """ extract a tar file - :param tar_object: object of type tar + :param compressed_object: object of type tar or zip :param path: can be a str or a str list, or a tar object where to extract the tar_object :return: None """ @@ -127,7 +128,13 @@ class FsLocal(FsBase): f = self.path + path else: f = self.path + "/".join(path) - tar_object.extractall(path=f) + + if type(compressed_object) is tarfile.TarFile: + compressed_object.extractall(path=f) + elif ( + type(compressed_object) is zipfile.ZipFile + ): # Just a check to know if this works with both tar and zip + compressed_object.extractall(path=f) def file_open(self, storage, mode): """