Name Numerology¶
A Pythagorean name-numerology engine that deterministically reduces a name to its Expression, Soul Urge, and Personality numbers. Whether Y counts as a vowel is a configurable option.
from fortune_telling_core import Querent, ReadingRequest
from fortune_telling_core.traditions.name_numerology import (
NAME_NUMEROLOGY_DECK,
NAME_NUMEROLOGY_SPREAD,
build_engine,
)
request = ReadingRequest(
deck_id=NAME_NUMEROLOGY_DECK.id,
spread_id=NAME_NUMEROLOGY_SPREAD.id,
querent=Querent(id="sample", display_name="Sample", attributes={"name": "John"}),
)
reading = build_engine().cast(request)
name_numerology ¶
NAME_NUMEROLOGY_DECK
module-attribute
¶
NAME_NUMEROLOGY_DECK = Deck(
id="name_numerology.deck.numbers.v1",
symbols=tuple(
(
Symbol(
id=_symbol_id(item.value),
name=str(item.value),
attributes={
"value": str(item.value),
"keyword": item.keyword,
"master": "true"
if item.master
else "false",
},
)
)
for item in NUMBERS
),
)
NAME_NUMEROLOGY_SPREAD
module-attribute
¶
NAME_NUMEROLOGY_SPREAD = Spread(
id="name_numerology.spread.core.v1",
name="Name Numbers",
positions=(
Position(
"expression",
"Expression",
"Destiny number from all letters.",
),
Position(
"soul_urge",
"Soul Urge",
"Heart's desire number from the vowels.",
),
Position(
"personality",
"Personality",
"Outer number from the consonants.",
),
),
)
YMode ¶
Bases: StrEnum
Whether the letter Y counts as a vowel.
Numerologists disagree on Y: some always treat it as a consonant, others as a vowel (and some judge it per name by sound, which is not deterministic). This engine exposes the two deterministic conventions and defaults to treating Y as a consonant.
NameNumerologyEngine ¶
Bases: AbstractEngine
Pythagorean name numerology engine.
The engine deterministically reduces a name to its Expression, Soul Urge, and Personality numbers, preserving the master numbers 11, 22, and 33.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_mode
|
YMode
|
Default treatment of the letter Y when the request does not
specify |
CONSONANT
|
Source code in src/fortune_telling_core/traditions/name_numerology/engine.py
deck ¶
Return the name numerology deck.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Deck
|
The bundled deck. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the requested deck is unsupported. |
Source code in src/fortune_telling_core/traditions/name_numerology/engine.py
spread ¶
Return the name numerology spread.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Spread
|
The bundled spread. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the requested spread is unsupported. |
Source code in src/fortune_telling_core/traditions/name_numerology/engine.py
draw ¶
Compute the core name numbers as a deterministic draw.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request with |
required |
rng
|
Rng
|
Ignored. The argument is present for |
required |
Returns:
| Type | Description |
|---|---|
Draw
|
A draw with the Expression, Soul Urge, and Personality selections. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the name or options are invalid. |
Source code in src/fortune_telling_core/traditions/name_numerology/engine.py
cast ¶
Compute a name numerology reading without a caller RNG.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request containing the name and optional configuration. |
required |
Returns:
| Type | Description |
|---|---|
Reading
|
A reading with the three core-number placements and summary. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the name or options are invalid. |
Source code in src/fortune_telling_core/traditions/name_numerology/engine.py
build_engine ¶
Create a name numerology engine.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_mode
|
YMode
|
Default treatment of the letter Y. |
CONSONANT
|
Returns:
| Type | Description |
|---|---|
NameNumerologyEngine
|
A new |