跳转到主要内容

用于从单个AP API JSON文件中提取测试数据的命令行界面。

项目描述

APFAKE

screen shot 2018-03-19 at 10 21 06 am

你是否曾经想过“我应该记录半小时后到来的AP API测试”,却发现实际上它半小时前就已经结束了?”我做过好几次这样的事情。而且如果我以前做过,我必须假设其他人也会这样做。

以AP API选举测试的最终JSON状态文件为例(例如,测试运行后但在新测试或现场选举前的一刹那将测试归零时会发生什么),apfake将生成一个全零的文件,然后在零和最终文件之间生成n个中间状态,这些状态中的投票数将平稳增加。

简而言之:如果你给它一个测试的最后文件,apfake将为你生成所有缺失的文件。

注意事项

  • apfake不调用比赛。
  • apfake的投票在计票时并没有正确匹配实际的选举夜高峰。
  • apfake报告的投票点和投票点百分比可能不正确。
  • apfake不适用于零或初始化数据。它需要AP API的格式&results=ru

用法

安装

apfake最简单的安装方式是直接从PyPi安装。它需要一个Python 3环境。

pip install apfake

使用

apfake -f 2018-03-20-final.json -n 10 -d /tmp/foo/ -r 2018-03-20

apfake接受四个命令行选项,其中两个是必需的。

  • -f, --final-results-path 必需 最终结果JSON文件的路径。
  • -n, --number 必需 要生成的文件数量。
  • -r, --racedate 可选 选举的YYYY-MM-DD racedate。如果指定在final-results-path中的文件有racedate在文件名中,则使用此日期。否则,apfake将引发一个ValueError
  • -d, --data-directory 可选 要写入数据的目录或一组目录。如果这些目录不存在,apfake将创建它们,并还将创建一个名为racedate的目录以存放输出文件。默认为/tmp/

调试法术

这是apfake期望你的JSON具有的形状。如果你使用格式&results=ru,它可能工作。如果你使用不同的格式,它可能也会工作,尽管效果可能因人而异。

"""
results.keys()
dict_keys(['electionDate', 'timestamp', 'races', 'nextrequest'])

results['races'][0].keys()
dict_keys(['test', 'raceID', 'raceType', 'raceTypeID', 'officeID', 'officeName', 'party', 'seatName', 'reportingUnits'])

result['races][0]['reportingUnits'][0].keys()
dict_keys(['statePostal', 'stateName', 'level', 'lastUpdated', 'precinctsReporting', 'precinctsTotal', 'precinctsReportingPct', 'candidates'])

results['races'][0]['reportingUnits'][0]['candidates'][0].keys()
dict_keys(['first', 'last', 'party', 'incumbent', 'candidateID', 'polID', 'ballotOrder', 'polNum', 'voteCount'])
"""

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

apfake-0.0.3.tar.gz (4.1 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面