| Index: third_party/logilab/common/optik_ext.py | 
| =================================================================== | 
| --- third_party/logilab/common/optik_ext.py	(revision 292881) | 
| +++ third_party/logilab/common/optik_ext.py	(working copy) | 
| @@ -46,6 +46,8 @@ | 
| argument of this type will be converted to a float value in bytes | 
| according to byte units (b, kb, mb, gb, tb) | 
| """ | 
| +from __future__ import print_function | 
| + | 
| __docformat__ = "restructuredtext en" | 
|  | 
| import re | 
| @@ -65,11 +67,10 @@ | 
| except ImportError: | 
| HAS_MX_DATETIME = False | 
|  | 
| +from logilab.common.textutils import splitstrip, TIME_UNITS, BYTE_UNITS, \ | 
| +    apply_units | 
|  | 
| -OPTPARSE_FORMAT_DEFAULT = sys.version_info >= (2, 4) | 
|  | 
| -from logilab.common.textutils import splitstrip | 
| - | 
| def check_regexp(option, opt, value): | 
| """check a regexp value by trying to compile it | 
| return the compiled regexp | 
| @@ -168,18 +169,15 @@ | 
| raise OptionValueError(msg % (opt, value)) | 
|  | 
| def check_time(option, opt, value): | 
| -    from logilab.common.textutils import TIME_UNITS, apply_units | 
| if isinstance(value, (int, long, float)): | 
| return value | 
| return apply_units(value, TIME_UNITS) | 
|  | 
| def check_bytes(option, opt, value): | 
| -    from logilab.common.textutils import BYTE_UNITS, apply_units | 
| if hasattr(value, '__int__'): | 
| return value | 
| return apply_units(value, BYTE_UNITS) | 
|  | 
| -import types | 
|  | 
| class Option(BaseOption): | 
| """override optik.Option to add some new option types | 
| @@ -214,7 +212,7 @@ | 
| if self.choices is None: | 
| raise OptionError( | 
| "must supply a list of choices for type 'choice'", self) | 
| -            elif type(self.choices) not in (types.TupleType, types.ListType): | 
| +            elif not isinstance(self.choices, (tuple, list)): | 
| raise OptionError( | 
| "choices must be a list of strings ('%s' supplied)" | 
| % str(type(self.choices)).split("'")[1], self) | 
| @@ -227,10 +225,7 @@ | 
| def process(self, opt, value, values, parser): | 
| # First, convert the value(s) to the right type.  Howl if any | 
| # value(s) are bogus. | 
| -        try: | 
| -            value = self.convert_value(opt, value) | 
| -        except AttributeError: # py < 2.4 | 
| -            value = self.check_value(opt, value) | 
| +        value = self.convert_value(opt, value) | 
| if self.type == 'named': | 
| existant = getattr(values, self.dest) | 
| if existant: | 
| @@ -388,9 +383,9 @@ | 
| formatter = ManHelpFormatter() | 
| formatter.output_level = level | 
| formatter.parser = optparser | 
| -    print >> stream, formatter.format_head(optparser, pkginfo, section) | 
| -    print >> stream, optparser.format_option_help(formatter) | 
| -    print >> stream, formatter.format_tail(pkginfo) | 
| +    print(formatter.format_head(optparser, pkginfo, section), file=stream) | 
| +    print(optparser.format_option_help(formatter), file=stream) | 
| +    print(formatter.format_tail(pkginfo), file=stream) | 
|  | 
|  | 
| __all__ = ('OptionParser', 'Option', 'OptionGroup', 'OptionValueError', | 
|  |