From 477fb4a6973dd456cbc085f58ea25881084c57c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siury=20Louren=C3=A7o?= Date: Fri, 9 May 2025 19:35:43 -0300 Subject: [PATCH 1/4] =?UTF-8?q?adiciona=20estrutura=20b=C3=A1sica=20do=20p?= =?UTF-8?q?acote=20com=20arquivos=20de=20configura=C3=A7=C3=A3o=20e=20fun?= =?UTF-8?q?=C3=A7=C3=B5es=20de=20exemplo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 33 ++++++--------------- package_name/file1_name.py | 0 package_name/file2_name.py | 0 pyproject.toml | 3 ++ requirements.txt | 1 + setup.py | 10 +++++-- simple_backage/.pypirc | 9 ++++++ simple_backage/__init__.py | 2 ++ simple_backage/file1_name.py | 2 ++ simple_backage/file2_name.py | 2 ++ package_name/__init__.py => test_example.py | 0 test_script.py | 6 ++++ tox.ini | 6 ++++ 13 files changed, 47 insertions(+), 27 deletions(-) delete mode 100644 package_name/file1_name.py delete mode 100644 package_name/file2_name.py create mode 100644 pyproject.toml create mode 100644 simple_backage/.pypirc create mode 100644 simple_backage/__init__.py create mode 100644 simple_backage/file1_name.py create mode 100644 simple_backage/file2_name.py rename package_name/__init__.py => test_example.py (100%) create mode 100644 test_script.py create mode 100644 tox.ini diff --git a/README.md b/README.md index 0912af1..538f54b 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,12 @@ -# package_name +# Simple Package Template -Description. -The package package_name is used to: - - - - +Este é um exemplo de um pacote Python simples, criado como um modelo para projetos futuros. Ele contém duas funções principais: `say_hello` e `add_numbers`, além de testes unitários para garantir a funcionalidade. -## Installation +## Funcionalidades -Use the package manager [pip](https://pip.pypa.io/en/stable/) to install package_name - -```bash -pip install package_name -``` - -## Usage - -```python -from package_name import file1_name -file1_name.my_function() -``` - -## Author -My_name - -## License -[MIT](https://choosealicense.com/licenses/mit/) \ No newline at end of file +### Funções disponíveis: +1. **`say_hello(name: str) -> str`** + Retorna uma saudação personalizada para o nome fornecido. + Exemplo: + ```python + say_hello("Siury") # Retorna: "Hello, Siury!" \ No newline at end of file diff --git a/package_name/file1_name.py b/package_name/file1_name.py deleted file mode 100644 index e69de29..0000000 diff --git a/package_name/file2_name.py b/package_name/file2_name.py deleted file mode 100644 index e69de29..0000000 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9787c3b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/requirements.txt b/requirements.txt index e69de29..e079f8a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1 @@ +pytest diff --git a/setup.py b/setup.py index 4b4dc95..66d2346 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,9 @@ from setuptools import setup, find_packages +with open("README.md", "r") as f: + page_description = f.read() +from setuptools import setup, find_packages + with open("README.md", "r") as f: page_description = f.read() @@ -7,15 +11,15 @@ requirements = f.read().splitlines() setup( - name="package_name", + name="'simple_package'", version="0.0.1", author="my_name", author_email="my_email", description="My short description", long_description=page_description, long_description_content_type="text/markdown", - url="my_github_repository_project_link" + url="my_github_repository_project_link", packages=find_packages(), install_requires=requirements, - python_requires='>=3.8', + python_requires='>=3.13.3', ) \ No newline at end of file diff --git a/simple_backage/.pypirc b/simple_backage/.pypirc new file mode 100644 index 0000000..7d65a14 --- /dev/null +++ b/simple_backage/.pypirc @@ -0,0 +1,9 @@ + +[distutils] +index-servers = + testpypi + +[testpypi] +repository = https://test.pypi.org/legacy/ +username = __token__ +password = pypi-AgENdGVzdC5weXBpLm9yZwIkZWZmODA5N2ItMzg3NS00NmJiLTkzZWItZjc3MTJlOTlmMmU2AAIqWzMsImE1ZWJhZjI1LTdhMzEtNGFhMy05ODY3LWJmMGUyMGVlMjZlYiJdAAAGIKkCQoec2VmKpc4HPf1fBJDGq7JSXr13NwSiuatmtgox diff --git a/simple_backage/__init__.py b/simple_backage/__init__.py new file mode 100644 index 0000000..8c24fad --- /dev/null +++ b/simple_backage/__init__.py @@ -0,0 +1,2 @@ +from .file1_name import say_hello +from .file2_name import add_numbers diff --git a/simple_backage/file1_name.py b/simple_backage/file1_name.py new file mode 100644 index 0000000..ae6f619 --- /dev/null +++ b/simple_backage/file1_name.py @@ -0,0 +1,2 @@ +def say_hello(name): + return f"Hello, {name}!" diff --git a/simple_backage/file2_name.py b/simple_backage/file2_name.py new file mode 100644 index 0000000..bc2226f --- /dev/null +++ b/simple_backage/file2_name.py @@ -0,0 +1,2 @@ +def add_numbers(a, b): + return a + b diff --git a/package_name/__init__.py b/test_example.py similarity index 100% rename from package_name/__init__.py rename to test_example.py diff --git a/test_script.py b/test_script.py new file mode 100644 index 0000000..dc9fc56 --- /dev/null +++ b/test_script.py @@ -0,0 +1,6 @@ +from simple_backage.file1_name import say_hello +from simple_backage.file2_name import add_numbers + +# Testando as funções +print(say_hello("Siury!")) +print(add_numbers(3, 5)) \ No newline at end of file diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..e6e3886 --- /dev/null +++ b/tox.ini @@ -0,0 +1,6 @@ +[tox] +envlist = py38, py39 + +[testenv] +deps = pytest +commands = pytest From a578cc74edd4846fe6eb97a43e8cd7596862a007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siury=20Louren=C3=A7o?= Date: Fri, 9 May 2025 19:35:50 -0300 Subject: [PATCH 2/4] =?UTF-8?q?Este=20=C3=A9=20um=20exemplo=20de=20um=20pa?= =?UTF-8?q?cote=20Python=20simples,=20criado=20como=20um=20modelo=20par=20?= =?UTF-8?q?a=20projetos=20futuros.=20Ele=20cont=C3=A9m=20duas=20fun=C3=A7?= =?UTF-8?q?=C3=B5es=20principais:=20`say=5Fhello`=20e=20`add=5Fnumbers`,?= =?UTF-8?q?=20al=C3=A9m=20de=20testes=20unit=C3=A1rios=20para=20garantir?= =?UTF-8?q?=20a=20funcionalidade.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 9d62c83c0d1a659eb62f7b37509457d2950b9d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siury=20Louren=C3=A7o?= Date: Fri, 9 May 2025 19:52:24 -0300 Subject: [PATCH 3/4] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit adicionando descrição do readme --- README.md | 104 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 95 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 538f54b..2a147bc 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,98 @@ -# Simple Package Template +# 📦 Modelo de Pacote Python Simples + +Este é um exemplo de **pacote Python simples**, criado com o objetivo de servir como base para projetos futuros. Ele foi desenvolvido para praticar a estruturação de pacotes, a organização do código, a criação de funções reutilizáveis e a escrita de testes unitários. + +--- + +## ✨ Objetivo + +- Compreender como criar um pacote Python reutilizável. +- Praticar a separação de responsabilidades em arquivos diferentes. +- Aprender a estruturar um projeto com testes e dependências. +- Treinar o uso de `setup.py` e `requirements.txt` para empacotamento e instalação. + +--- + +## 🚀 Funcionalidades do Pacote + +O pacote contém **duas funções principais**: + +### ✅ `say_hello(name: str) -> str` + +Retorna uma saudação personalizada com o nome fornecido. + +**Exemplo de uso:** +```python +from seu_pacote import say_hello + +print(say_hello("Siury")) # Saída: "Hello, Siury!" + +➕ add_numbers(a: float, b: float) -> float +Soma dois números e retorna o resultado. + +Exemplo de uso: + +python +Copiar +Editar +from seu_pacote import add_numbers + +print(add_numbers(3, 5)) # Saída: 8 + +🗂️ Estrutura do Projeto +A estrutura dos arquivos está organizada assim: + +kotlin +Copiar +Editar +seu_pacote/ +├── __init__.py # Torna o diretório um módulo Python +├── file1_name.py # Contém a função say_hello +├── file2_name.py # Contém a função add_numbers +tests/ +├── __init__.py # Permite rodar os testes como pacote +├── test_file1_name.py # Testes para a função say_hello +├── test_file2_name.py # Testes para a função add_numbers +setup.py # Script para instalação do pacote +requirements.txt # Lista de dependências +README.md # Explicações do projeto + + +📌 Requisitos +Python 3.8 ou superior + +Nenhuma biblioteca externa obrigatória + +📂 Sobre os Arquivos +setup.py +Arquivo de configuração que define os metadados do seu pacote (nome, versão, autor, etc.) e as instruções para instalação. + +requirements.txt +Lista bibliotecas que seu pacote precisa para funcionar corretamente (mesmo que esteja vazio neste exemplo). + +__init__.py +Permite que o Python trate os diretórios como pacotes. Você pode deixar vazio ou importar as funções principais aqui para facilitar o uso. + +🧑‍💻 Autor(a) +Feito com 💻 por Siury — estudante de Análise e Desenvolvimento de Sistemas, buscando crescer como programadora +com base sólida e dedicação. + +📄 Licença +Este projeto está licenciado sob os termos da MIT License. + +🙏 Finalidade Didática +Este repositório é parte de um exercício de aprendizado sobre como construir pacotes Python de forma organizada, +com boas práticas e foco em reutilização de código. Sinta-se à vontade para reutilizar e melhorar este modelo. + + + + + + + + + + -Este é um exemplo de um pacote Python simples, criado como um modelo para projetos futuros. Ele contém duas funções principais: `say_hello` e `add_numbers`, além de testes unitários para garantir a funcionalidade. -## Funcionalidades -### Funções disponíveis: -1. **`say_hello(name: str) -> str`** - Retorna uma saudação personalizada para o nome fornecido. - Exemplo: - ```python - say_hello("Siury") # Retorna: "Hello, Siury!" \ No newline at end of file From d718462ddb2ccd18460a223c02fb60d1ad7fc96b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siury=20Louren=C3=A7o?= Date: Fri, 9 May 2025 19:56:34 -0300 Subject: [PATCH 4/4] Update README.md aditado --- README.md | 71 ++++--------------------------------------------------- 1 file changed, 4 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 2a147bc..55c10fc 100644 --- a/README.md +++ b/README.md @@ -21,78 +21,15 @@ O pacote contém **duas funções principais**: Retorna uma saudação personalizada com o nome fornecido. -**Exemplo de uso:** -```python -from seu_pacote import say_hello - -print(say_hello("Siury")) # Saída: "Hello, Siury!" - -➕ add_numbers(a: float, b: float) -> float -Soma dois números e retorna o resultado. - -Exemplo de uso: - -python -Copiar -Editar -from seu_pacote import add_numbers - -print(add_numbers(3, 5)) # Saída: 8 - -🗂️ Estrutura do Projeto -A estrutura dos arquivos está organizada assim: - -kotlin -Copiar -Editar -seu_pacote/ -├── __init__.py # Torna o diretório um módulo Python -├── file1_name.py # Contém a função say_hello -├── file2_name.py # Contém a função add_numbers -tests/ -├── __init__.py # Permite rodar os testes como pacote -├── test_file1_name.py # Testes para a função say_hello -├── test_file2_name.py # Testes para a função add_numbers -setup.py # Script para instalação do pacote -requirements.txt # Lista de dependências -README.md # Explicações do projeto - 📌 Requisitos Python 3.8 ou superior -Nenhuma biblioteca externa obrigatória - -📂 Sobre os Arquivos -setup.py -Arquivo de configuração que define os metadados do seu pacote (nome, versão, autor, etc.) e as instruções para instalação. - -requirements.txt -Lista bibliotecas que seu pacote precisa para funcionar corretamente (mesmo que esteja vazio neste exemplo). - -__init__.py -Permite que o Python trate os diretórios como pacotes. Você pode deixar vazio ou importar as funções principais aqui para facilitar o uso. - -🧑‍💻 Autor(a) -Feito com 💻 por Siury — estudante de Análise e Desenvolvimento de Sistemas, buscando crescer como programadora -com base sólida e dedicação. +Sem dependências externas 📄 Licença -Este projeto está licenciado sob os termos da MIT License. - -🙏 Finalidade Didática -Este repositório é parte de um exercício de aprendizado sobre como construir pacotes Python de forma organizada, -com boas práticas e foco em reutilização de código. Sinta-se à vontade para reutilizar e melhorar este modelo. - - - - - - - - - - - +Licenciado sob a MIT License. +👩‍💻 Autor(a) +Feito com 💻 por Siury, estudante de Análise e Desenvolvimento de Sistemas, construindo sua base em programação.