Skip to main content

Librería para leer y consultar estadísticas de Pokémon desde archivos CSV

Project description

Pokemon Stats Reader

PyPI version Python Versions License: MIT

Librería Python para leer y consultar estadísticas de Pokémon desde archivos CSV.

Características

  • Lectura eficiente de estadísticas desde CSV
  • Caché integrado para optimizar consultas repetidas
  • API simple e intuitiva
  • Tres métodos principales para consultar datos
  • Powered by pandas para procesamiento eficiente

Instalación

pip install pokemon-stats-reader

Uso Rápido

from pokemon_stats import PokemonStatsReader

# Crear instancia del lector
reader = PokemonStatsReader("estadisticas_grupos.csv")

# 1. Obtener lista de todos los grupos
grupos = reader.get_grupos_pokemon()
print(f"Grupos disponibles: {grupos}")

# 2. Obtener altura media de un grupo
altura = reader.get_altura_media_grupo("monster")
print(f"Altura media del grupo 'monster': {altura}")

# 3. Obtener peso medio de un grupo
peso = reader.get_peso_medio_grupo("water1")
print(f"Peso medio del grupo 'water1': {peso}")

API Reference

PokemonStatsReader(csv_path: str)

Inicializa el lector de estadísticas.

Parámetros:

  • csv_path (str): Ruta al archivo CSV con estadísticas

get_grupos_pokemon() -> List[str]

Obtiene la lista de todos los grupos de Pokémon.

Retorna:

  • List[str]: Lista con nombres de todos los grupos

Ejemplo:

grupos = reader.get_grupos_pokemon()
# ['monster', 'water1', 'bug', 'dragon', ...]

get_altura_media_grupo(grupo: str) -> Optional[float]

Obtiene la altura media de un grupo específico.

Parámetros:

  • grupo (str): Nombre del grupo

Retorna:

  • float: Altura media del grupo
  • None: Si el grupo no existe

Ejemplo:

altura = reader.get_altura_media_grupo("monster")
# 12.5

get_peso_medio_grupo(grupo: str) -> Optional[float]

Obtiene el peso medio de un grupo específico.

Parámetros:

  • grupo (str): Nombre del grupo

Retorna:

  • float: Peso medio del grupo
  • None: Si el grupo no existe

Ejemplo:

peso = reader.get_peso_medio_grupo("water1")
# 425.7

Formato del CSV

El archivo CSV debe tener el siguiente formato:

grupo,cantidad_pokemon,altura_media,peso_medio
monster,45,12.5,850.3
water1,38,9.2,425.7
bug,28,6.8,145.2

Columnas requeridas:

  • grupo: Nombre del grupo de huevo
  • cantidad_pokemon: Número de Pokémon en el grupo
  • altura_media: Altura promedio del grupo
  • peso_medio: Peso promedio del grupo

Ejemplo Completo

from pokemon_stats import PokemonStatsReader

# Inicializar lector
reader = PokemonStatsReader("estadisticas_grupos.csv")

# Obtener y mostrar todos los grupos
print("=" * 60)
print("GRUPOS DE POKÉMON DISPONIBLES")
print("=" * 60)

grupos = reader.get_grupos_pokemon()
for grupo in grupos:
    altura = reader.get_altura_media_grupo(grupo)
    peso = reader.get_peso_medio_grupo(grupo)
    print(f"\n{grupo.upper()}")
    print(f"  Altura media: {altura}")
    print(f"  Peso medio: {peso}")

print("=" * 60)

Características Avanzadas

Caché Automático

La librería implementa caché automático para optimizar consultas repetidas:

reader = PokemonStatsReader("datos.csv")

# Primera llamada: lee del CSV
altura1 = reader.get_altura_media_grupo("monster")  # ~10ms

# Segunda llamada: usa caché
altura2 = reader.get_altura_media_grupo("monster")  # ~0.1ms

Obtener Todas las Estadísticas

# Obtener DataFrame completo
df = reader.get_all_stats()
print(df)

# Obtener estadísticas de un grupo específico
stats = reader.get_grupo_stats("monster")
print(stats)
# {'grupo': 'monster', 'cantidad_pokemon': 45, 'altura_media': 12.5, 'peso_medio': 850.3}

Requisitos

  • Python >= 3.7
  • pandas >= 2.0.0

Licencia

MIT License - ver archivo LICENSE para detalles.

Contribuir

Las contribuciones son bienvenidas! Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Testing

# Instalar dependencias de desarrollo
pip install pytest pytest-cov

# Ejecutar tests
pytest tests/

# Ejecutar tests con cobertura
pytest tests/ --cov=pokemon_stats --cov-report=html

Soporte

Si encuentras algún problema o tienes sugerencias:

Roadmap

  • Soporte para múltiples formatos (JSON, XML)
  • CLI para consultas desde terminal
  • Visualizaciones gráficas
  • Soporte async para archivos grandes

Autor

Tu Nombre - GitHub

Agradecimientos

  • Datos obtenidos de PokeAPI
  • Inspirado en la comunidad de Pokémon

¿Te gusta este proyecto? ⭐ Dale una estrella en GitHub!

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

pokemon_stats_reader-0.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

pokemon_stats_reader-0.1.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file pokemon_stats_reader-0.1.0.tar.gz.

File metadata

  • Download URL: pokemon_stats_reader-0.1.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for pokemon_stats_reader-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94be3972c4893a1e4b71ef0193ede4dd5700bea28a9df049cdf19037c95fd9d2
MD5 eff34002431f618158fc546460ede20c
BLAKE2b-256 3002dee1809eb678987e69905343740e752663418f4c6fda37cda6a769ac5a41

See more details on using hashes here.

File details

Details for the file pokemon_stats_reader-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pokemon_stats_reader-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f1b46eeb6e4ed750f0d2ddde48bd27551ffba38ee26c033827dabc25b3b0b47
MD5 041aa66e6696af9ad20f8bdd5a32a516
BLAKE2b-256 daee13b9ceab1cefe6759e743d451f7efcd2bd76f0667793996510d9bb950121

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