从仅提供当前数值的API记录历史统计数据。
项目描述
api_stats是一个针对API端点记录统计数据的Python工具。例如,GitHub API为每个版本提供一个下载次数;通过运行此工具,您可以轻松地绘制滚动平均值和历史数据。
快速入门
api_stats加载一个“配置文件”,告诉它要获取什么以及要记录哪些字段。此文件是一个将被api_stats加载的Python脚本,它具有一个全局的stats,作为与程序交互的接口。此接口目前提供两个功能:record(key, value)和get_json(url)。
以下是一个示例配置文件,用于记录GitHub发布中每个文件的下载次数
releases = stats.get_json(
    "https://api.github.com/repos/remram44/api_stats/releases")
for release in releases:
    relname = release.get('tag_name') or release['name']
    for asset in release['assets']:
        stats.record('%s/%s' % (relname, asset['name']),
                     asset['download_count'])然后您可以使用matplotlib等工具绘制数据
python -m api_stats.plot -m '^(.+)$' 'api_stats:\g<1>' data.jsonl一个更复杂的示例
您可能希望使用函数来处理从特定来源检索数据点
def github(repo):
    releases = stats.get_json(
        "https://api.github.com/repos/%s/releases" % repo)
    for release in releases:
        if release['draft']:
            continue
        relname = release.get('tag_name') or release['name']
        for asset in release['assets']:
            stats.record('github/%s/%s/%s' % (repo, relname, asset['name']),
                         asset['download_count'])
github('VisTrails/VisTrails')
github('remram44/api_stats')
def pypi(pkg):
    releases = stats.get_json(
        "https://pypi.python.org/pypi/%s/json" % pkg)['releases']
    for relname, release in releases.items():
        for asset in release:
            stats.record('pypi/%s/%s/%s' % (pkg, relname, asset['filename']),
                         asset['downloads'])
pypi('VisTrails')
pypi('api_stats')这将记录在pypi/<pkg_name>/<version>/<filename>和github/<owner>/<repo>/<version>/<filename>下的数据。然后您可以使用以下方法,为每个项目绘制数据,按版本汇总,将PyPI和GitHub合并在一起:
python -m api_stats.plot \
    -m '^pypi/([^/]+)/([^/]+)/.+$' '\g<1>:\g<2>' \
    -m '^github/[^/]+/([^/]+)/v([^/]+)/.+$' '\g<1>:\g<2>' \
    releases.jsonl项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
         api_stats-0.3-1.tar.gz  (6.4 kB 查看哈希值)
      
    构建分布
         api_stats-0.3-py2.py3-none-any.whl  (11.3 kB 查看哈希值)
      
    
    
       关闭
    
      
        
    
    
  
api_stats-0.3-1.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4eed1d6f1ad686615392c13564299966e564a800cf9b6f8c7042e6943aeb399d | |
| MD5 | 127715da6bfbecf3bd42510d445b141e | |
| BLAKE2b-256 | a1a884ce1d59361109fc5bdd1c0469848d6e5cc3eb762cde7f52e56efc2184d2 | 
    
       关闭
    
      
        
    
    
  
api_stats-0.3-py2.py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4d655960e94e696bfa75a462460c9bc74364d8404145fd2843f261e993bdf255 | |
| MD5 | 0a2648398be355f5b9f46d98aa92cd4d | |
| BLAKE2b-256 | c32e3db2f118e5d1b3f93706186a00b028860392b5786bf049af4b6d22eb87c2 |