From 120b2049887842624013d6086152b7a96ce0faac Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 6 Sep 2018 11:13:11 +0200 Subject: [PATCH] Change a bit the previous commit --- libmat2/__init__.py | 5 +++-- mat2 | 15 ++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libmat2/__init__.py b/libmat2/__init__.py index 8a5b064..101c7f1 100644 --- a/libmat2/__init__.py +++ b/libmat2/__init__.py @@ -2,7 +2,7 @@ import os import collections -from enum import Enum +import enum import importlib from typing import Dict, Optional @@ -64,7 +64,8 @@ def check_dependencies() -> dict: return ret -class UnknownMemberPolicy(Enum): +@enum.unique +class UnknownMemberPolicy(enum.Enum): ABORT = 'abort' OMIT = 'omit' KEEP = 'keep' diff --git a/mat2 b/mat2 index 0aba8d1..23a09d3 100755 --- a/mat2 +++ b/mat2 @@ -10,8 +10,8 @@ import multiprocessing import logging try: - from libmat2 import (parser_factory, UNSUPPORTED_EXTENSIONS, check_dependencies, - UnknownMemberPolicy) + from libmat2 import parser_factory, UNSUPPORTED_EXTENSIONS + from libmat2 import check_dependencies, UnknownMemberPolicy except ValueError as e: print(e) sys.exit(1) @@ -44,7 +44,7 @@ def create_arg_parser(): help='show more verbose status information') parser.add_argument('--unknown-members', metavar='policy', default='abort', help='how to handle unknown members of archive-style files (policy should' + - ' be one of: ' + ', '.join([x.value for x in UnknownMemberPolicy]) + ')') + ' be one of: %s)' % ', '.join(p.value for p in UnknownMemberPolicy)) info = parser.add_mutually_exclusive_group() @@ -141,11 +141,12 @@ def main(): unknown_member_policy = UnknownMemberPolicy(args.unknown_members) if unknown_member_policy == UnknownMemberPolicy.KEEP: logging.warning('Keeping unknown member files may leak metadata in the resulting file!') - p = multiprocessing.Pool() - mode = (args.lightweight is True) - l = zip(__get_files_recursively(args.files), itertools.repeat(mode), - itertools.repeat(unknown_member_policy)) + rep_mode = itertools.repeat(args.lightweight is True) + rep_policy = itertools.repeat(unknown_member_policy) + l = zip(__get_files_recursively(args.files), rep_mode, rep_policy) + + p = multiprocessing.Pool() ret = list(p.imap_unordered(clean_meta, list(l))) return 0 if all(ret) else -1