PyPontracts

Un paquete de Python que permite declarar restricciones en los parámetros de la función y los valores de retorno
Descargar ahora

PyPontracts Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • LGPL
  • Nombre del editor:
  • Andrea Censi

PyPontracts Etiquetas


PyPontracts Descripción

Un paquete de Python que permite declarar restricciones en los parámetros de función y valores de retorno PyContracts es una biblioteca de Python que permite declarar restricciones en los parámetros de la función y los valores de devolución. Admite un sistema de tipo básico, unión de variables, restricciones aritméticas y tiene varios contratos especializados (especialmente para arreglos numerosos). El resumen breve sigue. Consulte la documentación completa en: http://andreacensi.github.com/contracts/why: El propósito de los PyContracts no es para convertir a Python en un idioma escrito de forma estática (aunque puede ser tan estricta como desee), sino, más bien , para evitar la verificación de duración y ofuscación de diversas condiciones previas. De hecho, más de las restricciones de tipo, encontré útil la capacidad de imponer restricciones de valor y tamaño. Por ejemplo, "necesito una lista de al menos 3 números positivos" se puede expresar como lista (número,> 0)). Si encuentra que PYCONTRATS está sobretezca para usted, es posible que desee probar una alternativa más simple, como Typecheck. Si encuentra que PYCONTRATS no es suficiente para usted, es probable que desee estar usando Haskell en lugar de Python.Contracts se puede especificar de tres maneras: * Usando anotaciones (para Python 3) --- Esta es quizás la forma más intuitiva: @ Contratos def My_Function (A: 'int,> 0', B: 'LISTA , N> 0') -> 'Lista ': # requiere B para ser una lista no rectada, y el valor de retorno # tener la misma longitud. ... * Uso: Tipo: y: RTTYPE: Etiquetas en Docstrings. De esta manera, se incluirán en su documentación de Sphinx: @Contracts def My_Function (A, B): "" "Descripción de la función.: Tipo A: int,> 0: Tipo B: Lista , N> 0: RTTYPE: Lista "" "... * Usando argumentos a los decoradores; La forma menos intrusiva: @Contracts (A = 'int,> 0', B = 'LISTA , N> 0', devuelve = 'lista ') DEF MY_FUNCIÓN (A, B): ... Además, hay funciones de utilidad para la verificación manual de valores: Check ('Array (uint8), H> 10, W> 10', imagen), así como ganchos para extender PyPontitras con nuevos tipos de contratos: New_Contract ('valid_name ', Lambda S: IsInstance (S, STR) y Len (s)> 0) Check (' DICT (INT (VALID_NAME, INT)) ', Empleados) Estado: PyPontitracts está muy bien probado y documentado, sin embargo, estoy Mantener la versión a 0.9, ya que es probable que algunas leve variaciones de la sintaxis se realicen en función de los comentarios y sugerencias de los usuarios. Requisitos: · Python


PyPontracts Software relacionado