mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
9dc21f8d0b
Summary: D13853115 adds `edenscm/` to `sys.path` and code still uses `import mercurial`. That has nasty problems if both `import mercurial` and `import edenscm.mercurial` are used, because Python would think `mercurial.foo` and `edenscm.mercurial.foo` are different modules so code like `try: ... except mercurial.error.Foo: ...`, or `isinstance(x, mercurial.foo.Bar)` would fail to handle the `edenscm.mercurial` version. There are also some module-level states (ex. `extensions._extensions`) that would cause trouble if they have multiple versions in a single process. Change imports to use the `edenscm` so ideally the `mercurial` is no longer imported at all. Add checks in extensions.py to catch unexpected extensions importing modules from the old (wrong) locations when running tests. Reviewed By: phillco Differential Revision: D13868981 fbshipit-source-id: f4e2513766957fd81d85407994f7521a08e4de48
31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
os = <unloaded module 'os'>
|
|
os.system = <built-in function system>
|
|
os = <module 'os' from '?'>
|
|
util = <unloaded module 'util'>
|
|
util.system = <function system at 0x?>
|
|
util = <module 'edenscm.mercurial.util' from '?'>
|
|
util.system = <function system at 0x?>
|
|
hgweb = <unloaded module 'hgweb'>
|
|
hgweb_mod = <unloaded module 'hgweb_mod'>
|
|
hgweb = <module 'edenscm.mercurial.hgweb' from '?'>
|
|
fred = <unloaded module 're'>
|
|
remod = <unloaded module 're'>
|
|
re = <unloaded module 'sys'>
|
|
fred = <unloaded module 're'>
|
|
fred.sub = <function sub at 0x?>
|
|
fred = <proxied module 're'>
|
|
remod = <module 're' from '?'>
|
|
re = <unloaded module 'sys'>
|
|
re.stderr = <open file '<whatever>', mode 'w' at 0x?>
|
|
re = <proxied module 'sys'>
|
|
pvecproxy = <unloaded module 'pvec'>
|
|
pvecproxy.__doc__ = 'A "pvec" is ...'
|
|
pvecproxy.__name__ = 'edenscm.mercurial.pvec'
|
|
pvecproxy.__dict__['__name__'] = 'edenscm.mercurial.pvec'
|
|
pvecproxy = <proxied module 'pvec'>
|
|
contextlib = <unloaded module 'contextlib'>
|
|
contextlib.unknownattr = ImportError: cannot import name unknownattr
|
|
__import__('contextlib', ..., ['unknownattr']) = <module 'contextlib' from '?'>
|
|
hasattr(contextlibimp, 'unknownattr') = False
|
|
node = <module 'edenscm.mercurial.node' from '?'>
|