series-tiempo-ar 0.4.0
Módulos para extraer, analizar y compilar series de tiempo documentadas en catálogos de datos abiertos basados en el perfil de metadatos del Paquete de Apertura de Datos.
License: MIT license
Keywords: series_tiempo_ar


# Series de Tiempo de la República Argentina

[![Coverage Status](https://coveralls.io/repos/github/datosgobar/series-tiempo-ar/badge.svg?branch=master)](https://coveralls.io/github/datosgobar/series-tiempo-ar?branch=master)
[![Build Status](https://travis-ci.org/datosgobar/series-tiempo-ar.svg?branch=master)](https://travis-ci.org/datosgobar/series-tiempo-ar)
[![PyPI](https://badge.fury.io/py/series-tiempo-ar.svg)](http://badge.fury.io/py/series-tiempo-ar)
[![Stories in Ready](https://badge.waffle.io/datosgobar/series-tiempo-ar.png?label=ready&title=Ready)](https://waffle.io/datosgobar/series-tiempo-ar)
[![Documentation Status](http://readthedocs.org/projects/series-tiempo-ar/badge/?version=latest)](http://series-tiempo-ar.readthedocs.org/en/latest/?badge=latest)

* Versión python: 3.6+ (0.3)
* Licencia: MIT license
* Documentación: https://series-tiempo-ar.readthedocs.io

El proyecto Series de Tiempo se basa en una extensión del perfil de metadatos de la política de apertura. Esta fue diseñada para facilitar la publicación de series de tiempo de organismos gubernamentales que son parte de la Red de Nodos de Datos Abiertos de la República Argentina.

A partir de esta especificación, se desarrollaron aplicaciones para extraer y compilar las series en una base de datos unificada que permitiera el desarrollo de una API.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

## Indice

- [Repositorios oficiales](#repositorios-oficiales)
- [Repositorios de terceros](#repositorios-de-terceros)
- [Instalación](#instalaci%C3%B3n)
- [Uso](#uso)
- [Tests](#tests)
- [Contacto](#contacto)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Repositorios oficiales

* [`series-tiempo-ar`](https://github.com/datosgobar/series-tiempo-ar): Paquete de módulos con funcionalidades para extraer, transformar y analizar series de tiempo basados en la versión 1.1 del [`Perfil de Metadatos`](http://paquete-apertura-datos.readthedocs.io/es/stable/guia_metadatos.html) del [`Paquete de Apertura de Datos de la República Argentina`](http://paquete-apertura-datos.readthedocs.io). Es una extensión de [`pydatajson`](https://github.com/datosgobar/pydatajson) y la dependencia principal de los otros repositorios del proyecto.

* [`series-tiempo-ar-etl`](https://github.com/datosgobar/series-tiempo-ar-etl): Rutinas de ETL usadas para compilar diariamente la [`Base de Series de Tiempo de la Administración Pública Nacional`](http://datos.gob.ar/dataset/base-series-tiempo-administracion-publica-nacional). **Este proyecto está agendado para su discontinuación**

* [`series-tiempo-ar-api`](https://github.com/datosgobar/series-tiempo-ar-api): Aplicación basada en Django que extrae series de tiempo de los catálogos de datos abiertos de la Red de Nodos y las indexa en un motor Elastic Search para su consumo como servicio web.

* [`series-tiempo-ar-landing`](https://github.com/datosgobar/series-tiempo-ar-landing): Landing web configurable para una sencilla publicación y visualización de series de tiempo.

## Repositorios de terceros

* ¡Todavía no hay ninguno! ¿No deberías ser el primero? Si escribiste una librería para usar la API o la base completa en algún lenguaje, [nos gustaría saberlo](https://github.com/datosgobar/series-tiempo-ar/issues/new?title=Nueva librería en {lenguaje} para usar la API).

## Instalación

* **Producción:** Desde cualquier parte

```bash
$ pip install series-tiempo-ar
```

* **Desarrollo:** Clonar este repositorio, y desde su raíz, ejecutar:
```bash
$ pip install -e .
```

## Uso

Se provee una clase `TimeSeriesDataJson` como abstracción sobre un catálogo que cumple el Perfil de Metadatos. Éste catálogo extiende las funcionalidades de `pydatajson`, y provee métodos adicionales para trabajar con datos de series de tiempo. Ver [referencia](./reference.md)

## Tests

Los tests se corren con `nose`. Desde la raíz del repositorio:

**Configuración inicial:**

```bash
$ pip install -r requirements_dev.txt
$ mkdir tests/temp
```

**Correr la suite de tests:**

Correr todos los pasos de testeo (pruebas, estilos de código)
`$ scripts/run_all.sh`

La rutina de pruebas utiliza un servidor web en el puerto 3456. Asegurarse de que ese puerto esté disponible antes de correr el script.

## Contacto

Te invitamos a [crearnos un issue](https://github.com/datosgobar/series-tiempo-ar/issues/new?title=Encontre un bug en series-tiempo-ar) en caso de que encuentres algún bug o tengas feedback de alguna parte de `series-tiempo-ar`.

Para todo lo demás, podés mandarnos tu comentario o consulta a [datos@modernizacion.gob.ar](mailto:datos@modernizacion.gob.ar).


Versiones
===

0.3.5 (2019-09-09)
------------------

* Corrige identificación de parámetros de scraping para que sea más robusto a problemas de texto / número en Excels.

0.3.4 (2019-09-06)
------------------

* Cambia "-" por "_" para el id compuesto de series que se leen de un archivo de texto plano que contiene una base de series de tiempo.

0.3.3 (2019-08-08)
------------------

* Modifica forma de convertir paneles en distribuciones de series, más eficiente pero con menos control de errores de la fuente original. Ahora es más eficiente.

0.3.2 (2019-07-24)
------------------

* Agrego parámetro opcional en TimeSeriesDataJson.load_ts_distribution() para poder cargar una distribución de TXT que no re-descargue la fuente original, sino que la busque en un path local.

0.3.1 (2019-07-23)
------------------

* Parámetro para fozar el formato de un catálogo
* Fix construyendo los errores de validación  

0.3.0 (2019-06-25)
------------------

* Primer release estable de la librería. Agrega métodos adicionales de validaciones, y centraliza la lectura de distribuciones en el método `TimeSeriesDataJson.load_ts_distribution`

0.2.3 (2019-03-01)
------------------

* Actualizado de validaciones para distribuciones CSV

0.1.4 (2018-05-06)
------------------

* Flexibiliza la restricción de series demasiado cortas: ahora se admite hasta un 2% del total de las series de una distribución con una cantidad demasiado baja de valores para ser una serie.

0.1.3 (2018-05-04)
------------------

* Actualiza las validaciones al schema de la versión 0.4.12 de pydatajson

0.1.2 (2018-04-30)
------------------

* El campo `temporal` en dataset pasa a ser de uso opcional.

0.1.0 (2018-04-17)
------------------

* Soporte para Python 3

0.0.3 (2017-10-18)
------------------

* Restauro la validación `validate_df_shape` que está testeada y corregida.
* Flexibilizo al límite el máximo de missings admitidos en una serie (999 missings por cada 1000 valores).

0.0.2 (2017-10-10)
------------------

* Bug fix: elimino temporalmente validación `validate_df_shape` que tiene algún error en el tratamiento de los tipos.

0.0.1 (2017-10-08)
------------------

* Primer release a PyPI.
* Release todavía no documentado.