Pythonistas gostam de utilizar a IDE PyCharm Community para codar devido as facilidades que ele oferece, mas você sabia que é possível fazer uma sessão colaborativa e codar no mesmo projeto ou até no mesmo código?
Pois bem, a Jetbrains disponibiliza para a comunidade de Python esse serviço gratuitamente, mas também pode ser pago e nesse caso, não existe limitação.
Para a versão gratuita do CODE WITH ME, até 3 programadores podem se conectar simultaneamente durante 30 minutos, com recursos de ligação por voz.
As sessões são ilimitadas, porém elas são interrompidas depois de 30 minutos de utilização.
Ou seja, um recurso para Pair Programming mesmo!
A versão paga tem mais recursos como:
Tempo de sessão ilimitado
Até 50 desenvolvedores por sessão
Quantidade ilimitada de sessões
Suporte técnico via e-mail
O CODE WITH ME também pode ser utilizado para Coding DOJO para o treinamento e aprendizado de programação.
Acabou o tempo de ficar copiando código e perdendo tempo de verificar o DIFF entre as versões. Com os versionadores GIT, bitbucket e outros, já houve uma redução significativa, mas ter o recurso dentro de um único ambiente ao invés de ficar realizando commits, forks, clones e etc, é bem melhor!
Como posso utilizar o CODE WITH ME?
Dentro do Pycharm, pressione Ctrl + Alt + S simultaneamente e abrirá a tela de Settings.
Escolha Plugins, digite “code with me” e clique no botão “Install”, conforme a tela abaixo. Por fim, clique em OK após a instalação. Na tela abaixo, está com outro exemplo de plugin, no caso Code4Me, porque o CODE WITH ME já estava instalado na minha máquina, mas o procedimento é o mesmo.
Convide seu amigo programador para codar juntamente contigo!
Você já se deparou com um erro no código e ficou batendo cabeça para saber qual era o erro? A IDE ou o próprio prompt (>>>) do Python informava uma coisa e depois você descobriu que era outro erro.
Pois é!
Por causa disso, achamos interessante trazer uma estrutura básica para quem está começando a programar em Python.
A estrutura é bem simples e consiste em ter um “try:” antes do seu código fonte e o tratamento após o seu código fonte.
As bibliotecas que serão carregadas devem ficar antes do “try:”.
O desvio para identificação do erro será para erros de sistemas operacionais, erros de valor porque o Python trabalha orientado a objetos e quase tudo é um objeto no python e, por fim, exceções que acontecerem com comportamentos não esperados na execução do programa.
Esse tratamento pode ser melhorado, mas com esse mínimo será possível facilitar muito a vida de quem está programando.
Um ponto de atenção é na indentação, porque como o “try:” fica na primeira coluna, então o seu código fonte deve começar indentado. Eu acho que esse é o único ponto um “pouco chato” de utilizar o tratamento de erro, porque você vai iniciar seu código com a indentação no primeiro nível de indentação, por outro lado, compensa o benefício da rápida identificação do erro.
Vamos ao código!
# Carregue as biblotecas aqui, como pandas, matplotlib, numpy, etc
# Arquivo de exemplo de tratamento de erros
try:
# <aqui vai o código fonte do seu programa>
except OSError as err:
#<aqui o tratamento captura o erro de Sistema Operacional>
print("Erro de S.O. : {0}".format(err))
except ValueError:
# <aqui o tratamento captura o erro do programa como valores errados ou parâmetros>
print("Não pode converter data para inteiro.")
except BaseException as err:
#<aqui o tratamento captura as exceções que acontecem no programa>
print(f"Inesperado {err=}, {type(err)=}")
raise
Teste esse tratamento de erro! Copie esse código fonte de tratamento de erro e cole o seu código após o “try:”.
Depois, force erros como mudar caminho de arquivos, “\”, parâmetros, cálculos errados e etc.
A mágica acontecerá e sua vida ficará mais fácil a partir do momento que você iniciar o tratamento de erros.
Com o tempo, esse processo é incorporado ao seu dia a dia.
A biblioteca pygame é muito versátil na sua utilização, mas uma implementação simples é utilizá-la para tocar arquivos no formato mp3.
A implementação é muito simples e com poucas linhas, você pode utilizá-la para curtir um som ou inserir um arquivo de audio no seu sistema ou game.
Vamos ao código!
Uma forma de implementar o código.
# importar a biblioteca pygame
from pygame import mixer
# uma forma de implementar o código
mixer.init()
# substitua o nome do arquivo "musica.mp3" pelo seu arquivo mp3
mixer.music.load('musica.mp3')
mixer.music.play()
x = input('Digite algo para parar...')
Outra forma de implementar o código.
# importar a biblioteca pygame
import pygame
# outra forma de implementar o código
pygame.mixer.init()
# substitua o nome do arquivo "musica.mp3" pelo seu arquivo mp3
pygame.mixer.music.load('musica.mp3')
pygame.mixer.music.play()
x = input('Digite algo para parar a musica...')
As duas formas funcionam, porém fica a critério de cada um como implementar.
obs: código postado no grupo de Telegram da comunidade Py013.
Um dos trabalhos apresentados no Encontro da Comunidade no dia 27/05/23 por Altair Ribeiro
Muitas vezes precisamos obter endereços completos para a realização de testes de software, ou ainda para incluir dados em um formulário na Web. O Selenium é uma biblioteca muito utilizada para testes de software e que pode ser utilizada a realização desse tipo de trabalho repetitivo.
Você precisa ter o geckodriver.exe (baixe aqui) ou o chromedriver.exe (baixe aqui) para que o código fonte em Python em conjunto com a biblioteca Selenium crie uma instância do Browser e controle todo o processo de execução.
Tanto o Geckodriver.exe quanto o Chromedriver.exe precisam estar na mesma pasta do código fonte.
Utilizamos um site muito utilizado por Analistas de Qualidade para a geração de massa de dados.
É um site muito conhecido nesse meio e também muito bem montado e que contribui muito para elevarmos o nível da disciplina de qualidade no Brazil.
Algumas vezes queremos estudar offline e para isso precisamos baixar os videos localmente no computador.
Existem ferramentas que fazem isso, mas geralmente são pagas.
Com poucas linhas de código fonte, você pode fazer isso com Python.
Porém, respeitem os direitos autorais dos autores dos vídeos, músicas ou qualquer forma de conteúdo produzido.
Vamos lá!
# carregar os métodos Youtube e Playlist da biblioteca pytube
from pytube import YouTube, Playlist
# atribui à variável playlist_fim a URL da playlist obtida no Youtube
playlist_fim = 'https://www.youtube.com/watch?v=IftUFXo2e-k&list=PLnNURxKyyLIKvXocwRwLCQqPU0mcTSLxJ'
# atribuir à variável playlist a lista de vídeos da playlist com o método Playlist
playlist = Playlist(playlist_fim)
# para cada item da lista de vídeos da playlist, baixar cada
# vídeo sequencialmente (laço for utilizado)
for url in playlist:
# atribuir à variável video o método Youtube com o parãmetro url que irá
# ler o vídeo sequencialmente, iniciando do primeiro da playlist
video = YouTube(url)
# atribuir à variável stream a utilização do vídeo de mais alta resolução
stream = video.streams.get_highest_resolution()
# efetuar o download do vídeo e gravar na pasta "playlist"
stream.download(output_path='playlist')
A variável PLAYLIST_URL terá a atribuição da URL que foi obtida do Youtube.
O código fonte está comentado para facilitar o entendimento.
Muitas vezes queremos baixar um vídeo no Youtube para ver posteriormente, mas os sites que existem para isso contém malwares que podem ser instalados no seu computador.
Por isso, algumas vezes é melhor você mesmo fazer o download com poucas linhas de código em Python.
Somente fique atento aos direitos autorais de músicas, filmes e artistas em geral, porque existem leis que protegem os direitos autorais do autor da obra e utilizar a obra sem autorização é crime.
Esse snippet é somente ilustrativo para você exercitar a sua programação e conhecer mais uma biblioteca neste vasto mundo do Python.
A Pytube é um biblioteca que se define como “leve e livre de dependências para baixar vídeos do Youtube”.
Simples assim!
Vamos ao snippet!
from pytube import YouTube
YouTube("https://www.youtube.com/watch? \
v=a72yIwfvZXg").streams.get_highest_resolution().download()
O caracter “\” no final da segunda linha é somente para a quebra de linha explícita e facilitar o copy e paste do código. Na verdade, é uma única string com os parâmetros e métodos.
Se o vídeo no Youtube tiver restrição de idade (“age_restricted”) ele dará um erro, nesse caso, é bom dar uma verificada na documentação da biblioteca para contornar essa restrição. Podemos tratar essa situação em outro post.
O vídeo será baixado na mesma pasta que o código Python está sendo executado.
Não esqueça de instalar antes a biblioteca com o comando abaixo na linha de comando (cmd):
c:> pip install pytube
Nesse exemplo, utilizamos o vídeo do canal Dev Aprender do Jhonatan de Souza, que possui vídeos excelentes sobre Python e sua utilização.
Conheça mais sobre a biblioteca pytube e explore novas opções de download!
Muitas vezes queremos baixar somente o som de um vídeo no Youtube, mas os sites que existem para isso contém muitas armadilhas que podem instalar malwares no seu computador, enquanto realizam o download para você.
Por isso, algumas vezes é melhor você mesmo fazer o download com poucas linhas de código em Python.
Somente fique atento aos direitos autorais de músicas, filmes e artistas em geral, porque existem leis que protegem os direitos autorais do autor da obra e utilizar a obra sem autorização é crime.
Esse snippet é somente ilustrativo para você exercitar a sua programação e conhecer mais uma biblioteca neste vasto mundo do Python.
Novamente a comunidade Py013 organiza em Santos, um dia em comemoração a transparência dos Dados Abertos. Um dia internacional organizado pela Open Knowledge Foundation onde 179 eventos foram realizado em todo o mundo, entre os dias 4 a 10 de março, para falar, discutir e realizar descobertas sobre dados abertos.
Evento registrado no Mapa Oficial do Open Data Day
Através dos grupos do Whatsapp e Telegram da comunidade py013 foi realizada uma votação para saber qual o tema seria tratado no Open Data Day do ano de 2023. A comunidade escolheu entre 3 temas: Meio Ambiente, Eleições 2020/2022 e Casos de Dengue na Baixada Santista.
Foto de Gabriel Miceli, Diretor do Parque Tecnológico de Santos apresentando o Local.
O Diretor do Parque Tecnológico de Santos, Gabriel Miceli, fez uma breve apresentação do Parque Tecnológico de Santos, e em seguida João e Altair realizaram uma breve introdução sobre uma primeira análise a respeito dos Data Sets dos resultados das Eleições 2020. Após isso, os participantes agruparam-se em busca de uma análise exploratória inicial.
Altair dando início ao evento.
João apresentando a Comunidade Py013 e dando início a um exemplo de análise exploratória.
Após aproximadamente 3 horas de análise exploratória utilizando a biblioteca Pandas, começaram a ser apresentadas as primeiras descobertas.
Gabriel apresentando sua análise e Altair comentando junto com todos.
Gabriel descobriu que aproximadamente apenas 33% das sessões eleitorais possuem recursos de acessibilidade em todo o Brasil.
Grupo do Daniel apresentando seus resultados
O grupo do Daniel apresentou sua análise descobrindo nas eleições de 2022 para governador do Estado de São Paulo quais os candidatos que possuíam menos votos que o total de Brancos e Nulos.
Grupo do Ergon apresentando seus dados
Grupo do Ergon realizou um levantamento sobre o total de eleitores na região da Baixada Santista, e descobriu que Praia Grande possui quase a mesma quantidade de eleitores que São Vicente.
Altair comentando o mapa montado pelo João
João realizou uma análise parecida com a do grupo anterior, com o objetivo de localizar no município de Santos quais as escolas que possuem a maior quantidade de eleitores, e plotou num mapa da cidade de Santos e as 6 maiores escolas eleitorais.
Neto apresentando a raspagem de dados dos logs das Urnas Eletrônicas
Por fim, Neto apresentou seu código em Python que realizou uma raspagem de dados nos logs das Urnas Eletrônicos para montar um Data Set com o objetivo de analisar as versões das urnas eletrônicas e sua localização geográfica nas eleições de 2022. Conseguiu montar o Data Set do estado do Acre, tentou realizar para o estado de São Paulo mas a quantidade de Urnas é 10 vezes maior, consequentemente a quantidade de logs também, e demandaria muito tempo de processamento. Porém, foi possível realizar uma prova de conceito que é possível realizar essa análise.
Ao final do evento foram realizados sorteio de livros, e a divulgação de voucher de descontos da Novatec.
Livros sobre Empreendedorismo foram sorteados
Livro sobre Web Scrapying com Python foi sorteado
Voucher de desconto da Novatec
Participantes que ficaram até o final do evento
Foi um dos melhores Open Data Day realizados pela Py013, aparecemos também em um post no Instagram da Open Knowledge Brasil.
Abaixo segue alguns links do Google Colab das análises realizadas:
Agradecemos novamente o apoio do Parque Tecnológico de Santos, Universidade Católica de Santos e Editora Novatec. Esperamos todos novamente para o próximo Open Data Day em 2024, enquanto isso aguardem novidades, capaz de realizarmos mais um evento sobre Ciência de Dados dando continuidade ao Open Data Day deste ano!
Em breve mais novidades! Viva a Transparência dos Dados Abertos!