Librería para leer y consultar estadísticas de Pokémon desde archivos CSV
Project description
Pokemon Stats Reader
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 grupoNone: 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 grupoNone: 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 huevocantidad_pokemon: Número de Pokémon en el grupoaltura_media: Altura promedio del grupopeso_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:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - 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:
- Abre un issue
- Contacta al autor: tu.email@example.com
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
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 pokemon_stats_reader-0.1.1.tar.gz.
File metadata
- Download URL: pokemon_stats_reader-0.1.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43497c62dc9d03220c642f6c23239693e09926b2a557ba516c20a09aa3bc4e51
|
|
| MD5 |
22b02e5e776ebebca7c0b92df5e45928
|
|
| BLAKE2b-256 |
3add310c1e32b972a0603fecece82e0eb0e40424686236b1a2388b92d88294b4
|
File details
Details for the file pokemon_stats_reader-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pokemon_stats_reader-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b8f5822829cd0ca27a4565af83d4bafc30357b3c02e2af42449b7298541427f
|
|
| MD5 |
6f75010ae4f4cfe521ee9a3e87eae9a6
|
|
| BLAKE2b-256 |
d468eb5451863f3a75d7aec4ec381e64262c7aca4469b81a19676b8fb1679ea5
|