Mercurial > hg
view tests/test-issue5979.t @ 51730:63ede7a43a37 stable
demandimport: don't delay threading import
A recent cpython change breaks demandimport by importing threading
locally in importlib.util.LazyLoader.exec_module; add it (plus warnings
and _weakrefset, which are imported by threading) to demandimport's
ignore list.
```
Traceback (most recent call last):
File "/usr/bin/hg", line 57, in <module>
from mercurial import dispatch
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
super().exec_module(module)
File "<frozen importlib.util>", line 257, in exec_module
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
super().exec_module(module)
File "<frozen importlib.util>", line 267, in exec_module
AttributeError: partially initialized module 'threading' has no attribute 'RLock' (most likely due to a circular import)
```
Ref: https://github.com/python/cpython/issues/117983
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076449
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076747
author | Julien Cristau <jcristau@debian.org> |
---|---|
date | Fri, 26 Jul 2024 10:52:28 +0200 |
parents | ef6cab7930b3 |
children |
line wrap: on
line source
$ hg init r1 $ cd r1 $ hg ci --config ui.allowemptycommit=true -m c0 $ hg ci --config ui.allowemptycommit=true -m c1 $ hg ci --config ui.allowemptycommit=true -m c2 $ hg co -q 0 $ hg ci --config ui.allowemptycommit=true -m c3 created new head $ hg co -q 3 $ hg merge --quiet $ hg ci --config ui.allowemptycommit=true -m c4 $ hg log -G -T'{desc}' @ c4 |\ | o c3 | | o | c2 | | o | c1 |/ o c0 >>> from mercurial import hg >>> from mercurial import ui as uimod >>> repo = hg.repository(uimod.ui()) >>> for anc in repo.changelog.ancestors([4], inclusive=True): ... print(anc) 4 3 2 1 0