Tarot¶
A Rider-Waite-Smith tarot engine with a 78-card deck, single-card and three-card spreads, and optional reversals.
from fortune_telling_core import RandomRng, ReadingRequest
from fortune_telling_core.traditions.tarot import RWS_DECK, THREE_CARD, build_engine
engine = build_engine()
request = ReadingRequest(
deck_id=RWS_DECK.id,
spread_id=THREE_CARD.id,
options={"allow_reversals": "true"},
)
reading = engine.read(request, rng=RandomRng(seed=20260612))
tarot ¶
RWS_DECK
module-attribute
¶
SINGLE_CARD
module-attribute
¶
SINGLE_CARD = Spread(
id="tarot.spread.single.v1",
name="Single Card",
positions=(
Position(
id="focus",
name="Focus",
description="The central message for the reading.",
),
),
)
THREE_CARD
module-attribute
¶
THREE_CARD = Spread(
id="tarot.spread.three-card.v1",
name="Past, Present, Future",
positions=(
Position(
id="past",
name="Past",
description="The relevant background.",
),
Position(
id="present",
name="Present",
description="The current influence.",
),
Position(
id="future",
name="Future",
description="The likely direction.",
),
),
)
TarotEngine ¶
Bases: AbstractEngine
Reference Rider-Waite-Smith tarot engine.
The engine supports the bundled Rider-Waite-Smith deck, single-card and
three-card spreads, and optional reversals through the request option
allow_reversals=true.
deck ¶
Return the Rider-Waite-Smith deck for a request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Deck
|
The bundled Rider-Waite-Smith deck. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the request names an unsupported deck. |
Source code in src/fortune_telling_core/traditions/tarot/engine.py
spread ¶
Return the tarot spread requested by id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Spread
|
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the spread is not supported. |
Source code in src/fortune_telling_core/traditions/tarot/engine.py
draw ¶
Draw cards for the requested tarot spread.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request. Set |
required |
rng
|
Rng
|
Random source used to shuffle the deck and choose reversals. |
required |
Returns:
| Type | Description |
|---|---|
Draw
|
A draw containing one selection per spread position. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the requested deck or spread is unsupported. |
ExhaustedRngError
|
If the supplied RNG cannot provide enough values. |
Source code in src/fortune_telling_core/traditions/tarot/engine.py
build_engine ¶
Create a Rider-Waite-Smith tarot engine.
Returns:
| Type | Description |
|---|---|
TarotEngine
|
A new |