[diffoscope] 01/03: Implement auto recognition for RE_FILE_TYPE if no recognizes() method exists
Mattia Rizzolo
mattia at debian.org
Sat Jan 14 12:01:58 CET 2017
This is an automated email from the git hooks/post-receive script.
mattia pushed a commit to branch wip/auto-recognize
in repository diffoscope.
commit a85d1553949e65cd818c95f1ff97d25e378088ed
Author: Mattia Rizzolo <mattia at debian.org>
Date: Sat Jan 14 11:13:55 2017 +0100
Implement auto recognition for RE_FILE_TYPE if no recognizes() method exists
---
diffoscope/comparators/utils/specialize.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/diffoscope/comparators/utils/specialize.py b/diffoscope/comparators/utils/specialize.py
index dd22e0b..0a18eb2 100644
--- a/diffoscope/comparators/utils/specialize.py
+++ b/diffoscope/comparators/utils/specialize.py
@@ -32,7 +32,14 @@ def specialize(file):
if isinstance(file, cls):
return file
with profile('recognizes', file):
- if cls.recognizes(file):
+ ret = False
+ if hasattr(cls, 'recognizes'):
+ ret = cls.recognizes(file)
+ else:
+ # No recognizes() method specified, try an auto recognition
+ if hasattr(cls, 'RE_FILE_TYPE'):
+ ret = cls.RE_FILE_TYPE.search(file.magic_file_type)
+ if ret:
logger.debug("Using %s for %s", cls.__name__, file.name)
new_cls = type(cls.__name__, (cls, type(file)), {})
file.__class__ = new_cls
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git
More information about the diffoscope
mailing list