Pycontracts.

Um pacote Python que permite declarar restrições em parâmetros de função e valores de retorno
Baixe Agora

Pycontracts. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • LGPL
  • Nome do editor:
  • Andrea Censi

Pycontracts. Tag


Pycontracts. Descrição

Um pacote Python que permite declarar restrições em parâmetros de função e valores de retorno PyContracts é uma biblioteca Python que permite declarar restrições em parâmetros de função e valores de retorno. Ele suporta um sistema básico de tipo, vívidas vinculativas, restrições aritméticas e possui vários contratos especializados (notavelmente para matrizes numpy). Aumenta resumo segue. Veja a documentação completa em: http://andreacensi.github.com/ncracts/why: O propósito dos PyContracts não é transformar o Python em uma linguagem estaticamente digitada (embora você possa ser tão estrita quanto desejar), mas sim , para evitar a verificação demorada e ofuscante de várias condições prévias. Na verdade, mais do que as restrições do tipo, achei útil a capacidade de impor restrições de valor e tamanho. Por exemplo, "Eu preciso de uma lista de pelo menos 3 números positivos", pode ser expresso como lista (número,> 0)). Se você achar que os PyContracts são exagerados para você, você pode querer tentar uma alternativa mais simples, como o TycoCheck. Se você achar que os PyContracts não são suficientes para você, você provavelmente quer estar usando o Haskell em vez de Python.Contracts pode ser especificado de três maneiras: * Usando anotações (para Python 3) --- Esta é talvez a maneira mais intuitiva: @ Contratos Def my_function (A: 'int,> 0', B: 'Lista , n> 0') -> 'Lista ': # Requer B para ser uma lista nãopintada, e o valor de retorno # valor para tem o mesmo comprimento. ... * Usando: tipo: e: rtype: tags em docstrings. Desta forma, eles serão incluídos na sua documentação esfinge: @Contracts def my_function (A, B): "" "Função Descrição.: Tipo A: int,> 0: Tipo B: Lista , N> 0: RTYPE: Lista "" "... * Usando argumentos para os decoradores; A maneira menos intrusiva: @Contracts (a = 'int,> 0', b = 'LIST , n> 0', retorna = 'Lista ') def my_function (A, B): ... Além disso, existem funções de utilidade para a verificação manual de valores: cheque ('array (uint8), h> 10, w> 10', imagem), bem como ganchos para estender PyContracts com novos tipos de contratos: new_contract ('valid_name ', lambda s: isinstance (s, str) e len (s)> 0) verificação (' dict (int: (valid_name, int) ', funcionários)', funcionários) status: Pycontracts é muito bem testado e documentado, no entanto, eu sou Mantendo a versão para 0,9, pois algumas variações de sintaxe provavelmente serão feitas com base nos usuários de feedback e sugestões. Requisitos: · Pitão


Pycontracts. Software Relacionado