build_tools.syllable_walk.profiles

Walk profile definitions for syllable walker.

This module defines WalkProfile dataclass and predefined profiles that encode different walking behaviors (conservative, balanced, chaotic, etc.).

Profiles provide convenient presets for common use cases: - Clerical: Conservative, favors common syllables - Dialect: Balanced exploration, neutral frequency - Goblin: Chaotic, favors rare syllables - Ritual: Maximum exploration, strongly favors rare

Example

>>> from build_tools.syllable_walk.profiles import WALK_PROFILES
>>> profile = WALK_PROFILES["goblin"]
>>> profile.temperature
1.5

Attributes

WALK_PROFILES

Classes

WalkProfile

Configuration profile for a syllable walk.

Functions

get_profile(name)

Get a walk profile by name.

list_profiles()

Get all available walk profiles.

Module Contents

class build_tools.syllable_walk.profiles.WalkProfile[source]

Configuration profile for a syllable walk.

A profile encapsulates all parameters needed for a walk, providing named presets for different behaviors.

name

Human-readable profile name (e.g., “Dialect Walk”)

description

Brief description of profile behavior

max_flips

Maximum feature flips allowed per step (1-3)

temperature

Exploration temperature (0.1-5.0)

frequency_weight

Frequency bias (-2.0 to 2.0)

Example

>>> profile = WalkProfile(
...     name="Custom Walk",
...     description="High temperature, neutral frequency",
...     max_flips=2,
...     temperature=2.0,
...     frequency_weight=0.0
... )
>>> print(profile)
Custom Walk: High temperature, neutral frequency
name: str
description: str
max_flips: int
temperature: float
frequency_weight: float
build_tools.syllable_walk.profiles.WALK_PROFILES: Dict[str, WalkProfile]
build_tools.syllable_walk.profiles.get_profile(name)[source]

Get a walk profile by name.

Parameters:

name (str) – Profile name (case-insensitive)

Returns:

WalkProfile object

Raises:

ValueError – If profile name not found

Return type:

WalkProfile

Example

>>> profile = get_profile("goblin")
>>> profile.temperature
1.5
>>> profile = get_profile("GOBLIN")  # Case-insensitive
>>> profile.temperature
1.5
build_tools.syllable_walk.profiles.list_profiles()[source]

Get all available walk profiles.

Returns:

Dictionary mapping profile names to WalkProfile objects (copy)

Return type:

Dict[str, WalkProfile]

Example

>>> profiles = list_profiles()
>>> for name, profile in profiles.items():
...     print(f"{name}: {profile.description}")
clerical: Conservative, favors common syllables, minimal phonetic change
dialect: Moderate exploration, neutral frequency bias
goblin: Chaotic, favors rare syllables, high phonetic variation
ritual: Maximum exploration, strongly favors rare syllables