Index: run_testcase.py =================================================================== --- run_testcase.py (révision 916) +++ run_testcase.py (copie de travail) @@ -214,7 +214,7 @@ return True def testFiles(directory, url_prefix): - if not os.path.exists(directory): + if not os.path.exists(str(directory)): try: os.mkdir(directory) except OSError, err: @@ -224,7 +224,7 @@ for item in files: # Download file if it doesn't exist filename, filesize, md5sum, check_parser, check_metadata = item - fullname = os.path.join(directory, filename) + fullname = os.path.join(str(directory), str(filename)) try: # Check file MD5 read = os.stat(fullname)[stat.ST_SIZE] @@ -249,7 +249,7 @@ if len(sys.argv) > 1: directory = sys.argv[1] else: - directory = os.path.join(os.path.dirname(__file__), "testcase") + directory = "testcase" charset = getTerminalCharset() directory = unicode(directory, charset) print "Start testcase." @@ -271,6 +271,5 @@ print sys.exit(1) -if __name__ == "__main__": - main() +main() Index: hachoir/plugin.py =================================================================== --- hachoir/plugin.py (révision 918) +++ hachoir/plugin.py (copie de travail) @@ -129,6 +129,7 @@ def guessParser(stream, filename=None, force_mime=None): # Extract file extension + filename = str(filename) filename = os.path.basename(filename) filename = filename.split(".") Index: hachoir/tools.py =================================================================== --- hachoir/tools.py (révision 935) +++ hachoir/tools.py (copie de travail) @@ -249,7 +249,7 @@ data = ''.join((quote, data, quote)) elif quote: data = "(empty)" - data = data.encode(charset, "backslashreplace") + data = data.encode(charset, "replace") if to_unicode: data = unicode(data, charset) return data Index: hachoir/stream/input.py =================================================================== --- hachoir/stream/input.py (révision 918) +++ hachoir/stream/input.py (copie de travail) @@ -44,11 +44,11 @@ assert endian in (BIG_ENDIAN, LITTLE_ENDIAN) shift, data = self.read(address, nbits) - value = str2long(data, endian) + value = int(str2long(data, endian)) if endian is BIG_ENDIAN: - value >>= len(data) * 8 - shift - nbits + value >>= int(len(data) * 8 - shift - nbits) else: - value >>= shift + value >>= int(shift) return value & (1 << nbits) - 1 def readInteger(self, address, signed, nbits, endian): @@ -227,7 +227,7 @@ address, shift = divmod(address, 8) self._input.seek(address) size = (size + shift + 7) / 8 - data = self._input.read(size) + data = self._input.read(int(size)) if len(data) != size: raise InputStreamError( _("Can't read %u bytes at address %u (got %u bytes)!") @@ -241,8 +241,8 @@ def FileInputStream(filename): - assert isinstance(filename, unicode) try: + filename = str(filename) inputio = open(filename, 'rb') except IOError, err: charset = getTerminalCharset() Index: hachoir/i18n.py =================================================================== --- hachoir/i18n.py (révision 939) +++ hachoir/i18n.py (copie de travail) @@ -31,7 +31,7 @@ charset = locale.getpreferredencoding() if charset: return charset - except (locale.Error, AttributeError): + except AttributeError: pass # (2) Try locale.nl_langinfo(CODESET) @@ -39,7 +39,7 @@ charset = locale.nl_langinfo(locale.CODESET) if charset: return charset - except (locale.Error, AttributeError): + except AttributeError: pass # (3) Try sys.stdout.encoding @@ -91,7 +91,7 @@ # Setup locales try: locale.setlocale(locale.LC_ALL, "") - except (locale.Error, IOError): + except (IOError, AttributeError): pass charset = getTerminalCharset()