equal
deleted
inserted
replaced
68 try: |
68 try: |
69 fakelocals[modname] = mod = getattr(pkg, modname) |
69 fakelocals[modname] = mod = getattr(pkg, modname) |
70 except AttributeError: |
70 except AttributeError: |
71 raise ImportError(r'cannot import name %s' % modname) |
71 raise ImportError(r'cannot import name %s' % modname) |
72 # force import; fakelocals[modname] may be replaced with the real module |
72 # force import; fakelocals[modname] may be replaced with the real module |
73 getattr(mod, r'__doc__', None) |
73 getattr(mod, '__doc__', None) |
74 return fakelocals[modname] |
74 return fakelocals[modname] |
75 |
75 |
76 |
76 |
77 # keep in sync with "version" in C modules |
77 # keep in sync with "version" in C modules |
78 _cextversions = { |
78 _cextversions = { |
92 } |
92 } |
93 |
93 |
94 |
94 |
95 def _checkmod(pkgname, modname, mod): |
95 def _checkmod(pkgname, modname, mod): |
96 expected = _cextversions.get((pkgname, modname)) |
96 expected = _cextversions.get((pkgname, modname)) |
97 actual = getattr(mod, r'version', None) |
97 actual = getattr(mod, 'version', None) |
98 if actual != expected: |
98 if actual != expected: |
99 raise ImportError( |
99 raise ImportError( |
100 r'cannot import module %s.%s ' |
100 r'cannot import module %s.%s ' |
101 r'(expected version: %d, actual: %r)' |
101 r'(expected version: %d, actual: %r)' |
102 % (pkgname, modname, expected, actual) |
102 % (pkgname, modname, expected, actual) |