serenata de amor项目工具箱

serenata-toolbox的Python项目详细描述


Travis CI build status (Linux)Documentation StatusCode HealthCoverallsPyPI package versionDonation Page

Serenata de Amor工具箱

pip支持Serenata de Amor的可安装包 以及发展。

serenata_工具箱与python 3.6+兼容

安装

$ pip install -U serenata-toolbox

如果您是普通用户,则可以在安装pip之后开始。

如果您是愿意将数据集上载到云中的核心开发人员,则需要在运行工具箱之前配置amazon_access_keyamazon_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

遵循PEP8Landscapeveryhigh严格级别中实现的最佳实践-如果您想在打开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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将BroadcastReceiver类代码放入服务类中,以便在服务类中注册和注销它?   在Java中根据字符串数组中的项检查输入   键入localhost:8080无法加载java tomcat10主页错误:ERR\u CONNECTION\u被拒绝   java我的程序在BlueJ中的文本“Gross Pay:”后遇到“%.2f”时“崩溃”   使用Servlet和Prepared语句的java UPDATE类找不到异常(MySQL驱动程序)   java如果我使用安装在不同操作系统上的docker使用strictfp,有可能得到不同的结果吗?   java如何在zk中将复选框的onCheck事件传递给其父级?   我们如何通过java中的sftp将文本附加到远程服务器上的现有文件?   java如何将字符串与linkedlist中的字符串进行比较,并将结果作为布尔值插入mysql表   关于Lambda的java。。。。分号   java更改Android容器标题的颜色   java多维数组计算   hibernate 5中的java弃用记录器   java如何读取HOCON配置以将值加载到地图中?   分析如何在生产环境中调试java heap OutOfMemory错误?