A local Pokemon data repository/Pokedex with fast offline access
Project description
LocalDex
A fast, offline-first Python library for Pokemon data access. LocalDex provides comprehensive Pokemon information without requiring network requests.
Features
- Offline Access: All data stored locally - no network requests required
- Fast Lookups: Optimized caching and search capabilities
- Comprehensive Data: Pokemon, moves, abilities, and items
- CLI Interface: Command-line access to all data
- Type Hints: Full type support for better development experience
- Stat Calculations: Built-in stat calculation methods
Installation
pip install localdex
Quick Start
from localdex import LocalDex
# Initialize the dex
dex = LocalDex()
# Get Pokemon by name or ID
pikachu = dex.get_pokemon("pikachu")
charizard = dex.get_pokemon_by_id(6)
# Get moves and abilities
thunderbolt = dex.get_move("thunderbolt")
lightning_rod = dex.get_ability("lightning-rod")
# Search Pokemon
fire_types = dex.search_pokemon(type="fire")
fast_pokemon = dex.search_pokemon(min_speed=120)
legendary_fire = dex.search_pokemon(type="fire", is_legendary=True)
# Get all data
all_pokemon = dex.get_all_pokemon()
all_moves = dex.get_all_moves()
CLI Usage
# Get Pokemon information
localdex pokemon pikachu
localdex pokemon 25
# Search Pokemon
localdex search --type Fire --generation 1
localdex search --legendary --min-attack 100
# Get move and ability info
localdex move thunderbolt
localdex ability lightningrod
# List data
localdex list-pokemon --generation 1
localdex list-moves --type Electric
# Export data
localdex export --format json --output pokemon_data.json
# Run demo
localdex demo
API Reference
Core Methods
get_pokemon(name_or_id)- Get Pokemon by name or IDget_pokemon_by_id(id)- Get Pokemon by IDget_pokemon_by_name(name)- Get Pokemon by nameget_move(name)- Get move by nameget_ability(name)- Get ability by nameget_item(name)- Get item by namesearch_pokemon(**filters)- Search Pokemon with filtersget_all_pokemon()- Get all Pokemonget_all_moves()- Get all movesget_all_abilities()- Get all abilitiesget_all_items()- Get all items
Search Filters
# Available filters for search_pokemon()
dex.search_pokemon(
type="Fire", # Pokemon type
generation=1, # Generation number
is_legendary=True, # Legendary Pokemon
is_mythical=True, # Mythical Pokemon
min_attack=100, # Minimum attack stat
max_speed=50, # Maximum speed stat
name_contains="char" # Name contains text
)
Data Models
# Pokemon model
pokemon = dex.get_pokemon("pikachu")
print(f"{pokemon.name} - {pokemon.types}")
print(f"HP: {pokemon.base_stats.hp}")
print(f"Attack: {pokemon.base_stats.attack}")
# Move model
move = dex.get_move("thunderbolt")
print(f"{move.name} - Power: {move.base_power}, Type: {move.type}")
# Ability model
ability = dex.get_ability("lightning-rod")
print(f"{ability.name} - {ability.description}")
Stat Calculations
LocalDex includes methods for calculating Pokemon stats:
# Calculate stats with IVs, EVs, and level
hp = dex.get_hp_stat_from_species("pikachu", iv=31, ev=252, level=100)
attack = dex.get_attack_stat_from_species("pikachu", iv=31, ev=252, level=100)
# Generic stat calculation
hp = dex.calculate_hp(base=35, iv=31, ev=252, level=100)
attack = dex.calculate_other_stat(base=55, iv=31, ev=252, level=100, nature_modifier=1.1)
License
MIT License - see LICENSE file for details.
Data Sources
Data sourced from Pokemon Showdown and PokeAPI.
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 localdex-0.3.0.tar.gz.
File metadata
- Download URL: localdex-0.3.0.tar.gz
- Upload date:
- Size: 617.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dfcce668f5d4e1044df35e9c20df02ff61d47fc91732f19aac1a2f7090cd37d
|
|
| MD5 |
7e17bbd546ba334a9e169909d5622868
|
|
| BLAKE2b-256 |
43fff0b16dc579cd0b5c42475264c6958dc9a7b8b9da71f07c639dad9a085dcc
|
File details
Details for the file localdex-0.3.0-py3-none-any.whl.
File metadata
- Download URL: localdex-0.3.0-py3-none-any.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e629e78908b89a844622e0c54f0d19522c6d29886add145a631700c38e0dfa2d
|
|
| MD5 |
f706dd48a6a672db224e78f0fa0b7370
|
|
| BLAKE2b-256 |
9e75be6ffcbbf08bbf32c48f42a6955f35c757b2acdf55269d8ff5c5840cff47
|