Zum Inhalt springen

Das Python SDK

TCGdex Hauptbild

Pypi VersionPypi DownloadsGithub SterneBuild StatusDiscord Link

Ein vollständig typisiertes Python SDK für die TCGdex API, mit dem Sie auf Daten des Pokémon Sammelkartenspiels sowohl asynchron als auch synchron zugreifen können.

from tcgdexsdk import TCGdex, Extension
# Init the SDK
tcgdex = TCGdex()
# Fetch a card in one line
card = await tcgdex.card.get("swsh3-136")
# Or use the sync version
card = tcgdex.card.getSync("swsh3-136")
print(f"Found: {card.name} ({card.localId}/{card.set.cardCount.total})")
  1. Installieren Sie das SDK mit pip:

    Terminal-Fenster
    pip install tcgdex-sdk
  2. Importieren und initialisieren:

    from tcgdexsdk import TCGdex, Language
    tcgdex = TCGdex() # Initialisierung mit Standardsprache (Englisch)
    # Initialisierung mit Sprache als String
    tcgdex = TCGdex("de")
    # Oder mit dem Language-Enum
    tcgdex = TCGdex(Language.DE)
  3. Anfragen stellen:

    # Asynchrone Verwendung
    card = await tcgdex.card.get("swsh3-136")
    # Synchrone Verwendung
    card = tcgdex.card.getSync("swsh3-136")
  • Typsicherheit: Alle Modelle sind vollständig typisiert für eine bessere IDE-Integration
  • Dual-API: Sowohl asynchrone als auch synchrone Schnittstellen
  • Flexible Abfragen: Leistungsstarker Query-Builder zum Filtern und Sortieren von Ergebnissen
  • Mehrsprachige Unterstützung: Zugriff auf Kartendaten in mehreren Sprachen
  • Umfassende Modelle: Detaillierte Datenmodelle für Karten, Sets, Serien und mehr
  • Bildzugriff: Direkter Zugriff auf Kartenbilder und Set-Symbole

Das SDK bietet spezialisierte Endpunkte für verschiedene Datentypen:

sdk = TCGdex()
# Basis-Kartenendpunkt
sdk.card # Vollständige Karteninformationen
# Sammlungsendpunkte
sdk.set # Kartensets (z.B. "Darkness Ablaze")
sdk.serie # Kartenserien (z.B. "Sword & Shield")
# Kartendaten-Endpunkte
sdk.rarity # Kartenseltenheiten
sdk.hp # HP-Werte
sdk.illustrator # Karten-Illustratoren
# Spielmechanik-Endpunkte
sdk.type # Pokémon-Typen
sdk.energyType # Energietypen
sdk.retreat # Rückzugskosten
sdk.stage # Entwicklungsstufen
# Kartendetail-Endpunkte
sdk.variant # Kartenvarianten (Holo, Reverse, usw.)
sdk.suffix # Kartensuffixe
sdk.regulationMark # Regulierungszeichen
sdk.dexId # Pokédex-IDs

Das SDK enthält einen leistungsstarken Query-Builder zum Filtern und Sortieren von Ergebnissen:

from tcgdexsdk import TCGdex, Query
sdk = TCGdex()
# Alle Karten mit bestimmtem Namen finden
furrets = await sdk.card.list(Query().equal("name", "Furret"))
# Karten mit 'ban' im Illustratornamen finden (Groß-/Kleinschreibung wird ignoriert)
ban_cards = await sdk.card.list(Query().contains("illustrator", "ban"))
# Pokémon mit hohem HP-Wert finden, nach HP sortiert
tanks = await sdk.card.list(
Query()
.greaterThan("hp", 200)
.sort("hp", "desc")
)
# Karten ohne Angriffe, aber mit Fähigkeiten finden
basics = await sdk.card.list(
Query()
.isNull("attacks")
.notNull("abilities")
)
# Seitenweise Anzeige
page2 = await sdk.card.list(
Query().paginate(page=2, itemsPerPage=20)
)

Das SDK unterstützt mehrere Sprachen für Kartendaten:

from tcgdexsdk import TCGdex, Language
# Mit String-Codes
en_sdk = TCGdex("en") # Englisch
fr_sdk = TCGdex("fr") # Französisch
de_sdk = TCGdex("de") # Deutsch
# Mit Enum für Typsicherheit
en_sdk = TCGdex(Language.EN) # Standardmäßig Englisch, wenn nicht festgelegt
# Sprache bei einer bestehenden Instanz ändern
sdk = TCGdex()
sdk.setLanguage(Language.DE)

Vollständige Liste der Sprachcodes

Karten, Sets und Serien enthalten oft Bilder, auf die zugegriffen werden kann:

from tcgdexsdk.enums import Quality, Extension
# Eine Karte abrufen
card = await sdk.card.get("swsh3-136")
# Bild-URL mit Qualität und Format abrufen
image_url = card.get_image_url(quality="high", extension="png")
# Oder mit Enums
image_url = card.get_image_url(Quality.HIGH, Extension.PNG)
# Bild direkt herunterladen
image_data = card.get_image(Quality.HIGH, Extension.PNG)
# Sets und Serien haben auch Bildmethoden
set_data = await sdk.set.get("swsh3")
logo_url = set_data.get_logo_url(Extension.PNG)
logo = set_data.get_logo(Extension.PNG)
symbol_url = set_data.get_symbol_url(Extension.WEBP)
symbol = set_data.get_symbol(Extension.WEBP)