mercurial/policy.py
changeset 32428 28b773aa3ff2
parent 32366 8e0327dae3f4
child 32511 2e431fb98c6b
equal deleted inserted replaced
32427:8db2feb04ceb 32428:28b773aa3ff2
    68         raise ImportError(r'cannot import name %s' % modname)
    68         raise ImportError(r'cannot import name %s' % modname)
    69     # force import; fakelocals[modname] may be replaced with the real module
    69     # force import; fakelocals[modname] may be replaced with the real module
    70     getattr(mod, r'__doc__', None)
    70     getattr(mod, r'__doc__', None)
    71     return fakelocals[modname]
    71     return fakelocals[modname]
    72 
    72 
       
    73 # keep in sync with "version" in C modules
       
    74 _cextversions = {
       
    75     r'base85': 1,
       
    76     r'bdiff': 1,
       
    77     r'diffhelpers': 1,
       
    78     r'mpatch': 1,
       
    79     r'osutil': 1,
       
    80     r'parsers': 1,
       
    81 }
       
    82 
    73 def _checkmod(pkgname, modname, mod):
    83 def _checkmod(pkgname, modname, mod):
    74     expected = 1  # TODO: maybe defined in table?
    84     expected = _cextversions.get(modname)
    75     actual = getattr(mod, r'version', None)
    85     actual = getattr(mod, r'version', None)
    76     if actual != expected:
    86     if actual != expected:
    77         raise ImportError(r'cannot import module %s.%s '
    87         raise ImportError(r'cannot import module %s.%s '
    78                           r'(expected version: %d, actual: %r)'
    88                           r'(expected version: %d, actual: %r)'
    79                           % (pkgname, modname, expected, actual))
    89                           % (pkgname, modname, expected, actual))