Page MenuHomePhabricator

Provide some Pywikibot usage statistics for Python3.5 and 3.6
Closed, ResolvedPublic

Description

Python 3.5. as well as Python 3.6 is EOL. As toolforge is moved from Stretch to Buster release which comes with Python 3.7 it is planed to drop Python 3.5 support soon but we should have a data base how often outdated Python releases are still used. It would be useful to have some statistics for that.

See older requests made in T242157 and T286867 for previous release changes.

Event Timeline

@Urbanecm, @Legoktm: Do you have a bit time for this?

Sure thing.

Sorry, missed it when you initially filed the task. For the future, @Xqt if you're willing to sign the Volunteer NDA then I think we should aim to get you access to this data directly so you're not dependent upon us.

+1 to Legoktm. I think the NDA group will be sufficient, as it empowers you to access Turnillo, where you can see common user agents easily.

Here you go:

pyth_versionreqs%
3.7.3.final.080415955543.49
3.9.2.final.029069034915.72
2.7.16.final.024349691713.17
3.8.10.final.01230027846.65
3.6.8.final.0873347844.72
3.10.4.final.0642742213.48
3.7.13.final.0611399253.31
3.10.5.final.0392513012.12
3.9.13.final.0280467161.52
3.6.9.final.0181130910.98
3.5.3.final.077989530.42
3.10.6.final.076422730.41
3.10.0.final.075460210.41
2.7.10.final.072783350.39
3.7.4.final.065491990.35
3.8.13.final.062877230.34
3.9.12.final.053985480.29
3.9.0.final.053563070.29
3.8.0.final.053084000.29
3.6.15.final.047991740.26
3.8.6.final.041099540.22
3.7.9.final.038295110.21
3.8.5.final.037980010.21
3.5.10.final.029990530.16
3.9.7.final.028088150.15
3.6.6.final.026220230.14
3.6.12.final.020506830.11
3.8.12.final.013068840.07
3.7.6.final.011137180.06
3.9.5.final.010537570.06

Generated via the following code at stat1005:

In [1]: from wmfdata import spark, utils

In [2]: import numpy as np

In [3]: df = spark.run("select regexp_extract(http.request_headers['user-agent'], 'Python\/([^ ]*)') as pyth_version, count(*) as reqs from event.mediawiki_api_request where year=2022 and http.request_headers['user-agent'] like '%Pywikibot%' group by pyth_version order by count(*) desc limit 30")

In [4]: df['%'] = np.round(df.reqs / df.reqs.sum() * 100, 2)

In [5]: utils.df_to_remarkup(df)
[...]

Hope this helps!

Closing this for now, as the requested numbers were generated. If you want any more details, feel free to reopen (please mention me in a comment though, so the notification gets prioritized in my mailbox).