pypi stats api的python接口https://pypistats.org/api
pypistats的Python项目详细描述
pypistats
python 3.6+接口到PyPI Stats API以获取聚合 在python包索引上下载python包的统计信息,而不必 直接对google bigquery执行查询。
安装
来自Pypi
pip install --upgrade pypistats
来源
git clone https://github.com/hugovk/pypistats
cd pypistats
pip install .
命令行使用示例
使用子命令(对应于PyPI Stats endpoints)运行pypistats
,
然后是该子命令的选项。
顶级帮助:
$ pypistats --help usage: pypistats [-h] [-V] {recent,overall,python_major,python_minor,system} ...positional arguments: {recent,overall,python_major,python_minor,system}optional arguments: -h, --help show this help message and exit -V, --version show program's version number and exit
子命令的帮助:
$ pypistats recent --help usage: pypistats recent [-h] [-p {day,week,month}] [-f {json,markdown,rst,html}] [-j] [-v] packageRetrieve the aggregate download quantities for the last day/week/monthpositional arguments: packageoptional arguments: -h, --help show this help message and exit -p {day,week,month}, --period {day,week,month} -f {json,markdown,rst,html}, --format {json,markdown,rst,html} The format of output (default: markdown) -j, --json Shortcut for "-f json" (default: False) -v, --verbose Print debug messages to stderr (default: False)
获取最新下载:
$ pypistats recent pillow | last_day | last_month | last_week ||---------:|-----------:|----------:|| 280,842 | 7,065,928 | 1,709,689 |
另一个子命令的帮助:
$ pypistats python_minor --help usage: pypistats python_minor [-h] [-V VERSION] [-f {json,markdown,rst,html}] [-j] [-sd yyyy-mm[-dd]|name] [-ed yyyy-mm[-dd]|name] [-m yyyy-mm|name] [-l] [-t] [-d] [--monthly] [-v] packageRetrieve the aggregate daily download time series by Python minor versionnumberpositional arguments: packageoptional arguments: -h, --help show this help message and exit -V VERSION, --version VERSION eg. 2.7 or 3.6 (default: None) -f {json,markdown,rst,html}, --format {json,markdown,rst,html} The format of output (default: markdown) -j, --json Shortcut for "-f json" (default: False) -sd yyyy-mm[-dd]|name, --start-date yyyy-mm[-dd]|name Start date (default: None) -ed yyyy-mm[-dd]|name, --end-date yyyy-mm[-dd]|name End date (default: None) -m yyyy-mm|name, --month yyyy-mm|name Shortcut for -sd & -ed for a single month (default: None) -l, --last-month Shortcut for -sd & -ed for last month (default: False) -t, --this-month Shortcut for -sd for this month (default: False) -d, --daily Show daily downloads (default: False) --monthly Show monthly downloads (default: False) -v, --verbose Print debug messages to stderr (default: False)
获取版本下载:
$ pypistats python_minor pillow --last-month | category | percent | downloads ||----------|--------:|----------:|| 2.7 | 35.94% | 2,189,327 || 3.6 | 31.83% | 1,938,870 || 3.7 | 18.71% | 1,139,642 || 3.5 | 11.29% | 687,782 || 3.4 | 1.23% | 74,673 || null | 0.94% | 57,476 || 3.8 | 0.04% | 2,147 || 2.6 | 0.01% | 826 || 3.3 | 0.00% | 212 || 3.2 | 0.00% | 28 || 2.4 | 0.00% | 6 || 3.9 | 0.00% | 5 || 2.8 | 0.00% | 1 || Total | | 6,090,995 |
该表已降价,可以粘贴到github问题和prs中:
category | percent | downloads |
---|---|---|
2.7 | 35.94% | 2,189,327 |
3.6 | 31.83% | 1,938,870 |
3.7 | 18.71% | 1,139,642 |
3.5 | 11.29% | 687,782 |
3.4 | 1.23% | 74,673 |
null | 0.94% | 57,476 |
3.8 | 0.04% | 2,147 |
2.6 | 0.01% | 826 |
3.3 | 0.00% | 212 |
3.2 | 0.00% | 28 |
2.4 | 0.00% | 6 |
3.9 | 0.00% | 5 |
2.8 | 0.00% | 1 |
Total | 6,090,995 |
相当于(2019年5月):
pypistats python_major pip --last-month
pypistats python_major pip --month april
pypistats python_major pip --month apr
pypistats python_major pip --month 2019-04
以及:
pypistats python_major pip --start-date december --end-date january pypistats python_major pip --start-date dec --end-date jan pypistats python_major pip --start-date 2018-12 --end-date 2019-01
编程使用示例
返回值来自api中记录的json响应: https://pypistats.org/api/
importpypistatsfrompprintimportpprint# Call the APIprint(pypistats.recent("pillow"))print(pypistats.recent("pillow","day",format="markdown"))print(pypistats.recent("pillow","week",format="rst"))print(pypistats.recent("pillow","month",format="html"))pprint(pypistats.recent("pillow","week",format="json"))print(pypistats.recent("pillow","day"))print(pypistats.overall("pillow"))print(pypistats.overall("pillow",mirrors=True,format="markdown"))print(pypistats.overall("pillow",mirrors=False,format="rst"))print(pypistats.overall("pillow",mirrors=True,format="html"))pprint(pypistats.overall("pillow",mirrors=False,format="json"))print(pypistats.python_major("pillow"))print(pypistats.python_major("pillow",version=2,format="markdown"))print(pypistats.python_major("pillow",version=3,format="rst"))print(pypistats.python_major("pillow",version="2",format="html"))pprint(pypistats.python_major("pillow",version="3",format="json"))print(pypistats.python_minor("pillow"))print(pypistats.python_minor("pillow",version=2.7,format="markdown"))print(pypistats.python_minor("pillow",version="2.7",format="rst"))print(pypistats.python_minor("pillow",version=3.7,format="html"))pprint(pypistats.python_minor("pillow",version="3.7",format="json"))print(pypistats.system("pillow"))print(pypistats.system("pillow",os="darwin",format="markdown"))print(pypistats.system("pillow",os="linux",format="rst"))print(pypistats.system("pillow",os="darwin",format="html"))pprint(pypistats.system("pillow",os="linux",format="json"))