added module 'message.py'
This commit is contained in:
parent
604e5ccf73
commit
9b61a4ab05
26
chatmastermind/message.py
Normal file
26
chatmastermind/message.py
Normal file
@ -0,0 +1,26 @@
|
||||
"""
|
||||
Module implementing message related functions and classes.
|
||||
"""
|
||||
from typing import Type, TypeVar
|
||||
|
||||
QuestionInst = TypeVar('QuestionInst', bound='Question')
|
||||
|
||||
|
||||
class MessageError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Question(str):
|
||||
"""
|
||||
A single question with a defined prefix.
|
||||
"""
|
||||
prefix = '=== QUESTION ==='
|
||||
|
||||
def __new__(cls: Type[QuestionInst], string: str) -> QuestionInst:
|
||||
"""
|
||||
Make sure the question string does not contain the prefix.
|
||||
"""
|
||||
if cls.prefix in string:
|
||||
raise MessageError(f"Question '{string}' contains the prefix '{cls.prefix}'")
|
||||
instance = super().__new__(cls, string)
|
||||
return instance
|
||||
Loading…
x
Reference in New Issue
Block a user