#!/usr/bin/env python3
import sys
import requests

if len(sys.argv) < 2:
    print("Uso: pip_busca <cadena>")
    sys.exit(1)

query = sys.argv[1].lower()
url = "https://pypi.org/simple/"

# Descarga en streaming (sin cargar todo en memoria)
resp = requests.get(url, stream=True)

if resp.status_code != 200:
    print("❌ Error al descargar índice de PyPI")
    sys.exit(1)

print(f"🔍 Buscando: {query}\n")

encontrados = 0
max_resultados = 50  # configurable

for line in resp.iter_lines(decode_unicode=True):
    if not line:
        continue
    # Las líneas tienen formato: <a href="...">Nombre</a>
    if "<a href=" in line.lower():
        nombre = line.split(">")[1].split("<")[0]
        if query in nombre.lower():
            print(f"📦 {nombre}")
            encontrados += 1
            if encontrados >= max_resultados:
                break

if encontrados == 0:
    print("❌ No se encontraron paquetes.")
