Require and use Python >= 2.5

This commit is contained in:
Bastian Kleineidam 2012-05-25 22:15:29 +02:00
parent 14cfeb9607
commit e65fff3f7f
34 changed files with 39 additions and 39 deletions

View File

@ -10,6 +10,7 @@
* Generate standalone Windows .exe and Linux .rpm installer. * Generate standalone Windows .exe and Linux .rpm installer.
* Initialize the internal MIME database correct on all platforms. * Initialize the internal MIME database correct on all platforms.
* Improved option compatibility for the ar, cpio and tar programs. * Improved option compatibility for the ar, cpio and tar programs.
* Require and use Python >=2.5
0.16 "Game of thrones" (released 12.5.2012) 0.16 "Game of thrones" (released 12.5.2012)

View File

@ -3,7 +3,7 @@ Installation
First, install the required software. First, install the required software.
1. Python >= 2.4 from http://www.python.org/ 1. Python >= 2.5 from http://www.python.org/
Be sure to also have installed the included distutils module. Be sure to also have installed the included distutils module.
On most distributions, the distutils module is included in On most distributions, the distutils module is included in

3
patool
View File

@ -17,9 +17,6 @@
""" """
patool [extract|list|create|formats] [sub-command-options] <command-args> patool [extract|list|create|formats] [sub-command-options] <command-args>
""" """
import sys
if not hasattr(sys, "version_info") or sys.version_info < (2, 4, 0, "final", 0):
raise SystemExit("This program requires Python 2.4 or later.")
import os import os
from patoolib import handle_archive, list_formats, baker from patoolib import handle_archive, list_formats, baker

View File

@ -13,10 +13,13 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
if not hasattr(sys, "version_info") or sys.version_info < (2, 5, 0, "final", 0):
raise SystemExit("This program requires Python 2.5 or later.")
import os import os
import shutil import shutil
import stat import stat
from patoolib import util from . import util
# Supported archive commands # Supported archive commands
ArchiveCommands = ('list', 'extract', 'test', 'create') ArchiveCommands = ('list', 'extract', 'test', 'create')
@ -507,7 +510,7 @@ def get_archive_cmdlist_func (program, command, format):
module = ProgramModules.get(key, key) module = ProgramModules.get(key, key)
# import archive handler function (eg. patoolib.programs.star.extract_tar) # import archive handler function (eg. patoolib.programs.star.extract_tar)
args = (module, command, format) args = (module, command, format)
import_cmd = "from patoolib.programs.%s import %s_%s as func" % args import_cmd = "from .programs.%s import %s_%s as func" % args
try: try:
exec import_cmd exec import_cmd
except ImportError: except ImportError:

View File

@ -13,7 +13,7 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from patoolib import util from .. import util
def extract_singlefile_standard (archive, compression, cmd, **kwargs): def extract_singlefile_standard (archive, compression, cmd, **kwargs):
"""Standard routine to extract a singlefile archive (like gzip).""" """Standard routine to extract a singlefile archive (like gzip)."""

View File

@ -14,9 +14,8 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the bzip2 program.""" """Archive commands for the bzip2 program."""
from patoolib import util from .. import util
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, test_singlefile_standard
test_singlefile_standard
extract_bzip2 = extract_singlefile_standard extract_bzip2 = extract_singlefile_standard
test_bzip2 = test_singlefile_standard test_bzip2 = test_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the clzip program.""" """Archive commands for the clzip program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the uncompress.real program.""" """Archive commands for the uncompress.real program."""
from patoolib import util from .. import util
def create_compress (archive, compression, cmd, *args, **kwargs): def create_compress (archive, compression, cmd, *args, **kwargs):

View File

@ -16,7 +16,7 @@
"""Archive commands for the cpio program.""" """Archive commands for the cpio program."""
import os import os
import sys import sys
from patoolib import util from .. import util
def extract_cpio (archive, compression, cmd, **kwargs): def extract_cpio (archive, compression, cmd, **kwargs):
"""Extract a CPIO archive.""" """Extract a CPIO archive."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the flac program.""" """Archive commands for the flac program."""
from patoolib import util from .. import util
def extract_flac (archive, compression, cmd, **kwargs): def extract_flac (archive, compression, cmd, **kwargs):
"""Decompress a FLAC archive to a WAV file.""" """Decompress a FLAC archive to a WAV file."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the gzip program.""" """Archive commands for the gzip program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard
extract_gzip = extract_compress = extract_singlefile_standard extract_gzip = extract_compress = extract_singlefile_standard

View File

@ -15,4 +15,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the pbzip2 program.""" """Archive commands for the pbzip2 program."""
# bzip2 and lbzip2 are compatible # bzip2 and lbzip2 are compatible
from patoolib.programs.bzip2 import extract_bzip2, test_bzip2, create_bzip2 from .bzip2 import extract_bzip2, test_bzip2, create_bzip2

View File

@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the lrzip program.""" """Archive commands for the lrzip program."""
import os import os
from patoolib import util from .. import util
def extract_lrzip (archive, compression, cmd, **kwargs): def extract_lrzip (archive, compression, cmd, **kwargs):
"""Extract a LRZIP archive.""" """Extract a LRZIP archive."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the lzip program.""" """Archive commands for the lzip program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the lzma program.""" """Archive commands for the lzma program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the lzop program.""" """Archive commands for the lzop program."""
from patoolib.programs import extract_singlefile_standard from . import extract_singlefile_standard
extract_lzop = extract_singlefile_standard extract_lzop = extract_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the MAC.exe program.""" """Archive commands for the MAC.exe program."""
from patoolib import util from .. import util
def extract_ape (archive, compression, cmd, **kwargs): def extract_ape (archive, compression, cmd, **kwargs):
"""Decompress an APE archive to a WAV file.""" """Decompress an APE archive to a WAV file."""

View File

@ -15,4 +15,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the pbzip2 program.""" """Archive commands for the pbzip2 program."""
# bzip2 and pbzip2 are compatible # bzip2 and pbzip2 are compatible
from patoolib.programs.bzip2 import extract_bzip2, test_bzip2, create_bzip2 from .bzip2 import extract_bzip2, test_bzip2, create_bzip2

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the clzip program.""" """Archive commands for the clzip program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -14,4 +14,4 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the pigz program.""" """Archive commands for the pigz program."""
from patoolib.programs.gzip import extract_gzip, test_gzip, create_gzip, list_gzip from .gzip import extract_gzip, test_gzip, create_gzip, list_gzip

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the plzip program.""" """Archive commands for the plzip program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the bz2 Python module.""" """Archive commands for the bz2 Python module."""
from patoolib import util from .. import util
try: try:
# try external bz2file module with multi-stream support # try external bz2file module with multi-stream support
import bz2file as bz2 import bz2file as bz2

View File

@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands echoing data, implemented by the Python print """Archive commands echoing data, implemented by the Python print
statement.""" statement."""
from patoolib import util from .. import util
def list_bzip2 (archive, compression, cmd, **kwargs): def list_bzip2 (archive, compression, cmd, **kwargs):

View File

@ -17,7 +17,7 @@
from __future__ import absolute_import from __future__ import absolute_import
# now gzip refers to the Python standard module, not the local one # now gzip refers to the Python standard module, not the local one
import gzip import gzip
from patoolib import util from .. import util
READ_SIZE_BYTES = 1024*1024 READ_SIZE_BYTES = 1024*1024

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the tarfile Python module.""" """Archive commands for the tarfile Python module."""
from patoolib import util from .. import util
import tarfile import tarfile
READ_SIZE_BYTES = 1024*1024 READ_SIZE_BYTES = 1024*1024

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the zipfile Python module.""" """Archive commands for the zipfile Python module."""
from patoolib import util from .. import util
import zipfile import zipfile
import os import os

View File

@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the rpm2cpio program.""" """Archive commands for the rpm2cpio program."""
import os import os
from patoolib import util from .. import util
def extract_rpm (archive, compression, cmd, **kwargs): def extract_rpm (archive, compression, cmd, **kwargs):
"""Extract a RPM archive.""" """Extract a RPM archive."""

View File

@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the lrzip program.""" """Archive commands for the lrzip program."""
import os import os
from patoolib import util from .. import util
def extract_rzip (archive, compression, cmd, **kwargs): def extract_rzip (archive, compression, cmd, **kwargs):
"""Extract a RZIP archive.""" """Extract a RZIP archive."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the shar program.""" """Archive commands for the shar program."""
from patoolib import util from .. import util
def create_shar (archive, compression, cmd, *args, **kwargs): def create_shar (archive, compression, cmd, *args, **kwargs):
"""Create a SHAR archive.""" """Create a SHAR archive."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the shorten program.""" """Archive commands for the shorten program."""
from patoolib import util from .. import util
def extract_shn (archive, compression, cmd, **kwargs): def extract_shn (archive, compression, cmd, **kwargs):
"""Decompress a SHN archive to a WAV file.""" """Decompress a SHN archive to a WAV file."""

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the uncompress.real program.""" """Archive commands for the uncompress.real program."""
from patoolib import util from .. import util
def extract_compress (archive, compression, cmd, **kwargs): def extract_compress (archive, compression, cmd, **kwargs):

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the xdms program.""" """Archive commands for the xdms program."""
from patoolib import util from .. import util
def extract_dms (archive, compression, cmd, **kwargs): def extract_dms (archive, compression, cmd, **kwargs):

View File

@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Archive commands for the xz program.""" """Archive commands for the xz program."""
from patoolib.programs import extract_singlefile_standard, \ from . import extract_singlefile_standard, \
test_singlefile_standard, create_singlefile_standard test_singlefile_standard, create_singlefile_standard

View File

@ -169,7 +169,7 @@ def guess_mime_mimedb (filename):
mime, encoding = None, None mime, encoding = None, None
if mimedb is not None: if mimedb is not None:
mime, encoding = mimedb.guess_type(filename, strict=False) mime, encoding = mimedb.guess_type(filename, strict=False)
from patoolib import ArchiveMimetypes, ArchiveCompressions from . import ArchiveMimetypes, ArchiveCompressions
if mime not in ArchiveMimetypes and encoding in ArchiveCompressions: if mime not in ArchiveMimetypes and encoding in ArchiveCompressions:
# Files like 't.txt.gz' are recognized with encoding as format, and # Files like 't.txt.gz' are recognized with encoding as format, and
# an unsupported mime-type like 'text/plain'. Fix this. # an unsupported mime-type like 'text/plain'. Fix this.
@ -209,7 +209,7 @@ def guess_mime_file_mime (file_prog, filename):
except OSError: except OSError:
# ignore errors, as file(1) is only a fallback # ignore errors, as file(1) is only a fallback
return mime, encoding return mime, encoding
from patoolib import ArchiveMimetypes from . import ArchiveMimetypes
if mime in Mime2Encoding: if mime in Mime2Encoding:
# try to look inside compressed archives # try to look inside compressed archives
cmd = [file_prog, "--brief", "--mime", "--uncompress", filename] cmd = [file_prog, "--brief", "--mime", "--uncompress", filename]