38 lines
931 B
Python
38 lines
931 B
Python
#!/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.")
|