Pitch: PIX-Utils, minha primeira biblioteca para Python

Oi, olá. tudo bom?

A 2 anos atrás, durante a pandemia, eu começei a aprender a minha primeira linguagem de programação, que era o Python. Até hoje uso muito o Python para fazer os meus projetos pessoais e como forma de trabalho. Só que até então, todos os meus códigos eram privados (e boa parte ainda é), pois tinha e ainda tenho um pouco de medo de mostrar os meus códigos, pois a maioria eu tenho sincera vergonha. Mas pelo menos, de 2 anos para cá, eu acho que melhorei muito a minha forma de programar.

Eu gosto muito do mundo e da comunidade Open Source, até porque, aprendi muito olhando os códigos e contribuições das pessoas que também amam Open Source. E por algum motivo, essa semana eu me senti muito motivado a também contrinuir nesta comunidade e abrir e melhorar mais os meus códigos. Uma das ideias que tive era de lançar a minha primeira biblioteca, que é uma série de recursos para validação e geração de códigos e chaves PIX.

Eu fiz a publicação da biblioteca no Pypi, que você pode instalar com o comando:

pip install pix-utils

Você também pode ver e contribuir com o repositório público, aqui.

Recursos

Resolvi adicionar na biblioteca, os principais recursos que pelo menos eu uso nos meus projetos e que eu acho que seriam úteis, como:

Validação de chaves PIX.

Valida o tipo de chave chamando o método validate.

from pix_utils import CPF, CNPJ, Email, Phone, Random

print(Phone().validate('11991234567')) # True
print(Email().validate('example@example.com')) # True
print(CPF().validate('12345678901')) # False
print(CNPJ().validate('06.990.590/0001-23')) # True
print(Random().validate('12345678-1234-1234-1234-123456789012')) # True

Formatação de chaves PIX para CPF, CNPJ e telefone.

Máscara chaves PIX de CPF, CNPJ e telefone chamando o método mask.

from pix_utils import CPF, CNPJ, Phone

print(CPF().mask('11438374798')) # 114.383.747-98
print(Phone().mask('11991234567')) # (11) 99123-4567
print(CNPJ().mask('06990590000123')) # 06.990.590/0001-23

Geração de códigos para pagamento PIX estático.

Gera códigos de pagamento estáticos de PIX copia-e-cola.

from pix_utils import Code

KEY = '11438374798' # Chave PIX.
NAME = 'John Doe' # Nome do dono do PIX.
CITY = 'Sao Paulo' # Cidade do dono do PIX. Lembre-se de não usar acentos.
VALUE = 10.00 # Valor da transação.
INDENTIFY = '12345678' # Indentificador da transação (opcional).

print(Code(key=KEY, name=NAME, city=CITY, value=VALUE, identifier=INDENTIFY)) 
# 00020126330014BR.GOV.BCB.PIX011111438374798520400005303986540510.005802BR5908John Doe6009Sao Paulo621205081234567863046A00

Indentificar e formatar chave PIX

Automáticamente Indentifica o tipo de chave PIX e a formata.

from pix_utils import Type

print(Type('11438374798')) # (CPF, '114.383.749-98')
print(Type('11991234567')) # (Phone, '(11) 99123-4567')
print(Type('06990590000123')) # (CNPJ, '06.990.590/0001-23')
print(Type('12345678-1234-1234-1234-123456789012')) # (Random, '12345678-1234-1234-1234-123456789012')
print(Type('example@example.com')) # (Email, example@example.com')

Caso você tenha uma ideia para o repositório, você também pode deixar nos comentários, caso queira.

Pretendo trazer mais coisas que fiz que quero deixar Open Source, se tudo der certo :)

Também concordo com o pessoal sobre ir deixando os projetos públicos e ir lapidando eles com o retorno da comunidade! Ainda mais agora que tem um lugar com pessoas boas como o TabNews para você expor esses repositórios 🤝

Em paralelo, a função Type ficou sensacional! Que delícia de abstração!

E a parte mais importante é, não se importar em escrever o melhor código do mundo antes de publicar, pois isso irá acontecer com o tempo. E não existe nada melhor do que voltar depois no repositório e atualizar seu código com o que você aprendeu no decorrer desse período. Parabéns pela iniciativa!

Muito legal o projeto, estava procurando exatamente isso pra desenvolver um projeto pessoal meu, valeu por compartilhar!

E lengo, deixa seus projetos públicos sim, mesmo que incompletos ou feitos correndo, minha experiência 100% das vezes até hoje com esses projetos foi que ou ficaram lá só por arquivo, ou que alguém precisando de algo parecido encontrou e adaptou pro uso próprio, ou me ajudou a melhorar o original.

Cara, muito bacana o seu toolkit. Eu acredito que vai ajudar muito a comunidade. Continue o seus estudos em programação e você vai muito longe. Sim, disponibilize seus códigos. Eu sei que vc pode ter vergonha mas na comunidade OpenSource ninguém vai fazer você se sentir mal. Todos nos ajudamos e vc vai ganhar muito aprendizado com isso.

Muito obrigado mano, não achei que alguém fosse gostarkk, mas muito obrigado! Tentarei disponibilizar mais coisas ao decorrer do tempo que eu for arrumando meu código sujokk, mas fico feliz pela comunidade ser tão foda! Também pretendo perder o medo e tentar fazer pull requests para outros repositórios OpenSource, mesmo se não for aceito, acredito que vou aprendendo isso com o tempo.