Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
include LICENSE
include README.md
include pyproject.toml
recursive-exclude tests *
recursive-exclude docs *
recursive-exclude scripts *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
31 changes: 13 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ A comprehensive Python client library for the [ESO Logs API v2](https://www.esol

| Metric | Status |
|--------|--------|
| **Current Version** | 0.2.0-alpha |
| **Current Version** | 0.2.0a2 |
| **API Coverage** | ~83% (comprehensive analysis shows 6/8 API sections fully implemented) |
| **Development Stage** | Active development |
| **Documentation** | [Read the Docs](https://esologs-python.readthedocs.io/) |
Expand All @@ -44,25 +44,20 @@ A comprehensive Python client library for the [ESO Logs API v2](https://www.esol

## Installation

**Note**: This package is currently in development and not yet published to PyPI.

### Current Installation Method

```bash
# Clone the repository
git clone https://github.com/knowlen/esologs-python.git
cd esologs-python
# Install from PyPI (recommended)
pip install esologs-python

# Basic installation
pip install --upgrade pip
pip install -e .
# For development or latest features
pip install git+https://github.com/knowlen/esologs-python.git@main
```

### Development Installation

For development with testing, linting, and pre-commit hooks:
```bash
# Development installation
# Clone for development
git clone https://github.com/knowlen/esologs-python.git
cd esologs-python
pip install -e ".[dev]"
```

Expand Down Expand Up @@ -95,7 +90,7 @@ For comprehensive documentation, visit [esologs-python.readthedocs.io](https://e
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def main():
# Get authentication token
Expand Down Expand Up @@ -128,7 +123,7 @@ asyncio.run(main())
### Authentication Only

```python
from access_token import get_access_token
from esologs.auth import get_access_token

# Using environment variables
token = get_access_token()
Expand All @@ -146,7 +141,7 @@ token = get_access_token(
import asyncio
from esologs.client import Client
from esologs.enums import CharacterRankingMetricType, RoleType
from access_token import get_access_token
from esologs.auth import get_access_token

async def main():
token = get_access_token()
Expand Down Expand Up @@ -186,7 +181,7 @@ asyncio.run(main())
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def main():
token = get_access_token()
Expand Down Expand Up @@ -315,6 +310,7 @@ esologs-python/
├── esologs/ # Main package
│ ├── client.py # Main client implementation
│ ├── async_base_client.py # Base async GraphQL client
│ ├── auth.py # OAuth2 authentication module
│ ├── exceptions.py # Custom exceptions
│ ├── validators.py # Parameter validation utilities
│ └── get_*.py # Generated GraphQL query modules
Expand All @@ -324,7 +320,6 @@ esologs-python/
│ ├── docs/ # Documentation tests (98 tests)
│ └── sanity/ # Sanity tests (19 tests)
├── docs/ # Documentation source
├── access_token.py # OAuth2 authentication
├── schema.graphql # GraphQL schema
├── queries.graphql # GraphQL queries
├── pyproject.toml # Project configuration
Expand Down
14 changes: 7 additions & 7 deletions docs/api-reference/character-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Enables the retrieval of single characters or filtered collections of characters
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_character_profile():
token = get_access_token()
Expand Down Expand Up @@ -99,7 +99,7 @@ Guild Rank: 0
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_character_recent_reports():
token = get_access_token()
Expand Down Expand Up @@ -151,7 +151,7 @@ Showing 5 reports:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_character_encounter_ranking():
token = get_access_token()
Expand Down Expand Up @@ -213,7 +213,7 @@ Available data: ['bestAmount', 'medianPerformance', 'averagePerformance', 'total
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_character_encounter_rankings():
token = get_access_token()
Expand Down Expand Up @@ -285,7 +285,7 @@ Rank percentile: 68.0%
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_character_zone_rankings():
token = get_access_token()
Expand Down Expand Up @@ -324,7 +324,7 @@ Available metrics: ['bestPerformanceAverage', 'medianPerformanceAverage', 'diffi
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def analyze_character(character_id: int):
"""Complete character analysis including profile and recent activity."""
Expand Down Expand Up @@ -365,7 +365,7 @@ Recent activity: 286 reports
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def track_character_performance(character_id: int, encounter_id: int):
"""Track character performance for a specific encounter."""
Expand Down
26 changes: 13 additions & 13 deletions docs/api-reference/game-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Access collections of data such as NPCs, classes, abilities, items, maps, etc. G
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_all_abilities():
token = get_access_token()
Expand Down Expand Up @@ -98,7 +98,7 @@ except GraphQLClientHttpError as e:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_ability_details():
token = get_access_token()
Expand Down Expand Up @@ -145,7 +145,7 @@ ID: 2
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def list_character_classes():
token = get_access_token()
Expand Down Expand Up @@ -196,7 +196,7 @@ Available character classes:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_class_details():
token = get_access_token()
Expand Down Expand Up @@ -240,7 +240,7 @@ Class: Dragonknight
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def browse_items():
token = get_access_token()
Expand Down Expand Up @@ -290,7 +290,7 @@ Found 3 items
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_item_details():
token = get_access_token()
Expand Down Expand Up @@ -342,7 +342,7 @@ ID: 3
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def list_npcs():
token = get_access_token()
Expand Down Expand Up @@ -392,7 +392,7 @@ Found 5 NPCs
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_npc_details():
token = get_access_token()
Expand Down Expand Up @@ -440,7 +440,7 @@ ID: 1
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def list_maps():
token = get_access_token()
Expand Down Expand Up @@ -490,7 +490,7 @@ Found 100 maps (first page)
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_map_details():
token = get_access_token()
Expand Down Expand Up @@ -536,7 +536,7 @@ ID: 1
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def list_factions():
token = get_access_token()
Expand Down Expand Up @@ -572,7 +572,7 @@ Efficiently collect and store item information for analysis:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def build_item_database():
token = get_access_token()
Expand Down Expand Up @@ -646,7 +646,7 @@ async def respectful_bulk_operation():
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def monitor_usage():
token = get_access_token()
Expand Down
12 changes: 6 additions & 6 deletions docs/api-reference/guild-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Enables the retrieval of single guilds or filtered collections of guilds. Guild
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_guild_info():
token = get_access_token()
Expand Down Expand Up @@ -88,7 +88,7 @@ Region: North America
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_guild_reports():
token = get_access_token()
Expand Down Expand Up @@ -139,7 +139,7 @@ Guild-related filtering is also available in the main search methods:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def search_guild_reports():
token = get_access_token()
Expand Down Expand Up @@ -178,7 +178,7 @@ Track guild performance over time:
import asyncio
from datetime import datetime, timedelta
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def analyze_guild_performance():
token = get_access_token()
Expand Down Expand Up @@ -236,7 +236,7 @@ Monitor guild member participation using report rankings data:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def track_member_activity():
token = get_access_token()
Expand Down Expand Up @@ -340,7 +340,7 @@ Unlike some APIs that throw exceptions for missing data, guild methods return `N

```python
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def handle_missing_guild():
token = get_access_token()
Expand Down
14 changes: 7 additions & 7 deletions docs/api-reference/report-analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Access detailed (behavioral) combat log data including events, performance graph
import asyncio
from esologs.client import Client
from esologs.enums import EventDataType
from access_token import get_access_token
from esologs.auth import get_access_token

async def analyze_report_events():
token = get_access_token()
Expand Down Expand Up @@ -147,7 +147,7 @@ More data available after: 264591.0
import asyncio
from esologs.client import Client
from esologs.enums import GraphDataType
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_damage_graph():
token = get_access_token()
Expand Down Expand Up @@ -230,7 +230,7 @@ Data points: 240
import asyncio
from esologs.client import Client
from esologs.enums import TableDataType
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_damage_table():
token = get_access_token()
Expand Down Expand Up @@ -292,7 +292,7 @@ Number of players: 10
import asyncio
from esologs.client import Client
from esologs.enums import ReportRankingMetricType
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_dps_rankings():
token = get_access_token()
Expand Down Expand Up @@ -360,7 +360,7 @@ Top DPS Players:
```python
import asyncio
from esologs.client import Client
from access_token import get_access_token
from esologs.auth import get_access_token

async def get_player_performance():
token = get_access_token()
Expand Down Expand Up @@ -433,7 +433,7 @@ Combine different analysis methods for comprehensive performance review:
import asyncio
from esologs.client import Client
from esologs.enums import GraphDataType, TableDataType, ReportRankingMetricType
from access_token import get_access_token
from esologs.auth import get_access_token

async def comprehensive_analysis():
token = get_access_token()
Expand Down Expand Up @@ -509,7 +509,7 @@ Analyze specific phases of boss encounters:
import asyncio
from esologs.client import Client
from esologs.enums import EventDataType, GraphDataType
from access_token import get_access_token
from esologs.auth import get_access_token

async def analyze_encounter_phase():
token = get_access_token()
Expand Down
Loading
Loading