• Stars
    star
    154
  • Rank 242,095 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📦 pip module containing code shared across Serenata de Amor's projects | ** Este repositório não recebe atualizações frequentes **
Travis CI build status (Linux) Documentation Status Code Health Coveralls

PyPI package version

Donation Page

Serenata de Amor Toolbox

pip installable package to support Serenata de Amor and Rosie development.

Serenata_toolbox is compatible with Python 3.6+

Installation

$ pip install -U serenata-toolbox

If you are a regular user you are ready to get started after pip install.

If you are a core developer willing to upload datasets to the cloud you need to configure AMAZON_ACCESS_KEY and AMAZON_SECRET_KEY environment variables before running the toolbox.

Usage

We have plenty of them ready for you to download from our servers. And this toolbox helps you get them. Here some examples:

Example 1: Using the command line wrapper

# 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

Example 2: How do I download the datasets?

Another option is creating your own Python script:

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)

Example 3: Using shortcuts

If the last example doesn't look that simple, there are some fancy shortcuts available:

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

Example 4: Generating datasets

If you ever wonder how did we generated these datasets, this toolbox can help you too (at least with the more used ones — the other ones are generated in our main repo):

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()

Documentation (WIP)

The full documentation is still a work in progress. If you wanna give us a hand you will need Sphinx:

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

Contributing

Firstly, you should create a development environment with Python's venv module to isolate your development. Then clone the repository and build the package by running:

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

Always add tests to your contribution — if you want to test it locally before opening the PR:

$ pip install tox
$ tox

When the tests are passing, also check for coverage of the modules you edited or added — if you want to check it before opening the PR:

$ tox
$ open htmlcov/index.html

Follow PEP8 and best practices implemented by Landscape in the veryhigh strictness level — if you want to check them locally before opening the PR:

$ pip install prospector
$ prospector -s veryhigh serenata_toolbox

If this report includes issues related to import section of your files, isort can help you:

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

Always suggest a version bump. We use Semantic Versioning – or in Elm community words:

  • MICRO: the API is the same, no risk of breaking code
  • MINOR: values have been added, existing values are unchanged
  • MAJOR: existing values have been changed or removed

This is really important because every new code merged to master triggers the CI and then the CI triggers a new release to PyPI. The attemp to roll out a new version of the toolbox will fail without a version bump. So we do encorouge to add a version bump even if all you have changed is the README.rst — this is the way to keep the README.rst updated in PyPI.

If you are not changing the API or README.rst in any sense and if you really do not want a version bump, you need to add [skip ci] to you commit message.

And finally take The Zen of Python into account:

$ python -m this

More Repositories

1

serenata-de-amor

🕵 Artificial Intelligence for social control of public administration | **This repository does not receive frequent updates. Check out the README**
Python
4,513
star
2

querido-diario

📰 Diários oficiais brasileiros acessíveis a todos | 📰 Brazilian government gazettes, accessible to everyone.
Python
1,102
star
3

rosie

🤖 Python application responsible for Serenata de Amor's intelligence
410
star
4

jarbas

🎩 API for information and suspicions about reimbursements by Brazilian congresspeople
296
star
5

perfil-politico

A platform for profiling public figures in Brazilian politics
Jupyter Notebook
162
star
6

vitimas-da-intolerancia

Conheça as vítimas de ódio político
Python
101
star
7

serenata-website

**Este repositório não recebe atualizações frequentes**
SCSS
67
star
8

serenata-notebooks

Notebooks from Operação Serenata de Amor | ** Este repositório não recebe atualizações frequentes **
HTML
53
star
9

querido-diario-api

This is Querido Diário's API. It provides everything the frontend does and even more!
Python
49
star
10

embaixadoras

Site da rede de pessoas embaixadoras de inovação cívica da Open Knowledge Brasil e outros materiais de referência
HTML
46
star
11

whistleblower

🚨A Twitter bot for publicly reporting suspicions found by Rosie, Serenata de Amor's AI
46
star
12

censo-querido-diario

Este repositório não recebe atualizações | Queremos descobrir onde os diários oficiais das prefeituras de todo o Brasil estão sendo publicados. Nos ajude nesse trabalho!
HTML
43
star
13

querido-diario-frontend

Repositório com a implementação do frontend da Plataforma de Busca do Querido Diário
HTML
41
star
14

pedidosanonimos

Python
39
star
15

perfil-politico-frontend

Front-end that consumes Perfil Político's API
Vue
31
star
16

querido-diario-toolbox

Este projeto empodera quem deseja processar dados no contexto do Querido Diário e realizar suas próprias análises.
Python
31
star
17

querido-diario-comunidade

Querido Diário - Comunidade e Documentação
25
star
18

querido-diario-data-processing

Text processing repository to free brazilian municipal gazettes from closed file formats for the Querido Diário project.
Python
20
star
19

transparenciacovid19

TRANSPARÊNCIA COVID-19
HTML
19
star
20

cicero

Quosque tandem abutere patientia nostra?
Python
16
star
21

busca-querido-diario

Project to enable search of key words in text files extracted by the Querido Diário.
Python
14
star
22

identidade-digital

Manifesto para identificação digital no Brasil
12
star
23

orcamento.inesc.org.br

Visualização dos dados do orçamento federal feita para a INESC
HTML
11
star
24

querido-diario-api-wrapper

Wrapper for Querido Diário API
Python
10
star
25

gastos_abertos

Código principal do projeto Gastos Abertos.
Python
9
star
26

schemaOrg-Wikidata-Map

Ontology alignment between Schema.Org, Wikidata, and DBpedia
9
star
27

open-jus

Justa is a project that aims to facilitate the understanding of financing data and the management the Justice System in an accessible and innovative way.
Python
9
star
28

lexml-dou

Subsídios para a cooperação iniciada entre Imprensa Nacional e LexML
HTML
8
star
29

receita

Rotinas de atualização das bases públicas de dados de CNPJs e sócios da Receita Federal do Brasil.
Python
7
star
30

serenata-relatorio-catarse

Relatório da Rosie sobre candidatos nas Eleições 2018
Elm
7
star
31

reactive_scraper

JavaScript
6
star
32

cuidando2

Cuidando do Meu Bairro 2.0 é uma reescrita do projeto Cuidando do Meu Bairro ( cuidando.org.br ) que busca mapear a execução do orçamento municipal de São Paulo.
HTML
6
star
33

filiados-a-partidos

Dump com a lista do TSE de filiados a partidos no Brasil
Python
5
star
34

datasets-br-cbo

Dataset for CBO - Classificação Brasileira de Ocupações
5
star
35

mosaico

Visualization on the brazilian budget for FGV
CSS
5
star
36

BusaoSP

WhereIsMyBus aka real-time bus updates via Twitter, for São Paulo.
JavaScript
5
star
37

swagger-ui-html

Pure-HTML swagger-ui page, for OpenAPI descriptors of the Open Knowledge Brasil's projects
HTML
5
star
38

querido-diario-backend

Repositório com a implementação do backend da Plataforma de Busca do Querido Diário
Python
5
star
39

opendataday2020

Repositório das atividades realizadas no Open Data Day 2020 - São Paulo
4
star
40

getlex

Ver também http://okfn-brasil.github.io/getlex
PHP
3
star
41

querido-diario-infra

Querido diário deploy scripts
HCL
3
star
42

embaixadoras-dados-covid19

Repositório para reunir as análises de dados da Covid-19 feitas pela rede de pessoas Embaixadoras de Inovação Cívica
R
3
star
43

ISSN-L-Resolver

Converts any ISSN to the correspondent ISSN-L
PLpgSQL
3
star
44

gastos_abertos_dados

Repositório dos dados em estado bruto utilizados no projeto Gastos Abertos
Jupyter Notebook
3
star
45

querido-diario-site

*PROJETO ARQUIVADO* Official landing page of the Querido Diário project
CSS
3
star
46

piloto-educacao

Projeto piloto para monitorar as aquisições de tecnologia para educação básica.
Python
3
star
47

GetMyGist

Read, and write from gists ...
JavaScript
2
star
48

oficial-backups

backup de arquivos comuns da produção da OKBR
Perl
2
star
49

sprints-inovacao-civica

2
star
50

hackatona.vaimudar.org

Hackatona #VaiMudarNaCopa
CSS
2
star
51

gastos_abertos_website

CSS
2
star
52

dialogando

JavaScript
2
star
53

indice-dados-abertos

Vue
2
star
54

gastos_abertos_notebooks

Notebooks of data exploration for the project Gastos Abertos
HTML
1
star
55

perfil-politico-notebooks

** Este repositório não recebe atualizações frequentes **
1
star
56

country-geoinfo

Spatial relations between countries and between another geographical standards
1
star
57

esic

Cliente ruby para o e-SIC do governo federal brasileiro
Ruby
1
star
58

salarios-usp

1
star
59

gastos-abertos-documentos

1
star
60

mapeamento-de-sites

Repositório auxiliar para encontrar sites de prefeituras ou sites publicadores de diários oficiais
Python
1
star
61

observatorio-materiais

Organização de materiais referentes ao Observatório de Tecnologias na Educação
1
star
62

serenata-de-amor-inbox

1
star
63

oficial-backupsbig

backup de big-files da produção da OKBR
1
star
64

diario-do-clima

Repositório para o frontend (interface web) do Diário do Clima.
JavaScript
1
star
65

GetMyGist-Server

GetMyGist-Server - Github Get token access
JavaScript
1
star
66

vaimudar_wp

PHP
1
star
67

diarios-do-clima-frontend

Repositório para o frontend (interface web) do Diários do Clima.
TypeScript
1
star
68

queremossaber-docker

Shell
1
star
69

copa2014_grupos_economicos

JavaScript
1
star
70

gastos_abertos_dev

Gastos Abertos Development Environment with Vagrant
Shell
1
star
71

regimento-interno

Código-fonte das versões desenvolvidas para Regimento Interno da OKBr e demais Termos de Uso e responsabilidade
1
star
72

orcamento-federal-dados

Dados para o orcamento.inesc.org.br
Shell
1
star
73

lexml-vocabulary

RDF vocabulary of LexML, revision and ontology-alignment with Wikidata and others
SQLPL
1
star