使用 Condastats 获取 Python 包下载统计信息

每月有数亿个 Python 软件包通过 Conda 下载。因此,我们很高兴地宣布发布 condastats,这是一个具有 Python 接口和命令行接口的 Conda 统计信息 API。现在,任何人都可以使用此工具研究 Conda 软件包的使用统计信息。该项目灵感来自 pypistats,这是一个用于检索 PyPI 软件包统计信息的 Python 客户端和 CLI。

数据来源

自 2019 年 5 月起,我们发布了所有 Conda 软件包、conda-forge 频道和一些其他频道的每小时汇总下载数据。数据集从 2017 年 1 月开始,每月上传一次。Condastats 基于此 公开的 Anaconda 软件包数据,并返回每月软件包下载统计信息。

安装

condastatsconda-forge 上发布。要安装 condastats,请在您的终端中运行以下命令:conda install -c conda-forge condastats

命令行界面

condastats 命令中有五个子命令:overall、pkg_platform、data_source、pkg_version 和 pkg_python。在终端中运行 condastats --help 或在 Jupyter Notebook 中运行 !condastats --help 查看所有子命令

In [1]
!condastats --help
usage: condastats [-h]
 {overall,pkg_platform,data_source,pkg_version,pkg_python}
 ...

positional arguments:
 {overall,pkg_platform,data_source,pkg_version,pkg_python}

optional arguments:
 -h, --help show this help message and exit
 

overall

condastats overall 返回一个或多个软件包在特定月份以及指定软件包平台、Python 版本、软件包版本和数据源的总体下载统计信息。在终端中运行 condastats overall --help 或在 Jupyter Notebook 中运行 !condastats overall --help 获取详细信息

详情

In [2]
!condastats overall --help
usage: condastats overall [-h] [--month MONTH] [--start_month START_MONTH]
 [--end_month END_MONTH] [--monthly]
 [--pkg_platform PKG_PLATFORM]
 [--pkg_python PKG_PYTHON]
 [--pkg_version PKG_VERSION]
 [--data_source DATA_SOURCE]
 package [package ...]

positional arguments:
 package package name(s)

optional arguments:
 -h, --help show this help message and exit
 --month MONTH month - YYYY-MM (defalt: None)
 --start_month START_MONTH
 start month - YYYY-MM (defalt: None)
 --end_month END_MONTH
 end month - YYYY-MM (defalt: None)
 --monthly return monthly values (defalt: False)
 --pkg_platform PKG_PLATFORM
 package platform e.g., win-64, linux-32, osx-64.
 (defalt: None)
 --pkg_python PKG_PYTHON
 Python version e.g., 3.7 (defalt: None)
 --pkg_version PKG_VERSION
 Python version e.g., 0.1.0 (defalt: None)
 --data_source DATA_SOURCE
 Data source e.g., anaconda, conda-forge (defalt: None)
 

唯一必需的参数是 package,它可以是一个或多个软件包。仅提供软件包名称时,它将返回所有可用 Anaconda 公开数据集(从 2017 年到上个月末)的总软件包下载数量。这里我们显示了一个软件包(例如,pandas)和多个软件包(例如,pandas、dask 和 numpy)的总软件包下载统计信息。

In [3]

!condastats overall pandas
pkg_name
pandas 24086379
Name: counts, dtype: int64
In [4]
!condastats overall pandas dask numpy
pkg_name
dask 7958854
numpy 53752580
pandas 24086379
Name: counts, dtype: int64

我们还可以获取指定月份、软件包平台、数据源、软件包版本和 Python 版本的软件包下载统计信息

In [5]
!condastats overall pandas --month 2019-01 --pkg_platform linux-32 --data_source anaconda \
--pkg_version 0.10.0 --pkg_python 2.6
pkg_name
pandas 12
Name: counts, dtype: int64

最后,当我们传入 monthly 参数时,我们将获得每月值。

In [6]
!condastats overall pandas --start_month 2019-01 --end_month 2019-03 --monthly
pkg_name time 
pandas 2019-01 932443.0
 2019-02 1049595.0
 2019-03 1268802.0
Name: counts, dtype: float64
 

pkg_platform、data_source、pkg_version 和 pkg_python

其他四个子命令具有类似的功能

  • condastats pkg_platform 返回按软件包平台划分的软件包下载次数。
  • condastats data_source 返回按数据源划分的软件包下载次数。
  • condastats pkg_version 返回按软件包版本划分的软件包下载次数。
  • condastats pkg_python 返回按 Python 版本划分的软件包下载次数。

这四个子命令的参数和可选参数相同。让我们看一下 condastats pkg_platform --helpcondastats data_source --help

In [7]
!condastats pkg_platform --help
usage: condastats pkg_platform [-h] [--month MONTH]
 [--start_month START_MONTH]
 [--end_month END_MONTH] [--monthly]
 package [package ...]

positional arguments:
 package package name(s)

optional arguments:
 -h, --help show this help message and exit
 --month MONTH month - YYYY-MM (defalt: None)
 --start_month START_MONTH
 start month - YYYY-MM (defalt: None)
 --end_month END_MONTH
 end month - YYYY-MM (defalt: None)
 --monthly return monthly values (defalt: False)
In [8]
!condastats data_source --help
usage: condastats data_source [-h] [--month MONTH] [--start_month START_MONTH]
 [--end_month END_MONTH] [--monthly]
 package [package ...]

positional arguments:
 package package name(s)

optional arguments:
 -h, --help show this help message and exit
 --month MONTH month - YYYY-MM (defalt: None)
 --start_month START_MONTH
 start month - YYYY-MM (defalt: None)
 --end_month END_MONTH
 end month - YYYY-MM (defalt: None)
 --monthly return monthly values (defalt: False)

condastats overall 相同,我们可以指定一个月份,或提供我们感兴趣的时间段的开始月份和结束月份。例如,我们可以看到 pandas 在特定月份的每个 Python 版本的软件包下载次数。

In [9]
!condastats pkg_python pandas --month 2019-01
pkg_name pkg_python
pandas 2.6 1466.0
 2.7 247949.0
 3.3 1119.0
 3.4 9251.0
 3.5 104445.0
 3.6 468838.0
 3.7 99375.0
Name: counts, dtype: float64

我们可以使用 monthly 标志查看每个 Python 版本的每月计数。

In [10]
!condastats pkg_python pandas --start_month 2019-01 --end_month 2019-02 --monthly
pkg_name time pkg_python
pandas 2019-01 2.6 1466.0
 2.7 247949.0
 3.3 1119.0
 3.4 9251.0
 3.5 104445.0
 3.6 468838.0
 3.7 99375.0
 2019-02 2.6 1542.0
 2.7 242518.0
 3.3 1227.0
 3.4 8134.0
 3.5 83393.0
 3.6 541670.0
 3.7 171111.0
Name: counts, dtype: float64
 

Python 接口

要使用 Python 接口,我们需要通过运行以下命令从 condastats 包中导入函数

In [11]
from condastats.cli import overall, pkg_platform, pkg_version, pkg_python, data_source

以下是这五个函数的函数签名

In [12]
help (overall)
Help on function overall in module condastats.cli:

overall(package, month=None, start_month=None, end_month=None, monthly=False, pkg_platform=None, data_source=None, pkg_version=None, pkg_python=None)

In [13]
help(pkg_platform)
Help on function pkg_platform in module condastats.cli:

pkg_platform(package, month=None, start_month=None, end_month=None, monthly=False)
In [14]
help(pkg_version)
Help on function pkg_version in module condastats.cli:

pkg_version(package, month=None, start_month=None, end_month=None, monthly=False)
In [15]
help(pkg_python)
Help on function pkg_python in module condastats.cli:

pkg_python(package, month=None, start_month=None, end_month=None, monthly=False)

In [16]
help(data_source)
Help on function data_source in module condastats.cli:

data_source(package, month=None, start_month=None, end_month=None, monthly=False)

与命令行接口类似,我们可以获取自 2017 年以来所有可用数据的总软件包下载次数,或者获取指定月份或指定规范组合的总软件包下载次数

overall(['pandas','dask'])
Out[17]
pkg_name
dask 7958854
pandas 24086379
Name: counts, dtype: int64
In [18]
overall(['pandas','dask'], month='2019-01')
Out[18]
pkg_name
dask 221200
pandas 932443
Name: counts, dtype: int64
In [19]
overall('pandas',month='2019-01', pkg_platform='linux-32',data_source='anaconda',pkg_version='0.10.0',pkg_python=2.6)
Out[19]
pkg_name
pandas 12
Name: counts, dtype: int64
 

类似地,pkg_platform、pkg_version、pkg_python 和 data_source 函数将为给定软件包的每个软件包平台、软件包版本、Python 版本和数据源提供软件包计数。以下是使用 pkg_python 的两个示例

In [20]
pkg_python('pandas', month='2019-01')
Out[20]
pkg_name pkg_python
pandas 2.6 1466.0
 2.7 247949.0
 3.3 1119.0
 3.4 9251.0
 3.5 104445.0
 3.6 468838.0
 3.7 99375.0
Name: counts, dtype: float64
In [21]
pkg_python('pandas', start_month='2019-01', end_month='2019-02', monthly=True)
Out[21]
pkg_name time pkg_python
pandas 2019-01 2.6 1466.0
 2.7 247949.0
 3.3 1119.0
 3.4 9251.0
 3.5 104445.0
 3.6 468838.0
 3.7 99375.0
 2019-02 2.6 1542.0
 2.7 242518.0
 3.3 1227.0
 3.4 8134.0
 3.5 83393.0
 3.6 541670.0
 3.7 171111.0
Name: counts, dtype: float64
 

我们希望您发现 condastats 有用!如果您有任何要求或问题,请打开 问题拉取请求。如果您对 Anaconda 公开数据集有任何疑问,请查看 https://github.com/ContinuumIO/anaconda-package-data,并在那里打开问题。

与专家交谈

与我们的专家交谈,寻找 AI 旅程的解决方案。

与专家交谈