@@ -27,6 +27,20 @@ def get_args() -> argparse.Namespace:
2727 return parser .parse_args ()
2828
2929
30+ # --------------------------------------------------
31+ def main ():
32+ """Make a jazz noise here"""
33+
34+ args = get_args ()
35+ words = regex_solution (args .pattern , args .wordlist )
36+
37+ if words :
38+ for i , word in enumerate (words , start = 1 ):
39+ print ('{:3}: {}' .format (i , word ))
40+ else :
41+ print ('Found no words matching "{}".' .format (args .pattern ))
42+
43+
3044# --------------------------------------------------
3145def regex_solution (pattern : str , wordlist : TextIO ) -> List [str ]:
3246 """Using regular expressions"""
@@ -44,44 +58,6 @@ def test_regex_solution():
4458 assert regex_solution ('c_e_ry' , text ()) == ['cherry' ]
4559
4660
47- # --------------------------------------------------
48- def manual_solution (pattern : str , wordlist : TextIO ) -> List [str ]:
49- """Not using regular expressions"""
50-
51- letters = filter (lambda t : t [1 ] != '_' , enumerate (pattern ))
52- wanted_len = len (pattern )
53-
54- return list (
55- filter (
56- lambda word : len (word ) == wanted_len and all (
57- [word [i ] == char for i , char in letters ]),
58- wordlist .read ().split ()))
59-
60-
61- # --------------------------------------------------
62- def test_manual_solution ():
63- """Test manual_solution"""
64-
65- text = lambda : io .StringIO ('apple banana cherry date' )
66- assert manual_solution ('_ppl_' , text ()) == ['apple' ]
67- assert manual_solution ('c_e_ry' , text ()) == ['cherry' ]
68-
69-
70- # --------------------------------------------------
71- def main ():
72- """Make a jazz noise here"""
73-
74- args = get_args ()
75- words = regex_solution (args .pattern , args .wordlist )
76- #words = manual_solution(args.pattern, args.wordlist)
77-
78- if words :
79- for i , word in enumerate (words , start = 1 ):
80- print ('{:3}: {}' .format (i , word ))
81- else :
82- print ('Found no words matching "{}".' .format (args .pattern ))
83-
84-
8561# --------------------------------------------------
8662if __name__ == '__main__' :
8763 main ()
0 commit comments