每月有数亿个 Python 软件包通过 Conda 下载。因此,我们很高兴地宣布发布 condastats,这是一个具有 Python 接口和命令行接口的 Conda 统计信息 API。现在,任何人都可以使用此工具研究 Conda 软件包的使用统计信息。该项目灵感来自 pypistats,这是一个用于检索 PyPI 软件包统计信息的 Python 客户端和 CLI。
数据来源
自 2019 年 5 月起,我们发布了所有 Conda 软件包、conda-forge 频道和一些其他频道的每小时汇总下载数据。数据集从 2017 年 1 月开始,每月上传一次。Condastats 基于此 公开的 Anaconda 软件包数据,并返回每月软件包下载统计信息。
安装
condastats
在 conda-forge
上发布。要安装 condastats,请在您的终端中运行以下命令:conda install -c conda-forge condastats
命令行界面
condastats 命令中有五个子命令:overall、pkg_platform、data_source、pkg_version 和 pkg_python。在终端中运行 condastats --help
或在 Jupyter Notebook 中运行 !condastats --help
查看所有子命令
!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
获取详细信息
详情
!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
!condastats overall pandas dask numpy
pkg_name dask 7958854 numpy 53752580 pandas 24086379 Name: counts, dtype: int64
我们还可以获取指定月份、软件包平台、数据源、软件包版本和 Python 版本的软件包下载统计信息
!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
参数时,我们将获得每月值。
!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 --help
和 condastats data_source --help
!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)
!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 版本的软件包下载次数。
!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 版本的每月计数。
!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
包中导入函数
from condastats.cli import overall, pkg_platform, pkg_version, pkg_python, data_source
以下是这五个函数的函数签名
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)
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)
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)
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)
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'])
pkg_name dask 7958854 pandas 24086379 Name: counts, dtype: int64
overall(['pandas','dask'], month='2019-01')
pkg_name dask 221200 pandas 932443 Name: counts, dtype: int64
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
类似地,pkg_platform、pkg_version、pkg_python 和 data_source 函数将为给定软件包的每个软件包平台、软件包版本、Python 版本和数据源提供软件包计数。以下是使用 pkg_python 的两个示例
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
pkg_python('pandas', start_month='2019-01', end_month='2019-02', monthly=True)
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,并在那里打开问题。