GithubHelp home page GithubHelp logo

asotronot / serenata-toolbox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from okfn-brasil/serenata-toolbox

0.0 2.0 0.0 22.72 MB

📦 pip module containing code shared across Serenata de Amor's projects

License: MIT License

Python 100.00%

serenata-toolbox's Introduction

Travis CI build status (Linux) Documentation Status Code Health Coveralls

Serenata de Amor Toolbox

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

Serenata_toolbox is compatible with Python 3+

Installation

$ pip install -U serenata-toolbox

Usage

Copy config.ini.example as config.ini and edit it with your own credentials. If you don't plan to upload anything to S3 please don't bother about keys and secrets in this file.

Example 1: How do I download the datasets?

We have plenty of them ready for you to download from our servers. And this toolbox helps you get them. Let's say you want your datasets at data/:

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('2016-12-06-reibursements.xz')  # yay, you've just downloaded this dataset to data/

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

Example 2: 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('2016-12-06-reibursements.xz', 'data/')
fetch_latest_backup( 'data/')  # yep, we've just did exactly the same thing

Example 3: 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
from serenata_toolbox.chamber_of_deputies.dataset import Dataset

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

chamber = Dataset('data/')
chamber.fetch()
chamber.translate()
chamber.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

Within your virtualenv:

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

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

$ python -m unittest discover tests

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:

$ pip install coverage
$ coverage run -m unittest discover tests
$ coverage html
$ 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

And finally take The Zen of Python into account:

$ python -m this

serenata-toolbox's People

Contributors

cuducos avatar jtemporal avatar irio avatar lipemorais avatar anaschwendler avatar fgrehm avatar giovanisleite avatar luizcavalcanti avatar jondel avatar humrochagf avatar viniciusartur avatar cabral avatar rennerocha avatar luzfcb avatar tuliocasagrande avatar yrachid avatar tarsisazevedo avatar vmesel avatar

Watchers

James Cloos avatar Ahmet Oguz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.