Ferramentas do usuário

Ferramentas do site


ti_publica:dicas_python

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
ti_publica:dicas_python [2019/11/29 08:06] – [Django] cartolati_publica:dicas_python [2020/01/10 15:57] (atual) – [Recomendações PEP] cartola
Linha 10: Linha 10:
   * [[https://github.com/ycm-core/YouCompleteMe|vim-youcompleteme]]   * [[https://github.com/ycm-core/YouCompleteMe|vim-youcompleteme]]
   * [[https://github.com/psf/black|black]]   * [[https://github.com/psf/black|black]]
-  * [[https://docs.python.org/3/library/venv.html|venv]] (virtualenv no python3)+  * [[https://docs.python.org/3/library/venv.html|venv]] (equivalente ao virtualenv) 
 +    * Isso acaba já instalando o pip3
   * Dentro do venv:   * Dentro do venv:
-    * [[https://pip.pypa.io/en/stable/installing/|pip via python]] +    * [[https://pip.pypa.io/en/stable/installing/|pip via python]]\\ Gerenciador de pacotes. Dentro do venv instalará pacotes independentes por projeto ou versão de python. 
-    * [[https://www.pylint.org/|pylint3]] +    * [[https://www.pylint.org/|pylint3]]\\ apenas pra separar de outras versões 
-    * [[https://pytest.org/en/latest/|pytest3]]+    * [[https://pytest.org/en/latest/|pytest3]]\\ apenas pra separar de outras versões 
 +    * Pro YouCompleteMe funcionar no Vim dentro de um venv de Python3 tive que instalar:\\ <code>pip install future frozendict requests requests_futures</code>
  
 ==== Configurando o ambiente ==== ==== Configurando o ambiente ====
Linha 68: Linha 70:
 ===== Testes com pytest ===== ===== Testes com pytest =====
  
 +A ideia é que você crie um programa que vá testar seu código. O pytest é uma ferramenta que vai facilitar isso.
 +
 +Exemplo de código:
 +<code python>def bubble_sort(lista):
 +    """Ordenação via algorítimo Bubble Sort"""
 +    
 +    for passnum in range(len(lista)-1, 0, -1):
 +        mudou = False
 +        for i in range(passnum):
 +            if lista[i] > lista[i+1]:
 +                lista[i], lista[i+1] = lista[i+1], lista[i]
 +                print(lista)
 +                mudou = True
 +        if not mudou:
 +            return lista
 +    return lista</code>
 +
 +Exemplo de programa que testa o código:
 +<code python># -*- coding: UTF-8 -*-
 +
 +import pytest
 +import semana5
 +
 +class Testa_semana5_bubble():
 +
 +    @pytest.mark.parametrize("lista, resultado", [
 +        ([5, 1, 4, 2], [1, 2, 4, 5]),
 +        ([12, 13, 14, 11], [11, 12, 13, 14]),
 +        ([12, 13, -2, 14, 11], [-2, 11, 12, 13, 14]),
 +        ])
 +
 +    def testes(self, lista, resultado):
 +        assert semana5.bubble_sort(lista) == resultado</code>
 +
 +Para realizar o teste chamamos o programa que testa via pytest:
 +<code shell>$ pytest-3 testa.py 
 +=== test session starts ===
 +platform linux -- Python 3.6.8, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
 +rootdir: /tmp/curso_python/week5_testes_automatizados, inifile:
 +plugins: pylint-0.8.0
 +collected 3 items
 +
 +testa.py ... [100%]
 +
 +=== 3 passed in 0.03 seconds ===
 +</code>
 ===== Venv ===== ===== Venv =====
  
Linha 82: Linha 130:
  
 =====pexpect/pxssh===== =====pexpect/pxssh=====
-O [[https://en.wikipedia.org/wiki/Expect|pexpect]] é o equivalente ao programa original "expect", feito em tcl, muito usado em programação shell script. O pexpect é particularmente útil para programadores que lidam com infra-estrutura, pois fornece um meio de automatizar aplicativos que o shell diretamente não consegue, como ssh, telnet, etc, em outras palavras, programas que se apropriam do terminal e que não aceitam parâmetros pela stdin.+pexpect é o equivalente ao programa original "[[https://en.wikipedia.org/wiki/Expect|expect]]", feito em tcl, muito usado em programação shell script. O pexpect é particularmente útil para programadores que lidam com infra-estrutura, pois fornece um meio de automatizar aplicativos que o shell diretamente não consegue, como ssh, telnet, etc, em outras palavras, programas que se apropriam do terminal e que não aceitam parâmetros pela stdin. 
 + 
 +  * [[https://pexpect.readthedocs.io/en/stable/api/pexpect.html|pexpect]]: uso geral 
 +  * [[https://pexpect.readthedocs.io/en/stable/api/pxssh.html|pxssh]]: uso para sessões de ssh
  
  
 ===== Django ===== ===== Django =====
  
 +===== Recomendações PEP =====
 +
 +===== Referências externas =====
 +  * [[https://wiki.python.org.br/GuiaDeEstilo]]
ti_publica/dicas_python.1575025577.txt.gz · Última modificação: 2019/11/29 08:06 por cartola