https://bugzilla.wikimedia.org/show_bug.cgi?id=68705

--- Comment #4 from John Mark Vandenberg <[email protected]> ---
(In reply to xqt from comment #3)
> cat.articles() is a generator and bool(cat.articles()) is always True.
> 
> You may try a simple performace test like:
> 
> >>> import pwb, pywikibot as py
> >>> s = py.Site()
> >>> c = py.Category(s, 'Mann')
> >>> c.categoryinfo['pages']
> 456626
> 
> You'll get the result above immediately

I see the server doesnt spend much time working on this, as it loads the data
from the category table.

https://www.mediawiki.org/wiki/Manual:Category_table

However it is another API call on the server, which adds more network latency
(think someone in the jungle of Borneo on a 3G modem), server workload and
delays (an issue on slower wikis), etc.

> 
> >>> g = c.articles()
> len(set(g))
> 
> You may wait several minutes to get a result. I've given up after 5.

len(set(g)) is obviously not the best way to determine if the generator has any
results.

The best way is, I think, to process the generator with an else block to detect
if the generator had no results.  There are other tricks to instantaneously
determine if the generator is empty.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to