Skip to main content

Noyau métier pur et typé du projet Riftbound : cartes, decks, formats et validation statique de deck.

Project description

riftbound-core

Noyau métier pur et typé pour le jeu de cartes Riftbound : modèles de cartes et de decks, formats, règles de construction statiques, sérialisation et analyse simple — sans réseau, sans base de données et sans dépendance runtime externe.

Statut : release 0.1.1 (beta) — périmètre V1 livré (validation statique, sérialisation, primitives descriptives de jeu).

Installation

Python >=3.11 requis.

python -m pip install riftbound-core

Pour contribuer au dépôt :

git clone https://github.com/baobabgit/riftbound-core.git
cd riftbound-core
python -m pip install -e ".[dev]"

Périmètre

Inclus dans ce package :

  • modèles Card, Deck, formats et banlist ;
  • validation statique de deck (DeckValidator, codes d'erreur stables) ;
  • sérialisation JSON et decklist texte (riftbound-decklist/1) ;
  • analyse simple (courbe de coût, distributions) ;
  • factories de test (riftbound_core.testing).

Hors périmètre (packages futurs de l'écosystème) :

  • moteur de règles complet et résolution d'effets ;
  • API HTTP, persistance, interface graphique ;
  • IA de deckbuilding et simulation de parties.

Démarrage rapide

L'API racine expose uniquement __version__. Les symboles métier s'importent depuis leurs sous-modules.

import riftbound_core
from riftbound_core.cards.domain import Domain
from riftbound_core.testing.deck_factory import DeckFactory
from riftbound_core.validation.deck_validator import DeckValidator

print(riftbound_core.__version__)
print(Domain.FURY.french_label)  # Fureur

deck = DeckFactory.duel_legal()
result = DeckValidator().validate(deck)
if not result.is_valid:
    for issue in result.issues:
        print(issue.code, issue.message)

Exemples supplémentaires (cartes, formats, sérialisation) : voir la documentation développeur.

Documentation

Guides embarqués après installation PyPI :

from riftbound_core.docs import DECK_VALIDATION_DOC, read_doc

print(read_doc(DECK_VALIDATION_DOC))
Ressource Emplacement
Validation de deck src/riftbound_core/docs/deck_validation.md
Correspondance règles / codes src/riftbound_core/docs/rules_mapping.md
Changelog CHANGELOG.md
Cahier des charges V1 docs/riftbound-core/

Sur PyPI, les mêmes guides sont disponibles via riftbound_core.docs (voir ci-dessus). Les sources complètes du dépôt (backlogs, runs IA) restent sur GitHub.

Principes

  • Pur : aucun I/O réseau, aucune persistance, aucune IA embarquée.
  • Typé : mypy strict, marqueur PEP 561 py.typed.
  • Testé : couverture ≥ 90 %, CI sur chaque PR et release.
  • Déterministe : résultats stables pour un même entrée métier.

Contrôles qualité (développement)

pytest
coverage run -m pytest
coverage report
black --check src tests scripts/ia_workflow
flake8 src tests scripts/ia_workflow
pylint src/riftbound_core scripts/ia_workflow
mypy src/riftbound_core scripts/ia_workflow
python -m bandit -r src/riftbound_core scripts/ia_workflow

Publication PyPI

La release est automatisée par .github/workflows/release.yml (Trusted Publishing OIDC, attestations Sigstore, GitHub Release).

Procédure maintainer :

  1. Mettre à jour __version__ dans src/riftbound_core/__init__.py et CHANGELOG.md.
  2. Committer sur main.
  3. Créer et pousser un tag SemVer : git tag vX.Y.Z && git push origin vX.Y.Z.
  4. Vérifier le workflow Release (qualité → tests → build → PyPI → GitHub Release).

Prérequis PyPI (une fois) : pending publisher ou trusted publisher sur le projet riftbound-core, workflow release.yml, environnement GitHub pypi.

Licence

MIT — voir LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riftbound_core-0.1.1.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riftbound_core-0.1.1-py3-none-any.whl (80.5 kB view details)

Uploaded Python 3

File details

Details for the file riftbound_core-0.1.1.tar.gz.

File metadata

  • Download URL: riftbound_core-0.1.1.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for riftbound_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 24d3b728b6177da9b72f005b839b6f20b78426ff1aec9e864fdbd368701dd80c
MD5 58fe9b02c95bafb1e8e9b32b402c5ae5
BLAKE2b-256 251843a7723ae388667468a7b6523d8d8f4734b6c2963c68958c6916ab20d53c

See more details on using hashes here.

Provenance

The following attestation bundles were made for riftbound_core-0.1.1.tar.gz:

Publisher: release.yml on baobabgit/riftbound-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file riftbound_core-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: riftbound_core-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 80.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for riftbound_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a4328fadb3cd4e058cd3895d2d6dd579715d691f2c7a845e0e4a43af57f5d6ee
MD5 7cc153f1bd1bf1d88c3f662bbe935abd
BLAKE2b-256 48030bb1ecb1699f3440bc9afba2b338b7cf8a9253a98da5c722ed14ed75dde8

See more details on using hashes here.

Provenance

The following attestation bundles were made for riftbound_core-0.1.1-py3-none-any.whl:

Publisher: release.yml on baobabgit/riftbound-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page