Metadata-Version: 2.4
Name: pokedev-sdk
Version: 0.1.0
Summary: Python SDK for validating and generating compliance-ready Pokémon ERC-721 token metadata.
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"

# pokedev-sdk

Python SDK for validating and generating compliance-ready Pokémon ERC-721 token metadata.

## Installation

```bash
pip install pokedev-sdk
```

Or for local development:
```bash
pip install -e ./pokedev-sdk-py
```

## Features

- **Metadata Schema Validation**: Ensure your metadata complies with OpenSea standard attributes.
- **Pokédev Standards Check**: Validates required traits (Species, Type, Rarity, Level, Stats) and checks boundary values.
- **Fluent Metadata Builder**: Easily generate compliant JSON/dictionary objects with typings using the builder pattern.

## Usage

### 1. Schema Metadata Validation

```python
from pokedev_sdk import validate_metadata

metadata = {
    "name": "Voltbeat #904",
    "description": "A bug-type firefly Pokémon wreathed in electric tail-light glow.",
    "image": "ipfs://QmVoltbeatGenesisSlabImageHash",
    "attributes": [
        { "trait_type": "Species", "value": "Voltbeat" },
        { "trait_type": "Type", "value": "Thunder" },
        { "trait_type": "Rarity", "value": "Epic" },
        { "trait_type": "Level", "value": 12 },
        { "trait_type": "XP", "value": 450 },
        { "trait_type": "Attack", "value": 92 },
        { "trait_type": "Defense", "value": 50 },
        { "trait_type": "Speed", "value": 115 },
        { "trait_type": "Intelligence", "value": 98 }
    ]
}

result = validate_metadata(metadata)
if result.is_valid:
    print("Metadata is compliant!")
else:
    print("Compliance Issues:")
    for issue in result.issues:
        print(f"[{issue.severity.upper()}] {issue.field}: {issue.message}")
```

### 2. Programmatically Generate Metadata

```python
from pokedev_sdk import PokemonMetadataBuilder

metadata = (
    PokemonMetadataBuilder()
    .set_name("Emberfang #119")
    .set_description("A fiery dragon-canid that specializes in rapid flame bursts.")
    .set_image("ipfs://QmEmberfangGenesisSlabHash")
    .set_base_stats("Emberfang", "Flame", "Rare")
    .set_stats(attack=85, defense=62, speed=90, intelligence=75)
    .build()
)
```
