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
Última revisãoAmbos lados da revisão seguinte
ti_publica:dicas_python [2019/11/29 08:06] – [Django] cartolati_publica:dicas_python [2019/12/06 11:54] – [Instalações] 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 =====
ti_publica/dicas_python.txt · Última modificação: 2020/01/10 15:57 por cartola