Skip to content

Instantly share code, notes, and snippets.

View gcrsaldanha's full-sized avatar
🏠
Working from home

Gabriel Saldanha gcrsaldanha

🏠
Working from home
View GitHub Profile
@gcrsaldanha
gcrsaldanha / tdd_roteiro.md
Created April 2, 2024 20:13
Roteiro PythOnRio Abril - 2024 - Test Driven Development com Python/Django

Test Driven Development com Python e Django

É um negócio perigoso, Frodo, sair pela porta de casa. Você coloca um pé na estrada, e se você não se manter firme, não tem como saber para onde será levado.

Disclaimer

Esse roteiro é baseado no livro Test-Driven Development with Python de Harry Percival.

Objetivo

@gcrsaldanha
gcrsaldanha / criar_imagem.py
Last active February 15, 2023 16:34
Criando imagens com Python (Pillow)
# Para mais conteúdos de Python, acesse: https://instagram.com/gabrielsaldanha.dev
# É necessário ter Pillow instalado:
# $ python3 -m pip install Pillow
from PIL import Image, ImageDraw, ImageFont
image = Image.new("RGB", (1080, 1080), color=(41, 46, 48))
img_draw = ImageDraw.Draw(image)
# Arquivo de fonte Helvetica.ttc deve estar no mesmo diretório
# que o programa está sendo executado
@gcrsaldanha
gcrsaldanha / cap1.md
Last active January 6, 2023 02:18
Livro de Python – Gists

Prefácio

Bem-vindo à minha série de artigos sobre programação com Python para iniciantes! Nesta série, vou te guiar através de conceitos de programação (utilizando Python) de modo que você consiga criar seus próprios programas!

Cada artigo (ou capítulo) foi escrito de modo que possa ser lido em poucos minutos, com alguns exercícios práticos no final. Além disso, o conteúdo é voltado para iniciantes na programação ou pessoas que nunca tiveram contato e querem aprender mais sobre programação. Portanto, não é necessário nenhum conhecimento prévio.

Sinta-se confortável para ler os capítulos da maneira que preferir, mas eles foram pensados para serem lidos diariamente, um capítulo por dia, de modo que não tome muito do seu tempo.

Se você não faz ideia do que é esse tal de "Python" ou "programação", pode ficar tranquilo(a)! No primeiro capítulo a gente vai falar sobre isso!

@gcrsaldanha
gcrsaldanha / cheatsheet.md
Last active November 19, 2022 13:53
PythOnRio – Novembro 2022 – Programação Assíncrona com Python Futures

Documentação completa: https://docs.python.org/3/library/concurrent.futures.html

Executor

  • def __init__(max_workers)
  • def map(func, *iterables)
    • similar ao map (built-in)
    • executa func de modo assíncrono sobre os iteráveis.
  • def shutdown(wait=True, *, cancel_futures=False)
  • wait: blocking vs non-blocking return (esperar todos os futuros pendentes terminarem).
@gcrsaldanha
gcrsaldanha / front.js
Created November 17, 2022 17:59
Essa é uma descrição qualquer, só para dar um exemplo
console.log("Pode ter mais de um arquivo por gist!!!")
@gcrsaldanha
gcrsaldanha / referências.md
Created September 14, 2022 21:28
Live Imersão Alura: Como escrever seu currículo – Referências
@gcrsaldanha
gcrsaldanha / exemplo_datetime.py
Created March 17, 2022 15:48
Criando datetimes de 30 em 30 minutos
from datetime import datetime, timedelta
dt_inicio = datetime(2022, 3, 17, 9) # 09h00, 17 de Março de 2022
dt_fim = datetime(2022, 3, 17, 18) # 18h00, 17 de Março de 2022
delta = timedelta(minutes=30) # objeto timedelta de 30 minutos
dt = dt_inicio + delta
print(type(dt))
# <class 'datetime.datetime'>
print(dt)
@gcrsaldanha
gcrsaldanha / cupom.py
Created February 15, 2022 13:06
Validador de cupom – Exercício 4 módulo 4
valor_compra = float(input("Digite o valor da compra: \n"))
valor_frete = float(input("Digite o valor do frete: \n"))
cliente_cadastrado = input("O cliente é cadastrado? (s/n) \n")
cupom_pode_ser_utilizado = (valor_compra + valor_frete > 100) or (cliente_cadastrado == "s")
print(cupom_pode_ser_utilizado)
@gcrsaldanha
gcrsaldanha / variaveis_locais_e_globais.py
Created February 15, 2022 00:20
Variáveis globais e locais no Python
# O interpretador Python vai sempre procurar pela variável no escopo "local"
# antes de olhar para o escopo global. Por exemplo, veja as funções abaixo `somar` e `somar_2`
a = 10 # Variável global
def somar(a, b):
# a, b: variáveis locais – parâmetros da função
return a + b
def somar_2(b): # Apenas um parâmetro "b"
@gcrsaldanha
gcrsaldanha / custom_error_messages.py
Last active February 1, 2022 15:46
Django Rest Framework playground
# https://www.django-rest-framework.org/api-guide/fields/#error_messages
from rest_framework import serializers as s
class User(s.Serializer):
name = s.CharField(error_messages={"blank": "This is a custom message! Yeah!"})
user = User(data={"name": ""})
user.is_valid()