跳转到主要内容

Serenata de Amor项目工具箱

项目描述

Travis CI build status (Linux) Documentation Status Code Health Coveralls PyPI package version Donation Page

Serenata de Amor Toolbox

pip可安装的软件包,用于支持Serenata de AmorRosie开发。

Serenata_toolbox与Python 3.6+兼容

安装

$ pip install -U serenata-toolbox

如果您是普通用户,在运行pip install后即可开始使用。

如果您是核心开发者,愿意将数据集上传到云,在运行工具箱之前需要配置AMAZON_ACCESS_KEYAMAZON_SECRET_KEY环境变量。

使用

我们准备了大量的数据集,您可以从我们的服务器下载。这个工具箱可以帮助您获取它们。以下是一些示例:

示例 1:使用命令行包装器

# without any arguments will download our pre-processed datasets and store into data/ folder
$ serenata-toolbox

# will download these specific datasets and store into /tmp/serenata-data folder
$ serenata-toolbox /tmp/serenata-data --module federal_senate chamber_of_deputies

# you can specify a dataset and a year
$ serenata-toolbox --module chamber_of_deputies --year 2009

# or specify all options simultaneously
$ serenata-toolbox /tmp/serenata-data --module federal_senate --year 2017

# getting help
$ serenata-toolbox --help

示例 2:如何下载数据集?

另一种选项是创建自己的 Python 脚本

from serenata_toolbox.datasets import Datasets
datasets = Datasets('data/')

# now lets see what are the latest datasets available
for dataset in datasets.downloader.LATEST:
    print(dataset)  # and you'll see a long list of datasets!

# and let's download one of them
datasets.downloader.download('2018-01-05-reimbursements.xz')  # yay, you've just downloaded this dataset to data/

# you can also get the most recent version of all datasets:
latest = list(datasets.downloader.LATEST)
datasets.downloader.download(latest)

示例 3:使用快捷键

如果上一个示例看起来不简单,有一些花哨的快捷键可供选择

from serenata_toolbox.datasets import fetch, fetch_latest_backup
fetch('2018-01-05-reimbursements.xz', 'data/')
fetch_latest_backup( 'data/')  # yep, we've just did exactly the same thing

示例 4:生成数据集

如果您想知道我们是如何生成这些数据集的,这个工具箱也可以帮助您(至少对于更常用的那些——其他的是在我们主仓库中生成的[链接]

from serenata_toolbox.federal_senate.dataset import Dataset as SenateDataset
from serenata_toolbox.chamber_of_deputies.reimbursements import Reimbursements as ChamberDataset

chamber = ChamberDataset('2018', 'data/')
chamber()

senate = SenateDataset('data/')
senate.fetch()
senate.translate()
senate.clean()

文档(进行中)

完整的文档仍在进行中。如果您想帮忙,您将需要Sphinx

$ cd docs
$ make clean;make rst;rm source/modules.rst;make html

贡献

首先,您应该使用 Python 的 venv 模块创建一个开发环境来隔离您的开发。然后克隆仓库,通过运行以下命令来构建包:

$ git clone https://github.com/okfn-brasil/serenata-toolbox.git
$ cd serenata-toolbox
$ python setup.py develop

在您的贡献中始终添加测试——如果您在提交 PR 之前想在本地上测试它

$ pip install tox
$ tox

当测试通过时,也要检查您编辑或添加的模块的覆盖率——如果您想在提交 PR 之前检查它

$ tox
$ open htmlcov/index.html

遵循 PEP8 以及在 非常严格 级别实施的 Landscape 最佳实践——如果您想在提交 PR 之前检查它们

$ pip install prospector
$ prospector -s veryhigh serenata_toolbox

如果这份报告包括与您文件 导入 部分相关的问题,isort 可以帮助您

$ pip install isort
$ isort **/*.py --diff

始终建议版本升级。我们使用 语义版本控制 - 或者用 Elm 社区用语

  • MICRO:API 保持不变,没有破坏代码的风险

  • MINOR:增加了值,现有值保持不变

  • MAJOR:现有值已更改或删除

这非常重要,因为每个合并到 master 的新代码都会触发 CI,然后 CI 会触发 PyPI 上的新版本发布。如果没有版本升级,推出新版本的工具箱将会失败。因此,我们鼓励即使只是更新了 README.rst,也添加版本升级——这是保持 PyPI 上 README.rst 更新的方法。

如果您在 API 或 README.rst 方面没有进行任何更改,并且您真的不想进行版本升级,您需要在提交信息中添加 [skip ci]

最后,请考虑 Python 的禅

$ python -m this

项目详情


下载文件

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

源代码分发

serenata-toolbox-15.1.6.tar.gz (19.9 kB 查看哈希值)

上传时间 源代码

构建分发

serenata_toolbox-15.1.6-py3-none-any.whl (23.5 kB 查看哈希值)

上传时间 Python 3

由以下支持