~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/config.py

  • Committer: Patch Queue Manager
  • Date: 2011-12-19 17:14:34 UTC
  • mfrom: (6378.1.5 config-si-unit)
  • Revision ID: pqm@pqm.ubuntu.com-20111219171434-i0b4ir0invs9il2v
(vila) Migrate add.maximum_file_size configuration option. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
442
442
            l = [l]
443
443
        return l
444
444
 
 
445
    @deprecated_method(deprecated_in((2, 5, 0)))
445
446
    def get_user_option_as_int_from_SI(self, option_name, default=None):
446
447
        """Get a generic option from a human readable size in SI units, e.g 10MB
447
448
 
492
493
        """See gpg_signing_command()."""
493
494
        return None
494
495
 
 
496
    @deprecated_method(deprecated_in((2, 5, 0)))
495
497
    def log_format(self):
496
498
        """What log format should be used"""
497
499
        result = self._log_format()
2457
2459
    return int(unicode_str)
2458
2460
 
2459
2461
 
 
2462
_unit_sfxs = dict(K=10**3, M=10**6, G=10**9)
 
2463
 
 
2464
def int_SI_from_store(unicode_str):
 
2465
    """Convert a human readable size in SI units, e.g 10MB into an integer.
 
2466
 
 
2467
    Accepted suffixes are K,M,G. It is case-insensitive and may be followed
 
2468
    by a trailing b (i.e. Kb, MB). This is intended to be practical and not
 
2469
    pedantic.
 
2470
 
 
2471
    :return Integer, expanded to its base-10 value if a proper SI unit is 
 
2472
        found, None otherwise.
 
2473
    """
 
2474
    regexp = "^(\d+)(([" + ''.join(_unit_sfxs) + "])b?)?$"
 
2475
    p = re.compile(regexp, re.IGNORECASE)
 
2476
    m = p.match(unicode_str)
 
2477
    val = None
 
2478
    if m is not None:
 
2479
        val, _, unit = m.groups()
 
2480
        val = int(val)
 
2481
        if unit:
 
2482
            try:
 
2483
                coeff = _unit_sfxs[unit.upper()]
 
2484
            except KeyError:
 
2485
                raise ValueError(gettext('{0} is not an SI unit.').format(unit))
 
2486
            val *= coeff
 
2487
    return val
 
2488
 
 
2489
 
2460
2490
def float_from_store(unicode_str):
2461
2491
    return float(unicode_str)
2462
2492
 
2550
2580
List of GPG key patterns which are acceptable for verification.
2551
2581
"""))
2552
2582
option_registry.register(
 
2583
    Option('add.maximum_file_size',
 
2584
           default=u'20MB', from_unicode=int_SI_from_store,
 
2585
           help="""\
 
2586
Size above which files should be added manually.
 
2587
 
 
2588
Files below this size are added automatically when using ``bzr add`` without
 
2589
arguments.
 
2590
 
 
2591
A negative value means disable the size check.
 
2592
"""))
 
2593
option_registry.register(
2553
2594
    Option('bzr.workingtree.worth_saving_limit', default=10,
2554
2595
           from_unicode=int_from_store,  invalid='warning',
2555
2596
           help='''\