Getting your Trinity Audio player ready... |
Imagem do responsável | Canva
Porquê programadores, frequentemente confiamos em várias bibliotecas externas para resolver problemas diferentes. Essas bibliotecas são criadas por desenvolvedores habilidosos e fornecem soluções que nos poupam tempo e esforço. Mas você já pensou, “Posso gerar minhas bibliotecas personalizadas também?” A resposta é sim! Nascente item explica os passos necessários para ajudar você a fazer isso, seja você um desenvolvedor profissional ou unicamente um iniciante. Da escrita e estruturação do seu código à documentação e publicação, levante guia cobre tudo.
Guia passo a passo para gerar uma livraria
Lanço 1: inicialize seu projeto
Comece criando um diretório raiz para seu projeto.
Lanço 2: Crie um diretório para seu pacote
O próximo passo é gerar um diretório para seu pacote dentro do diretório do seu projeto.
multiples_library/
└──multiples/
Lanço 3: Juntar __init.py__
Agora, adicione o __init.py__
dentro do diretório do seu pacote. Nascente registo é o indicador primordial para Python de que o diretório em que ele reside é um pacote. Ele consiste em código de inicialização, se houver, e executa involuntariamente quando um pacote ou qualquer um de seus módulos são importados.
multiples_library/
└── multiples/
└──__init__.py
Lanço 4: Juntar módulos
Agora, você precisa aditar módulos ao diretório do pacote. Esses módulos geralmente consistem em classes e funções. É uma boa prática dar a cada módulo um nome significativo descrevendo seu propósito.
multiples_library/
│
└── multiples/
├── __init__.py
├── is_multiple_of_two.py
└── is_multiple_of_five.py
Lanço 5: Escreva nos módulos
Nesta lanço, você definirá a funcionalidade de cada módulo. Por exemplo, no meu caso:
Módulo: multiple_of_two.py
def is_multiple_of_two(number):
""" Check if a number is a multiple of two. """
return number % 2 == 0
Módulo: multiple_of_five.py
def is_multiple_of_five(number):
""" Check if a number is a multiple of five. """
return number % 5 == 0
Lanço 6: adicione setup.py
O próximo passo é aditar outro registo chamado setup.py ao diretório do seu pacote.
multiples_library/
│
├── multiples/
│ ├── __init__.py
│ ├── is_multiple_of_two.py
│ └── is_multiple_of_five.py
│
└──setup.py
Nascente registo contém metadados sobre seu pacote, porquê nome, dependências, responsável, versão, descrição e mais. Ele também define quais módulos incluir e fornece instruções para erigir e instalar o pacote.
from setuptools import setup, find_packages
setup(
name="multiples_library", # Replace with your package’s name
version='0.1.0',
packages=find_packages(),
install_requires=[
# List your dependencies here
],
author="Your name",
author_email="Your e-mail",
description='A library for checking multiples of 2 and 5.',
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License', # License type
'Operating System :: OS Independent',
],
python_requires=">=3.6",
)
Lanço 7: Juntar testes e outros arquivos [Optional]
Nascente passo não é necessário, mas é uma boa prática se você quiser erigir uma livraria profissional e sem erros. Neste passo, a estrutura do projeto está finalizada e se parece um pouco com isto:
multiples_library/
│
├── multiples/
│ ├── __init__.py
│ ├── is_multiple_of_two.py
│ Sua visita nos ajuda a continuar oferecendo o melhor para você! └── is_multiple_of_five.py
│
│
├── tests/
│ ├── __init__.py
│ ├── test_is_multiple_of_two.py
│ └── test_is_multiple_of_five.py
│
├── docs/
│
├── LICENSE.txt
├── CHANGES.txt
├── README.md
├── setup.py
└── requirements.txt
Agora vou explicar para você qual é a finalidade dos arquivos e pastas opcionais mencionados no diretório raiz:
- testes/: Contém casos de teste para sua livraria para prometer que ela se comporte conforme o esperado.
- documentos/: Contém documentação para sua livraria.
- LICENÇA.txt: Contém os termos de licenciamento sob os quais outros podem usar seu código.
- MUDANÇAS.txt: Registra alterações na livraria.
- LEIA-ME.md: Contém a descrição do seu pacote e instruções de instalação.
- requirements.txt: Lista as dependências externas necessárias para sua livraria, e você pode instalar esses pacotes com um único comando (
pip install -r requirements.txt
).
Essas descrições são muito diretas e você entenderá o propósito dos arquivos e pastas opcionais em pouco tempo. No entanto, eu gostaria de discutir um pouco o diretório de testes opcionais para esclarecer seu uso.
testes/ diretório
É importante observar que você pode aditar um diretório de testes dentro do seu diretório raiz, ou seja, \multiples_library
ou dentro do diretório do seu pacote, ou seja, \multiples
. A escolha é sua; no entanto, sabor de mantê-lo no nível superior, dentro do diretório raiz, pois acho que é uma maneira melhor de modularizar seu código.
Várias Sua visita nos ajuda a continuar oferecendo o melhor para você! ajudam você a redigir casos de teste. Usarei a mais famosa e minha favorita pessoal, “unittest”.
Teste de unidade/s para is_multiple_of_two
O(s) caso(s) de teste para levante módulo está(ão) incluído(s) dentro do test_is_multiple_of_two.py
registo.
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from multiples.is_multiple_of_two import is_multiple_of_two
class TestIsMultipleOfTwo(unittest.TestCase):
def test_is_multiple_of_two(self):
self.assertTrue(is_multiple_of_two(4))
if __name__ == '__main__':
unittest.main()
Teste de unidade/s para is_multiple_of_five
O(s) caso(s) de teste para levante módulo está(ão) incluído(s) dentro do test_is_multiple_of_five.py
registo.
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from multiples.is_multiple_of_five import is_multiple_of_five
class TestIsMultipleOfFive(unittest.TestCase):
def test_is_multiple_of_five(self):
self.assertTrue(is_multiple_of_five(75))
if __name__ == '__main__':
unittest.main()
Os testes de unidade supra são muito simples, mas explicarei duas funções para maior justificação.
self.assertTrue(expression)
verifica se a sentença é avaliada porquê “True”. O teste só será reconhecido se o resultado da sentença for “True”.unittest.main()
A função é chamada para executar todos os casos de teste definidos no registo.
Lanço 8: Distribua seu pacote usando PyPI
Para tornar sua livraria facilmente atingível a outros, você pode carregá-la no PyPI. Siga estas etapas para repartir seu pacote:
- Crie uma conta em PyPI e habilitar autenticação de dois fatores.
- Fabricar um Token de API dando um nome de token e selecionando o escopo para “Conta inteira”. Em seguida, copie-o com desvelo, pois ele só aparece uma vez.
- Agora, você precisa gerar um registo .pypirc.
Para MacOS/Linuxabra o terminal e execute o seguinte comando:
Para Windowsabra o prompt de comando e execute o seguinte comando:
cd %USERPROFILE%
type NUL > .pypirc
O registo é criado e reside em ~/.pypirc no caso do MacOS/Linux e %USERPROFILE%/.pypirc no caso do Windows.
- Editar .pypirc registo copiando e colando a seguinte feitio:
[distutils]
index-servers =
pypi
[pypi]
username = __token__
password = pypi-
Substituir com o token de API real que você gerou do PyPI. Não esqueça de incluir o prefixo pypi-.
- Certifique-se de ter um registo setup.py no diretório raiz do seu projeto. Execute o seguinte comando para gerar arquivos de distribuição:
python3 setup.py sdist bdist_wheel
- Twine é uma instrumento usada para fazer upload de pacotes para o PyPI. Instale o twine executando o seguinte comando:
- Agora carregue seu pacote no PyPI executando o seguinte comando:
Lanço 9: Instalar e usar a livraria
Você pode instalar a livraria com o seguinte comando:
pip install [your-package]
No meu caso:
pip install multiples_library
Agora, você pode usar a livraria da seguinte maneira:
from multiples.is_multiple_of_five import is_multiple_of_five
from multiples.is_multiple_of_two import is_multiple_of_two
print(is_multiple_of_five(10))
# Outputs True
print(is_multiple_of_two(11))
# Outputs False
Encerrando
Resumindo, gerar uma livraria Python é muito interessante, e distribuí-la a torna útil para outros. Tentei tapar tudo o que você precisa para gerar uma livraria em Python da forma mais clara verosímil. No entanto, se você permanecer recluso ou confuso em qualquer ponto, não hesite em fazer perguntas na seção de comentários.
Kanwal Mehreen Kanwal é uma engenheira de tirocínio de máquina e uma escritora técnica com uma profunda paixão por ciência de dados e a intersecção de IA com medicina. Ela é coautora do e-book “Maximizing Productivity with ChatGPT”. Porquê Google Generation Scholar 2022 para APAC, ela defende a volubilidade e a superioridade acadêmica. Ela também é reconhecida porquê Teradata Diversity in Tech Scholar, Mitacs Globalink Research Scholar e Harvard WeCode Scholar. Kanwal é uma defensora fervorosa da mudança, tendo fundado a FEMCodes para capacitar mulheres em campos STEM.
Não perda a chance de explorar nossos produtos na loja.
Dê um passo adiante e conquiste sua liberdade financeira trabalhando no conforto da sua morada ou escritório.