Skip to content

Instantly share code, notes, and snippets.

@edulix
Created September 23, 2015 08:07
Show Gist options
  • Save edulix/bb399d215a570a71c595 to your computer and use it in GitHub Desktop.
Save edulix/bb399d215a570a71c595 to your computer and use it in GitHub Desktop.

proyectos

Se propone centrarse en la parte de recuento para los proyectos. El recuento es realizado por 3 librerías diferentes:

  • openstv

Librería que implementa diferentes sistemas de recuento.

  • agora-tally

Librería/comando "wrapper" sobre openstv, de forma que parsea los votos en el formato utilizado por Agora Voting y lo traduce al formato admitido por openstv, para luego extraer los resultados en un formato admitido por Agora Voting.

  • agora-results

Librería/comando que utiliza agora-tally para realizar recuento, pero que funciona mediante un pipeline de configuración, una lista de funciones y sus argumentos para calcular resultados complejos. Por ejemplo, permite consolidar resultados de varias preguntas o varios recuentos, aplicar criterios de paridad, etc.

Se proponen los siguientes proyectos:

Validar el input de los ficheros configuración para agora-results

Aumentar la seguridad de agora-results, convirtiendo el sistema de Pipes de agora-results para (ver [1] [2] como ejemplo):

  • Registrar con un decorador las funciones válidas
  • Validar el input del usuario para comprobar que sigue un formato válido (usando un validador de json-schema [3] en vez de el validador del ejemplo, que no es estándar)
  • Que los pipes se declaren como clases

[1] https://github.com/agoravoting/authapi/blob/master/authapi/pipelines/base.py [2] https://github.com/agoravoting/authapi/blob/master/authapi/pipelines/field_register.py [3] https://pypi.python.org/pypi/jsonschema

Añadir tests unitarios y documentación

Cada pipe del agora-results debería de tener una serie de test unitarios. Ahora mismo agora-results no tiene soporte de tests-unitarios. También habría que añadir documentación sobre cómo crear nuevos pipes y cual es su funcionamiento básico en agora-results, documentando los formatos de entrada y de salida de los pipes.

Añadir soporte de MeekSTV

El soporte de STV está anticuado e inactivo. Volver a añadir soporte de MeekSTV en agora-tally, añadiendo tests unitarios y documentando su funcionamiento. Los tests unitarios deberían de incluir ejemplos grandes también, con miles de votos, de hecho lo suyo sería que buscaran resultados de votaciones reales.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment