# leaguepedia_parser - Enhanced Edition
[](https://github.com/psf/black)
[](https://www.python.org/downloads/)
[](#features)
A **comprehensive** Leaguepedia parser providing easy access to League of Legends esports data. This enhanced fork extends the original with extensive coverage of standings, champions, items, and roster changes.
## ✨ Features
**Enhanced beyond the original with:**
- 🏆 **Tournament Standings** - Team rankings, win rates, series/game statistics
- 🎮 **Champion Data** - All champions with attributes, stats, and filtering
- ⚔️ **Items Database** - Complete item catalog with stats and tier filtering
- 👥 **Roster Changes** - Player transfers, team history, and timeline tracking
- 👤 **Player Profiles** - Comprehensive player information with country, birth dates, status
- 🏟️ **Tournament Rosters** - Team compositions for specific tournaments
**Plus all original functionality:**
- 🎯 Games & match details with picks/bans
- 🏢 Regional & tournament data
- 🖼️ Team assets (logos, thumbnails)
## Install
```bash
# With pip
pip install leaguepedia_parser_thomasbarrepitous
# With Poetry
poetry add leaguepedia_parser_thomasbarrepitous
# Quick verification
python -c "import leaguepedia_parser_thomasbarrepitous as lp; print('✅ Import successful')"
```
## Demo

## Usage
```python
import leaguepedia_parser_thomasbarrepitous as lp
# Games & Tournaments
regions = lp.get_regions()
# ['Korea', 'Europe', 'North America', 'China', ...]
tournaments = lp.get_tournaments("Korea", year=2020)
# [{'name': 'LCK/2020 Season/Spring Season', 'region': 'Korea'}, ...]
games = lp.get_games("LCK/2020 Season/Spring Season")
# [Game(team1='T1', team2='GenG', winner='T1', date='2020-02-05'), ...]
# Teams & Assets
logo_url = lp.get_team_logo('T1')
# 'https://static.wikia.nocookie.net/lolesports_gamepedia_en/images/t1_logo.png'
team_assets = lp.get_all_team_assets('T1')
# TeamAssets(logo='...', thumbnail='...', team_name='T1')
active_players = lp.get_active_players('T1')
# [TeamPlayer(name='Faker', role='Mid'), TeamPlayer(name='Gumayusi', role='Bot'), ...]
# Players
player = lp.get_player_by_name('Faker')
# PlayerInfo(name='Faker', country='South Korea', birth_date='1996-05-07', status=ACTIVE)
# Tournament Rosters
rosters = lp.get_tournament_rosters('T1', 'LCK/2024 Season/Summer Season')
# [{'Team': 'T1', 'Tournament': 'LCK/2024...', 'Player': 'Faker', 'Role': 'Mid'}, ...]
# Standings
standings = lp.get_tournament_standings("LCK/2024 Season/Summer Season")
# [Standing(team='T1', place=1, win_series=16, loss_series=2), ...]
# Champions
champions = lp.get_champions_by_attributes("Marksman")
# [Champion(name='Jinx', attributes='Marksman', attack_range=525), ...]
champion = lp.get_champion_by_name("Jinx")
# Champion(name='Jinx', attributes='Marksman', attack_range=525, is_ranged=True)
# Items
ad_items = lp.get_ad_items()
# [Item(name='Infinity Edge', ad=70, total_cost=3400), ...]
crit_items = lp.search_items_by_stat("Crit")
# [Item(name='Infinity Edge', crit=20), Item(name='Stormrazor', crit=15), ...]
infinity_edge = lp.get_item_by_name("Infinity Edge")
# Item(name='Infinity Edge', ad=70, crit=20, total_cost=3400, provides_ad=True)
# Roster Changes
roster_changes = lp.get_team_roster_changes("T1")
# [RosterChange(player='Faker', direction='Join', team='T1', date=2013-01-01), ...]
recent_moves = lp.get_recent_roster_changes(days=30)
# [RosterChange(player='Caps', direction='Leave', team='G2', date=2024-11-15), ...]
```
## 🎯 Common Use Cases
```python
# Tournament Analysis
standings = lp.get_tournament_standings("LCK/2024 Season/Summer Season")
top_team = standings[0].team
roster = lp.get_tournament_rosters(top_team, "LCK/2024 Season/Summer Season")
# Player Research
player = lp.get_player_by_name("Faker")
player_history = lp.get_player_roster_changes("Faker")
# Meta Research
marksmen = lp.get_champions_by_attributes("Marksman")
crit_items = lp.search_items_by_stat("Crit")
# Transfer Tracking
recent_moves = lp.get_recent_roster_changes(days=7)
team_additions = lp.get_roster_additions(team="T1")
```
## 📋 Data Types
| Module | Returns | Key Properties |
|--------|---------|----------------|
| **Games** | `Game`, `GameDetails` | teams, winner, date, picks_bans |
| **Teams** | `TeamPlayer`, `TeamAssets` | name, role, logo, thumbnail |
| **Players** | `PlayerInfo` | name, country, birth_date, status |
| **Tournaments** | `Dict` (rosters) | team, tournament, player, role |
| **Standings** | `Standing` | team, place, win_rate, total_games |
| **Champions** | `Champion` | name, attributes, is_ranged, attack_range |
| **Items** | `Item` | name, tier, provides_ad/ap, total_cost |
| **Roster Changes** | `RosterChange` | player, team, direction, is_addition |
## 📚 More Information
- **Examples**: Comprehensive usage examples in the [`tests` folder](https://github.com/thomasbarrepitous/leaguepedia_parser/tree/master/tests)
- **Development**: See [CLAUDE.md](CLAUDE.md) for development commands and setup
- **Original**: Based on [mrtolkien/leaguepedia_parser](https://github.com/mrtolkien/leaguepedia_parser)
- **Rate Limits**: Leaguepedia API has rate limits - the library handles basic throttling
## 🤝 Contributing
This enhanced fork welcomes contributions! Areas of interest:
- Additional data parsers (bans, statistics, etc.)
- Performance optimizations
- Better error handling and retry logic
- Documentation improvements
Raw data
{
"_id": null,
"home_page": "https://github.com/thomasbarrepitous/leaguepedia_parser",
"name": "leaguepedia_parser_thomasbarrepitous",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "leaguepedia, league-of-legends, esports, data-parser, gaming, riot-games, tournaments, statistics",
"author": "ThomasBP",
"author_email": "barrepitousthomas@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/2a/59/1a2b988c9192ad24f0286382a498e2dae80ea73a3c20c4e4c93257c1cc81/leaguepedia_parser_thomasbarrepitous-0.0.6.tar.gz",
"platform": null,
"description": "# leaguepedia_parser - Enhanced Edition\n\n[](https://github.com/psf/black)\n[](https://www.python.org/downloads/)\n[](#features)\n\nA **comprehensive** Leaguepedia parser providing easy access to League of Legends esports data. This enhanced fork extends the original with extensive coverage of standings, champions, items, and roster changes.\n\n## \u2728 Features\n\n**Enhanced beyond the original with:**\n- \ud83c\udfc6 **Tournament Standings** - Team rankings, win rates, series/game statistics\n- \ud83c\udfae **Champion Data** - All champions with attributes, stats, and filtering\n- \u2694\ufe0f **Items Database** - Complete item catalog with stats and tier filtering \n- \ud83d\udc65 **Roster Changes** - Player transfers, team history, and timeline tracking\n- \ud83d\udc64 **Player Profiles** - Comprehensive player information with country, birth dates, status\n- \ud83c\udfdf\ufe0f **Tournament Rosters** - Team compositions for specific tournaments\n\n**Plus all original functionality:**\n- \ud83c\udfaf Games & match details with picks/bans\n- \ud83c\udfe2 Regional & tournament data\n- \ud83d\uddbc\ufe0f Team assets (logos, thumbnails)\n\n## Install\n\n```bash\n# With pip\npip install leaguepedia_parser_thomasbarrepitous\n\n# With Poetry\npoetry add leaguepedia_parser_thomasbarrepitous\n\n# Quick verification\npython -c \"import leaguepedia_parser_thomasbarrepitous as lp; print('\u2705 Import successful')\"\n```\n\n## Demo\n\n\n\n## Usage\n\n```python\nimport leaguepedia_parser_thomasbarrepitous as lp\n\n# Games & Tournaments\nregions = lp.get_regions()\n# ['Korea', 'Europe', 'North America', 'China', ...]\n\ntournaments = lp.get_tournaments(\"Korea\", year=2020)\n# [{'name': 'LCK/2020 Season/Spring Season', 'region': 'Korea'}, ...]\n\ngames = lp.get_games(\"LCK/2020 Season/Spring Season\")\n# [Game(team1='T1', team2='GenG', winner='T1', date='2020-02-05'), ...]\n\n# Teams & Assets\nlogo_url = lp.get_team_logo('T1')\n# 'https://static.wikia.nocookie.net/lolesports_gamepedia_en/images/t1_logo.png'\n\nteam_assets = lp.get_all_team_assets('T1')\n# TeamAssets(logo='...', thumbnail='...', team_name='T1')\n\nactive_players = lp.get_active_players('T1')\n# [TeamPlayer(name='Faker', role='Mid'), TeamPlayer(name='Gumayusi', role='Bot'), ...]\n\n# Players\nplayer = lp.get_player_by_name('Faker')\n# PlayerInfo(name='Faker', country='South Korea', birth_date='1996-05-07', status=ACTIVE)\n\n# Tournament Rosters\nrosters = lp.get_tournament_rosters('T1', 'LCK/2024 Season/Summer Season')\n# [{'Team': 'T1', 'Tournament': 'LCK/2024...', 'Player': 'Faker', 'Role': 'Mid'}, ...]\n\n# Standings\nstandings = lp.get_tournament_standings(\"LCK/2024 Season/Summer Season\")\n# [Standing(team='T1', place=1, win_series=16, loss_series=2), ...]\n\n# Champions\nchampions = lp.get_champions_by_attributes(\"Marksman\")\n# [Champion(name='Jinx', attributes='Marksman', attack_range=525), ...]\n\nchampion = lp.get_champion_by_name(\"Jinx\")\n# Champion(name='Jinx', attributes='Marksman', attack_range=525, is_ranged=True)\n\n# Items\nad_items = lp.get_ad_items()\n# [Item(name='Infinity Edge', ad=70, total_cost=3400), ...]\n\ncrit_items = lp.search_items_by_stat(\"Crit\")\n# [Item(name='Infinity Edge', crit=20), Item(name='Stormrazor', crit=15), ...]\n\ninfinity_edge = lp.get_item_by_name(\"Infinity Edge\")\n# Item(name='Infinity Edge', ad=70, crit=20, total_cost=3400, provides_ad=True)\n\n# Roster Changes\nroster_changes = lp.get_team_roster_changes(\"T1\")\n# [RosterChange(player='Faker', direction='Join', team='T1', date=2013-01-01), ...]\n\nrecent_moves = lp.get_recent_roster_changes(days=30)\n# [RosterChange(player='Caps', direction='Leave', team='G2', date=2024-11-15), ...]\n```\n\n## \ud83c\udfaf Common Use Cases\n\n```python\n# Tournament Analysis\nstandings = lp.get_tournament_standings(\"LCK/2024 Season/Summer Season\")\ntop_team = standings[0].team\nroster = lp.get_tournament_rosters(top_team, \"LCK/2024 Season/Summer Season\")\n\n# Player Research\nplayer = lp.get_player_by_name(\"Faker\")\nplayer_history = lp.get_player_roster_changes(\"Faker\")\n\n# Meta Research \nmarksmen = lp.get_champions_by_attributes(\"Marksman\")\ncrit_items = lp.search_items_by_stat(\"Crit\")\n\n# Transfer Tracking\nrecent_moves = lp.get_recent_roster_changes(days=7)\nteam_additions = lp.get_roster_additions(team=\"T1\")\n```\n\n## \ud83d\udccb Data Types\n\n| Module | Returns | Key Properties |\n|--------|---------|----------------|\n| **Games** | `Game`, `GameDetails` | teams, winner, date, picks_bans |\n| **Teams** | `TeamPlayer`, `TeamAssets` | name, role, logo, thumbnail |\n| **Players** | `PlayerInfo` | name, country, birth_date, status |\n| **Tournaments** | `Dict` (rosters) | team, tournament, player, role |\n| **Standings** | `Standing` | team, place, win_rate, total_games |\n| **Champions** | `Champion` | name, attributes, is_ranged, attack_range |\n| **Items** | `Item` | name, tier, provides_ad/ap, total_cost |\n| **Roster Changes** | `RosterChange` | player, team, direction, is_addition |\n\n## \ud83d\udcda More Information\n\n- **Examples**: Comprehensive usage examples in the [`tests` folder](https://github.com/thomasbarrepitous/leaguepedia_parser/tree/master/tests)\n- **Development**: See [CLAUDE.md](CLAUDE.md) for development commands and setup\n- **Original**: Based on [mrtolkien/leaguepedia_parser](https://github.com/mrtolkien/leaguepedia_parser)\n- **Rate Limits**: Leaguepedia API has rate limits - the library handles basic throttling\n\n## \ud83e\udd1d Contributing\n\nThis enhanced fork welcomes contributions! Areas of interest:\n- Additional data parsers (bans, statistics, etc.)\n- Performance optimizations \n- Better error handling and retry logic\n- Documentation improvements\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Comprehensive Leaguepedia parser for League of Legends esports data with enhanced standings, champions, items, and roster tracking",
"version": "0.0.6",
"project_urls": {
"Documentation": "https://github.com/thomasbarrepitous/leaguepedia_parser#readme",
"Homepage": "https://github.com/thomasbarrepitous/leaguepedia_parser",
"Repository": "https://github.com/thomasbarrepitous/leaguepedia_parser"
},
"split_keywords": [
"leaguepedia",
" league-of-legends",
" esports",
" data-parser",
" gaming",
" riot-games",
" tournaments",
" statistics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2655b0076417084a82871418a834f04d6b02b5af0b01fc5c31f1d47a7aeb6b06",
"md5": "1aebd599ed8a65435ebcb00a1fa1a78f",
"sha256": "a03bd8215883043999221a24bacb16e63c261cfcab24aa6eb5a211d4fb0e0f43"
},
"downloads": -1,
"filename": "leaguepedia_parser_thomasbarrepitous-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1aebd599ed8a65435ebcb00a1fa1a78f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 32592,
"upload_time": "2025-10-06T16:37:03",
"upload_time_iso_8601": "2025-10-06T16:37:03.872426Z",
"url": "https://files.pythonhosted.org/packages/26/55/b0076417084a82871418a834f04d6b02b5af0b01fc5c31f1d47a7aeb6b06/leaguepedia_parser_thomasbarrepitous-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2a591a2b988c9192ad24f0286382a498e2dae80ea73a3c20c4e4c93257c1cc81",
"md5": "dacc709f84d2e4e9089147fbc97b308a",
"sha256": "11982b3216a03c8ef463634bd0c7d3d66ed3bc66cb7c7359cbb1394d1005dcb0"
},
"downloads": -1,
"filename": "leaguepedia_parser_thomasbarrepitous-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "dacc709f84d2e4e9089147fbc97b308a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 25534,
"upload_time": "2025-10-06T16:37:04",
"upload_time_iso_8601": "2025-10-06T16:37:04.830452Z",
"url": "https://files.pythonhosted.org/packages/2a/59/1a2b988c9192ad24f0286382a498e2dae80ea73a3c20c4e4c93257c1cc81/leaguepedia_parser_thomasbarrepitous-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-06 16:37:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thomasbarrepitous",
"github_project": "leaguepedia_parser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "leaguepedia_parser_thomasbarrepitous"
}