diff --git a/lang/es/scripts/createProperWordsDict.py b/lang/es/scripts/createProperWordsDict.py --- a/lang/es/scripts/createProperWordsDict.py +++ b/lang/es/scripts/createProperWordsDict.py @@ -17,7 +17,7 @@ from pology import version, _, n_ from pology.catalog import Catalog -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser from pology.fsops import str_to_unicode, collect_catalogs from pology.fsops import collect_paths_cmdline from pology.split import proper_words diff --git a/lang/sr/scripts/pohybdl.py b/lang/sr/scripts/pohybdl.py --- a/lang/sr/scripts/pohybdl.py +++ b/lang/sr/scripts/pohybdl.py @@ -15,7 +15,7 @@ from pology.catalog import Catalog from pology.message import MessageUnsafe from pology.lang.sr.wconv import tohi -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser from pology.comments import manc_parse_flag_list from pology.diff import msg_ediff, msg_ediff_to_new from pology.fsops import str_to_unicode, collect_catalogs diff --git a/lang/sr/scripts/traplint.py b/lang/sr/scripts/traplint.py --- a/lang/sr/scripts/traplint.py +++ b/lang/sr/scripts/traplint.py @@ -17,7 +17,7 @@ from pology.lang.sr.trapnakron import trapnakron_ui from pology.lang.sr.trapnakron import norm_pkey, norm_rtkey from pology.lang.sr.trapnakron import _disamb_marker -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser from pology.fsops import str_to_unicode from pology.normalize import identify from pology.report import report, warning, format_item_list diff --git a/pology/coloroptparse.py b/pology/coloroptparse.py new file mode 100644 --- /dev/null +++ b/pology/coloroptparse.py @@ -0,0 +1,42 @@ +# -*- coding: UTF-8 -*- +""" +Handler for ColorString arguments. + +@author: Chusslove Illich +@license: GPLv3 +""" + +import sys +from optparse import OptionParser + +from colors import ColorString + + +class ColorOptionParser (OptionParser): + """ + Lightweight wrapper for C{OptionParser} from standard library C{optparse}, + to gracefully handle L{ColorString} arguments supplied to its methods. + """ + + def _cv (self, val): + + if isinstance(val, ColorString): + val = val.resolve("term", sys.stdout) + elif isinstance(val, (list, tuple)): + val = map(self._cv, val) + elif isinstance(val, dict): + val = dict((k, self._cv(v)) for k, v in val.items()) + return val + + + def __init__ (self, *args, **kwargs): + + OptionParser.__init__(self, *self._cv(args), **self._cv(kwargs)) + + + def add_option (self, *args, **kwargs): + + OptionParser.add_option(self, *self._cv(args), **self._cv(kwargs)) + + + # FIXME: More overrides. diff --git a/pology/colors.py b/pology/colors.py --- a/pology/colors.py +++ b/pology/colors.py @@ -346,36 +346,6 @@ return format % iargs -class ColorOptionParser (OptionParser): - """ - Lightweight wrapper for C{OptionParser} from standard library C{optparse}, - to gracefully handle L{ColorString} arguments supplied to its methods. - """ - - def _cv (self, val): - - if isinstance(val, ColorString): - val = val.resolve("term", sys.stdout) - elif isinstance(val, (list, tuple)): - val = map(self._cv, val) - elif isinstance(val, dict): - val = dict((k, self._cv(v)) for k, v in val.items()) - return val - - - def __init__ (self, *args, **kwargs): - - OptionParser.__init__(self, *self._cv(args), **self._cv(kwargs)) - - - def add_option (self, *args, **kwargs): - - OptionParser.add_option(self, *self._cv(args), **self._cv(kwargs)) - - - # FIXME: More overrides. - - def get_coloring_types (): """ List of keywords of all available coloring types. diff --git a/scripts/poascribe.py b/scripts/poascribe.py --- a/scripts/poascribe.py +++ b/scripts/poascribe.py @@ -27,7 +27,8 @@ from pology.header import Header, TZInfo, format_datetime from pology.message import Message, MessageUnsafe from pology.gtxtools import msgfmt -from pology.colors import ColorOptionParser, cjoin +from pology.colors import cjoin +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.diff import msg_ediff, msg_ediff_to_new from pology.diff import editprob diff --git a/scripts/poediff.py b/scripts/poediff.py --- a/scripts/poediff.py +++ b/scripts/poediff.py @@ -24,7 +24,8 @@ from pology import version, _, n_, t_ from pology.catalog import Catalog from pology.message import MessageUnsafe -from pology.colors import ColorOptionParser, set_coloring_globals, cjoin +from pology.colors import set_coloring_globals, cjoin +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.fsops import str_to_unicode, collect_catalogs from pology.fsops import exit_on_exception diff --git a/scripts/poepatch.py b/scripts/poepatch.py --- a/scripts/poepatch.py +++ b/scripts/poepatch.py @@ -22,7 +22,7 @@ from tempfile import NamedTemporaryFile from pology import version, _, n_ -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser from pology.report import error, warning, report from pology.msgreport import error_on_msg, warning_on_msg import pology.config as pology_config diff --git a/scripts/pomtrans.py b/scripts/pomtrans.py --- a/scripts/pomtrans.py +++ b/scripts/pomtrans.py @@ -22,7 +22,7 @@ from pology import datadir, version, _, n_ from pology.catalog import Catalog -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.entities import read_entities from pology.fsops import collect_catalogs, collect_system diff --git a/scripts/porewrap.py b/scripts/porewrap.py --- a/scripts/porewrap.py +++ b/scripts/porewrap.py @@ -21,7 +21,7 @@ from pology import version, _, n_ from pology.catalog import Catalog -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.fsops import collect_paths_cmdline, collect_catalogs from pology.fsops import exit_on_exception diff --git a/scripts/poselfmerge.py b/scripts/poselfmerge.py --- a/scripts/poselfmerge.py +++ b/scripts/poselfmerge.py @@ -24,7 +24,7 @@ from pology import version, _, n_ from pology.catalog import Catalog from pology.message import MessageUnsafe -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.fsops import collect_paths_cmdline, collect_catalogs from pology.fsops import exit_on_exception diff --git a/scripts/posieve.py b/scripts/posieve.py --- a/scripts/posieve.py +++ b/scripts/posieve.py @@ -24,7 +24,8 @@ from pology import datadir, version, _, n_, t_ from pology.catalog import Catalog, CatalogSyntaxError -from pology.colors import ColorOptionParser, set_coloring_globals +from pology.colors import set_coloring_globals +from pology.coloroptparse import ColorOptionParser import pology.config as pology_config from pology.escape import escape_sh from pology.fsops import str_to_unicode, unicode_to_str diff --git a/scripts/posummit.py b/scripts/posummit.py --- a/scripts/posummit.py +++ b/scripts/posummit.py @@ -25,7 +25,7 @@ from pology.catalog import Catalog from pology.header import Header, format_datetime from pology.message import Message, MessageUnsafe -from pology.colors import ColorOptionParser +from pology.coloroptparse import ColorOptionParser from pology.fsops import str_to_unicode, unicode_to_str from pology.fsops import mkdirpath, assert_system, collect_system from pology.fsops import getucwd, join_ncwd