Unpack .zip archive in `file_obj` to given `path`. Make sure, that it
        fits into limits (see :attr:`._max_zipfiles` for details).

        Args:
            file_obj (file): Opened file-like object.
            path (str): Path into which the .zip will be unpacked.

        Raises:
            ValueError: If there is too many files in .zip archive.

def _unpack_zip(self, file_obj, path):
        """
        Unpack .zip archive in `file_obj` to given `path`. Make sure, that it
        fits into limits (see :attr:`._max_zipfiles` for details).

        Args:
            file_obj (file): Opened file-like object.
            path (str): Path into which the .zip will be unpacked.

        Raises:
            ValueError: If there is too many files in .zip archive.
        """
        old_cwd = os.getcwd()
        os.chdir(path)

        zip_obj = zipfile.ZipFile(file_obj)
        for cnt, zip_info in enumerate(zip_obj.infolist()):
            zip_obj.extract(zip_info)

            if cnt + 1 > self.max_zipfiles:
                os.chdir(old_cwd)

                msg = "Too many files in .zip "
                msg += "(self.max_zipfiles == {}, but {} given).".format(
                    self.max_zipfiles,
                    cnt + 1,
                )
                raise ValueError(msg)

        os.chdir(old_cwd)