Description
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Resolved | Xqt | T196039 replace.py async does not seem to be async at all | |||
| Resolved | Mpaa | T135992 manually-assisted replace.py seems throttled | |||
| Resolved | Xqt | T73646 replace.py: async output messages jumbled with user interaction on main thread | |||
| Resolved | Xqt | T151727 Port cache_output from compat |
Event Timeline
@Xqt Try to use replace.py and confirm/reject/modify all diffs without having to wait on the "save" thread. It is impossible, so the replace.py logic is not (at least not fully) async.
Well, according to my experience, saving using solve_disambiguation works more smoothly than using replace.py. But maybe I'm not right?
What I would expect from Pwb:
- manual mode (y/n) => async
- always mode (a/-always) => sync
How Pwb behaves mostly:
- manual mode => sync (omg why?)
- always mode => async
How Pwb behaves sometimes (replace.py):
- manual mode => async working not so async as it should
- always mode => sync
Cannot really reproduce it. But I re-implemented cached output from compat in https://gerrit.wikimedia.org/r/#/c/pywikibot/core/+/282818/ and discarded all these callback changes in replace.py (which does not work properly especially for other messages than saving hints) to use the default BaseBot's behaviour. In addition I introduce a saving delay for -simulate option with https://gerrit.wikimedia.org/r/#/c/pywikibot/core/+/607072/ and awaiting put threads beeing done during BaseBot.exit() in https://gerrit.wikimedia.org/r/#/c/pywikibot/core/+/607170/. With these concepts I do not find a sticking async behaviour. A good simulating command could be:
py -3 pwb.py replace -simulate a b -start:! -summary:"Bot: Tests"
Confirm several changes with [y]es and stop with [q]uit then.