Metadata-Version: 2.3
Name: ezmongoconn
Version: 0.1.0
Summary: Conexão com o banco de dados MongoDB de forma prática e rápida
Author: Anderosn Ferreira Ribeiro Campos
Author-email: Anderosn Ferreira Ribeiro Campos <andersonspl@hotmail.com>
Requires-Dist: pymongo>=4.19.0
Requires-Dist: python-dotenv>=1.2.4
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# MongoDB Conn Manager 🚀

Uma biblioteca Python leve, robusta e extremamente simples para gerenciar conexões com o MongoDB (Atlas) utilizando o `pymongo`. 

Desenvolvida com foco em boas práticas, reaproveitamento de conexões (Connection Pooling) e validação de dados em tempo de execução.

## ✨ Funcionalidades

- **Reutilização de Conexão:** Evita a abertura de conexões físicas duplicadas ao chamar o método `connect()` múltiplas vezes.
- **Validação Automática:** Impede a inicialização ou alteração de atributos com valores vazios ou inválidos (Garante falhas rápidas/Fail-fast).
- **Suporte Total a Type Hints:** Autocomplete completo no VS Code, PyCharm e outras IDEs.
- **Gerenciamento de Ciclo de Vida:** Inclui método `close()` integrado para fechar conexões de forma limpa.

## 📦 Instalação

Instale a biblioteca diretamente pelo PyPI:

```bash
pip install minha-lib-exemplo
```

Ou, se você utiliza o **uv**:

```bash
uv add minha-lib-exemplo
```

## 🛠️ Como Usar

### 1. Conexão Básica

```python
from minha_lib import Conn

# Inicializa o gerenciador com suas credenciais do MongoDB Atlas
db_manager = Conn(
    user="meu_usuario",
    password="minha_senha_segura",
    cluster="cluster0",
    database="producao"
)

# Conecta ao banco e obtém a instância do Database do pymongo
db = db_manager.connect()

# Agora você pode usar os comandos normais do pymongo!
db["usuarios"].insert_one({"nome": "Dev Python", "status": "ativo"})

# Ao finalizar o script, feche a conexão de forma limpa
db_manager.close()
```

### 2. Alterando Credenciais Dinamicamente (Getters e Setters)

A biblioteca protege seus atributos internos, mas permite alterações seguras através de propriedades, validando os dados inseridos imediatamente.

```python
db_manager = Conn()

# Isso disparará um ValueError imediatamente, protegendo seu fluxo
try:
    db_manager.user = ""  
except ValueError as e:
    print(f"Erro capturado: {e}")

# Alteração válida
db_manager.user = "novo_usuario_admin"
```

## ⚙️ Requisitos

- Python >= 3.8
- `pymongo` >= 4.0

## 📄 Licença

Este projeto está licenciado sob a licença MIT - consulte o arquivo [LICENSE](LICENSE) para obter mais detalhes.
