Biblioteca Python para parsing de preços de scraping, cálculo de descontos e análise estatística de histórico de preços.
Project description
notify-utils
Biblioteca Python para parsing de preços de scraping, cálculo de descontos e análise estatística de histórico de preços.
Funcionalidades
- Parser de Preços: Normaliza strings de preços de diferentes formatos (BR, US)
- Cálculo de Descontos: Detecta descontos reais vs anunciados usando histórico
- Análise Estatística: Média, mediana, tendências e volatilidade de preços
- Validação de Preços: Sistema inteligente para validar preços antes de adicionar ao histórico
- Notificações Discord: Envio de alertas de preço via webhook (opcional)
Instalação
pip install notify-utils
Uso Básico
Parsing de Preços
from notify_utils import parse_price
preco = parse_price("R$ 1.299,90") # → 1299.90
preco = parse_price("$1,299.90") # → 1299.90
Cálculo de Desconto com Histórico
from notify_utils import Price, get_discount_info
from datetime import datetime, timedelta
# Histórico de preços
precos = [
Price(value=1299.90, date=datetime.now() - timedelta(days=60)),
Price(value=1199.90, date=datetime.now() - timedelta(days=30)),
]
# Calcular desconto real baseado no histórico
info = get_discount_info(
current_price=899.90,
price_history=precos,
period_days=30
)
print(f"Desconto real: {info.discount_percentage:.2f}%")
print(f"É desconto real? {info.is_real_discount}")
Análise de Tendência
from notify_utils import calculate_price_trend
trend = calculate_price_trend(precos, days=30)
print(f"Direção: {trend.direction}") # 'increasing', 'decreasing', 'stable'
print(f"Mudança: {trend.change_percentage:.2f}%")
print(f"Confiança: {trend.confidence}")
Validação de Preços
from notify_utils import PriceHistory, Price, PriceAdditionStrategy
history = PriceHistory(product_id="PROD123", prices=precos)
# Validar antes de adicionar
novo_preco = Price(value=899.90, date=datetime.now())
result = history.add_price(
novo_preco,
strategy=PriceAdditionStrategy.SMART
)
if result.action.value == "added":
print(f"Preço adicionado: R$ {result.affected_price.value:.2f}")
Notificações Discord
from notify_utils import Product, DiscordEmbedBuilder
produto = Product(
product_id="PROD123",
name="Notebook Gamer",
url="https://loja.com/produto"
)
builder = DiscordEmbedBuilder()
embed = builder.build_embed(produto, info, precos)
# Enviar via webhook Discord
Documentação Completa
Para mais detalhes, consulte o arquivo CLAUDE.md na raiz do projeto.
Requisitos
- Python >= 3.12
- discord-webhook >= 1.4.1 (opcional, apenas para notificações)
Licença
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file notify_utils-0.0.1.tar.gz.
File metadata
- Download URL: notify_utils-0.0.1.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a01df266cf862c7197c8a3f1271fcd599055457d06b38309e9fdbd34a66e9cb3
|
|
| MD5 |
e90d12a76a76b6f9c0149744d4753750
|
|
| BLAKE2b-256 |
edb628bb02308768feef812d9bd32c56159a6c22f607e03baeb5eb488a4b0935
|
File details
Details for the file notify_utils-0.0.1-py3-none-any.whl.
File metadata
- Download URL: notify_utils-0.0.1-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85dbb5ea04380b1e5a0e104d68bf0d2e917291511282440f86d2088b806ac5a8
|
|
| MD5 |
d815a31f2e4490f441e33aa18783d695
|
|
| BLAKE2b-256 |
7d02952d5db3bcb430a1b332be247241bebdecb530474e3beb957c533d677083
|