Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notify_utils-0.0.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notify_utils-0.0.1-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

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

Hashes for notify_utils-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a01df266cf862c7197c8a3f1271fcd599055457d06b38309e9fdbd34a66e9cb3
MD5 e90d12a76a76b6f9c0149744d4753750
BLAKE2b-256 edb628bb02308768feef812d9bd32c56159a6c22f607e03baeb5eb488a4b0935

See more details on using hashes here.

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

Hashes for notify_utils-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85dbb5ea04380b1e5a0e104d68bf0d2e917291511282440f86d2088b806ac5a8
MD5 d815a31f2e4490f441e33aa18783d695
BLAKE2b-256 7d02952d5db3bcb430a1b332be247241bebdecb530474e3beb957c533d677083

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page