Source code for pyaiml21.botconfig.config

"""Bot's configuration."""
from dataclasses import dataclass, field
from typing import Optional, Dict, Set, Mapping

from .misc import Properties
from .substitutions import Substitutions


[docs]@dataclass class BotConfig: """ Dataclass that contains all configuration files of the bot. The only missing is its knowledge (which is saved in the graphmaster). """ # substitutions normalize = Substitutions() """Substitutions used with <normalize> tag.""" denormalize = Substitutions() """Substitutions used with <denormalize> tag.""" gender = Substitutions() """Substitutions used with <gender> tag.""" person = Substitutions() """Substitutions used with <person> tag.""" person2 = Substitutions() """Substitutions used with <person2> tag.""" properties = Properties() """Bot properties.""" default_predicate = "unknown" """Default value of the _predicate. When no _predicate with corresponding name is found in `session.predicates` or in `self.predicate_defaults`, this is the value that will be used. """ default_answer = "I have no answer for that." """Reply returned when the interpretation fails.""" predicate_defaults: Dict[str, str] = field(default_factory=dict) """Default values for the predicates. If during the evaluation, <get name="_predicate"> is called and there is no _predicate in current user session with this name, the value from this dict will be used. """ sets: Dict[str, Set[str]] = field(default_factory=dict) """Mapping from set name to the set - AIML 2.x sets. Bot's sets, used to evaluate pattern-side <set>. Is is enough to load them after the .aiml files, as the parsing and storing to graphmaster does not require the sets to exist. """ maps: Dict[str, Mapping[str, str]] = field(default_factory=dict) """Mapping from map name to the map - AIML 2.x maps. Bot's maps. Used at the evaluation of <map> tag. As the argument of dictionary has type mapping, it is enough to provide an object inheriting from `collections.abs.Mapping`, e.g. see implementation of standard maps in /stdlib/. """ # aiml 1.x feature, deprecated in AIML 2.x gossip_filename: Optional[str] = None """Absolute path to file where to store <gossip/>. If no path is provided, the contents of <gossip> are discarded, as this tag produces no output. The file be be created, if not exists at the first encounter of <gossip> tag. """ # aiml 2.0 feature learnf_file: str = "./learnf.aiml" """Path to file where to store <learnf/>. This file, if not exists, will be created at the first encounter of <learnf/> tag during evaluation. """