serenata de amor项目工具箱
serenata-toolbox的Python项目详细描述
Serenata de Amor工具箱
pip支持Serenata de Amor的可安装包 以及发展。
serenata_工具箱与python 3.6+兼容
安装
$ pip install -U serenata-toolbox
如果您是普通用户,则可以在安装pip之后开始。
如果您是愿意将数据集上载到云中的核心开发人员,则需要在运行工具箱之前配置amazon_access_key和amazon_secret_key环境变量。
使用量
我们已经准备好了plenty of them供您从我们的服务器下载。这个工具箱能帮你找到它们。下面是一些示例:
示例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脚本:
fromserenata_toolbox.datasetsimportDatasetsdatasets=Datasets('data/')# now lets see what are the latest datasets availablefordatasetindatasets.downloader.LATEST:print(dataset)# and you'll see a long list of datasets!# and let's download one of themdatasets.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:使用快捷键
如果最后一个示例看起来不那么简单,则可以使用一些奇特的快捷方式:
fromserenata_toolbox.datasetsimportfetch,fetch_latest_backupfetch('2018-01-05-reimbursements.xz','data/')fetch_latest_backup('data/')# yep, we've just did exactly the same thing
示例4:生成数据集
如果您想知道我们是如何生成这些数据集的,那么这个工具箱也可以帮助您(至少对于使用较多的数据集-生成其他数据集in our main repo):
fromserenata_toolbox.federal_senate.datasetimportDatasetasSenateDatasetfromserenata_toolbox.chamber_of_deputies.reimbursementsimportReimbursementsasChamberDatasetchamber=ChamberDataset('2018','data/')chamber()senate=SenateDataset('data/')senate.fetch()senate.translate()senate.clean()
文件(WIP)
full documentation仍在进行中。如果你想帮助我们,你需要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 pytest pytest-cov $ pytest
当测试通过时,还要检查您编辑或添加的模块的覆盖率-如果您想在打开pr之前检查它:
$ pytest $ open htmlcov/index.html
遵循PEP8和Landscape在veryhigh严格级别中实现的最佳实践-如果您想在打开PR之前在本地检查它们:
$ pip install prospector $ prospector -s veryhigh serenata_toolbox
如果此报告包含与文件的导入部分有关的问题,isort可以帮助您:
$ pip install isort $ isort **/*.py --diff
总是建议改版。我们使用Semantic Versioning–或者在Elm community words:
- micro:api是相同的,没有破坏代码的风险
- 未成年人:增加值,现有值不变< /LI><主>:现有值已更改或删除< > >
这非常重要,因为每个合并到master的新代码都会触发ci,然后ci会触发pypi的新版本。尝试推出新版本的工具箱将失败,没有版本冲突。因此,即使您只更改了readme.rst,我们仍然会鼓励您添加版本凹凸-这是保持pypi中的readme.rst更新的方法。
如果您没有在任何意义上更改api或readme.rst,并且如果您真的不需要版本提升,则需要将[skip ci]添加到提交消息中。
最后将python的禅考虑在内:
$ python -m this