Initial implementation #1
30
elisa_pl.py
30
elisa_pl.py
@ -1,11 +1,14 @@
|
||||
from ast import arg
|
||||
from dataclasses import replace
|
||||
import re
|
||||
import random
|
||||
|
||||
ARG_LITERAL = '%'
|
||||
MAX_ARGS = 5
|
||||
GOODBYES =["Do zobaczenia", "Elo"]
|
||||
QUIT = "wyjscie"
|
||||
|
||||
pairs = ( ('test (.*)', ('%1',)), ('test2 (.*)', ('%1 2',)) )
|
||||
pairs = ( ('test (.*)', ('%1',)), ('(.*) test2 (.*)', ('%1 2 %2',)), ('test2 (.*)', ('%1 2',)) )
|
||||
|
||||
|
||||
def main():
|
||||
@ -24,7 +27,8 @@ def main():
|
||||
continue
|
||||
|
||||
ans = pick_answer(pair)
|
||||
print(substitute_arg(ans, search.groups()))
|
||||
print(replace_args(ans, search))
|
||||
break;
|
||||
|
||||
print(random.choice(GOODBYES))
|
||||
|
||||
@ -33,10 +37,24 @@ def should_quit(input):
|
||||
return QUIT in input
|
||||
|
||||
|
||||
def substitute_arg(pattern, sub):
|
||||
# TODO: More than one argument support
|
||||
arg = ARG_LITERAL + '1'
|
||||
return pattern.replace(arg, sub[0])
|
||||
def get_full_arg_str(arg_number):
|
||||
return ARG_LITERAL + str(arg_number)
|
||||
|
||||
|
||||
def replace_args(pattern, match):
|
||||
arg_number = 1
|
||||
result = pattern
|
||||
while arg_number <= MAX_ARGS:
|
||||
if get_full_arg_str(arg_number) in result:
|
||||
result = substitute_arg(result, match.group(arg_number), arg_number)
|
||||
arg_number += 1
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def substitute_arg(pattern, sub, group_number):
|
||||
arg = get_full_arg_str(group_number)
|
||||
return pattern.replace(arg, sub)
|
||||
|
||||
|
||||
def pick_answer(pair):
|
||||
|
Loading…
Reference in New Issue
Block a user