Предизвикателства > Сляпа баба > Решения > Решението на Мартин Кузманов

Резултати
0 точки от тестове
2 точки от учител

2 точки общо

0 успешни теста
1 неуспешни теста
Код

 1import secret
 2
 3def is_interesting(func, nickname):
 4    """
 5    A function for checking whether
 6    a method is interesting for our purposes or not
 7    """
 8
 9    if nickname not in map(chr, range(48, 58, 1)) and nickname not in map(chr, range(65, 91, 1)):
10        return False
11    
12    # check first for static method
13    if isinstance(func, staticmethod):
14         return True
15    
16    try:
17        func()
18    except TypeError as er:
19        if str(er) == 'Опаааааа, тука има нещо нередно.':
20            return True
21         
22    except BaseException:
23        return True
24    
25    try: 
26
27        if list(map(func,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) == [0, 0, 4, 0, 16, 0, 36, 0, 64, 0, 100]:
28            return True
29        
30    except TypeError:
31            pass
32    
33    try:
34        if( func('stara ','baba') == 'stara baba'):
35            return True
36        
37    except TypeError:
38            pass
39    
40    return False
41
42def is_clue(name):
43     return 'clue' in name
44
45"""
46Function for searching methods of an object
47that are interesting for us and retrieves them
48"""
49def check_interestings_methods(obj, fn_pattern):
50    found = {}
51    for item in dir(obj):
52          if item in fn_pattern and callable(getattr(obj, item)) and is_interesting(getattr(obj, item), item):
53               found.update({item : getattr(obj, item)})
54    return found
55
56"""
57A recursive function for finding the interesting methods of an object
58and then recur to the subattributes of the object if clues are found
59"""
60def digging(obj, fn_pattern):
61     
62    found = {}
63
64    for item in dir(obj):
65        if is_clue(item):
66            methods = check_interestings_methods(getattr(obj, item), fn_pattern)
67            found.update(methods)
68            found.update(digging(getattr(obj, item), fn_pattern))
69
70    return found
71          
72def methodify():
73    
74    fn_pattern = {'F','N','2','M','I','0','6','0','0','1','0','1'}
75
76    translated = {}
77
78    """
79    Traverse the symbols defined in secret
80    and for each that has 'clue' do it again
81    """
82
83    for obj in dir(secret):
84        if is_clue(obj):
85            methods = check_interestings_methods(getattr(secret, obj), fn_pattern)
86            translated.update(methods)
87            if len(translated) == len(fn_pattern):
88                 break
89            translated.update(digging(getattr(secret, obj), fn_pattern))
90
91    return (translated.get('F'), translated.get('N'), translated.get('2'),
92            translated.get('M'), translated.get('I'), translated.get('0'),
93            translated.get('6'), translated.get('0'), translated.get('0'),
94            translated.get('1'), translated.get('0'), translated.get('1'))

F
======================================================================
FAIL: test_metodify (test.TestMethodify)
Test metodify function.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 12, in test_metodify
self.assertIn(methodify(), _RESULTS.keys())
AssertionError: (<function decoy_2 at 0x7fc4278e32e0>, <function method_N at 0x7fc4278e2b00>, None, <function method_M at 0x7fc4278e2b90>, None, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>) not found in dict_keys([(<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_2 at 0x7fc4278e2dd0>, <function method_3 at 0x7fc4278e2e60>, <function method_4 at 0x7fc4278e2ef0>, <function method_5 at 0x7fc4278e2f80>, <function method_6 at 0x7fc4278e3010>, <function method_7 at 0x7fc4278e30a0>, <function method_8 at 0x7fc4278e3130>, <function method_9 at 0x7fc4278e31c0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_4 at 0x7fc4278e2ef0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_9 at 0x7fc4278e31c0>, <function method_5 at 0x7fc4278e2f80>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_5 at 0x7fc4278e2f80>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_4 at 0x7fc4278e2ef0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_1 at 0x7fc4278e2d40>, <function method_5 at 0x7fc4278e2f80>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_1 at 0x7fc4278e2d40>, <function method_6 at 0x7fc4278e3010>, <function method_5 at 0x7fc4278e2f80>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_4 at 0x7fc4278e2ef0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_3 at 0x7fc4278e2e60>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_9 at 0x7fc4278e31c0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_4 at 0x7fc4278e2ef0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_4 at 0x7fc4278e2ef0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_5 at 0x7fc4278e2f80>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_1 at 0x7fc4278e2d40>, <function method_5 at 0x7fc4278e2f80>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_5 at 0x7fc4278e2f80>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_4 at 0x7fc4278e2ef0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_1 at 0x7fc4278e2d40>, <function method_5 at 0x7fc4278e2f80>, <function method_9 at 0x7fc4278e31c0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_9 at 0x7fc4278e31c0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_3 at 0x7fc4278e2e60>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_9 at 0x7fc4278e31c0>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_5 at 0x7fc4278e2f80>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_3 at 0x7fc4278e2e60>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_4 at 0x7fc4278e2ef0>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_1 at 0x7fc4278e2d40>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_6 at 0x7fc4278e3010>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_4 at 0x7fc4278e2ef0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_1 at 0x7fc4278e2d40>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_4 at 0x7fc4278e2ef0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_4 at 0x7fc4278e2ef0>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_0 at 0x7fc4278e2cb0>, <function method_4 at 0x7fc4278e2ef0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_3 at 0x7fc4278e2e60>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_1 at 0x7fc4278e2d40>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_4 at 0x7fc4278e2ef0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_9 at 0x7fc4278e31c0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_9 at 0x7fc4278e31c0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_1 at 0x7fc4278e2d40>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_6 at 0x7fc4278e3010>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_1 at 0x7fc4278e2d40>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_3 at 0x7fc4278e2e60>, <function method_4 at 0x7fc4278e2ef0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_4 at 0x7fc4278e2ef0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_1 at 0x7fc4278e2d40>, <function method_5 at 0x7fc4278e2f80>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_3 at 0x7fc4278e2e60>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_4 at 0x7fc4278e2ef0>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_5 at 0x7fc4278e2f80>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_2 at 0x7fc4278e2dd0>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_9 at 0x7fc4278e31c0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_2 at 0x7fc4278e2dd0>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_2 at 0x7fc4278e2dd0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_7 at 0x7fc4278e30a0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_5 at 0x7fc4278e2f80>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_8 at 0x7fc4278e3130>, <function method_5 at 0x7fc4278e2f80>, <function method_5 at 0x7fc4278e2f80>, <function method_3 at 0x7fc4278e2e60>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_9 at 0x7fc4278e31c0>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_7 at 0x7fc4278e30a0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_9 at 0x7fc4278e31c0>, <function method_2 at 0x7fc4278e2dd0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_0 at 0x7fc4278e2cb0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_7 at 0x7fc4278e30a0>, <function method_1 at 0x7fc4278e2d40>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_1 at 0x7fc4278e2d40>, <function method_4 at 0x7fc4278e2ef0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_0 at 0x7fc4278e2cb0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_3 at 0x7fc4278e2e60>, <function method_4 at 0x7fc4278e2ef0>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>, <function method_5 at 0x7fc4278e2f80>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_2 at 0x7fc4278e2dd0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_9 at 0x7fc4278e31c0>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_3 at 0x7fc4278e2e60>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_1 at 0x7fc4278e2d40>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_1 at 0x7fc4278e2d40>, <function method_8 at 0x7fc4278e3130>, <function method_7 at 0x7fc4278e30a0>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_5 at 0x7fc4278e2f80>, <function method_2 at 0x7fc4278e2dd0>, <function method_6 at 0x7fc4278e3010>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_7 at 0x7fc4278e30a0>, <function method_M at 0x7fc4278e2b90>, <function method_I at 0x7fc4278e2c20>, <function method_0 at 0x7fc4278e2cb0>, <function method_6 at 0x7fc4278e3010>, <function method_0 at 0x7fc4278e2cb0>, <function method_0 at 0x7fc4278e2cb0>, <function method_2 at 0x7fc4278e2dd0>, <function method_1 at 0x7fc4278e2d40>, <function method_8 at 0x7fc4278e3130>), (<function method_F at 0x7fc4278e2a70>, <function method_N at 0x7fc4278e2b00>, <function method_6 at 0x7fc4278e3010>, <function method_2 at 0x7fc4278e2dd0>, <function method_4 at 0x7fc4278e2ef0>, <function method_8 at 0x7fc4278e3130>, <function method_7 at 0x7fc4278e30a0>)])

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

Дискусия
История

f1import secretf1import secret
22
3def is_interesting(func, nickname):3def is_interesting(func, nickname):
4    """4    """
5    A function for checking whether5    A function for checking whether
6    a method is interesting for our purposes or not6    a method is interesting for our purposes or not
7    """7    """
88
9    if nickname not in map(chr, range(48, 58, 1)) and nickname not in map(chr, range(65, 91, 1)):9    if nickname not in map(chr, range(48, 58, 1)) and nickname not in map(chr, range(65, 91, 1)):
10        return False10        return False
nn11    
12    # check first for static method
13    if isinstance(func, staticmethod):
14         return True
11    15    
12    try:16    try:
13        func()17        func()
14    except TypeError as er:18    except TypeError as er:
15        if str(er) == 'Опаааааа, тука има нещо нередно.':19        if str(er) == 'Опаааааа, тука има нещо нередно.':
16            return True20            return True
17         21         
18    except BaseException:22    except BaseException:
19        return True23        return True
20    24    
21    try: 25    try: 
2226
23        if list(map(func,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) == [0, 0, 4, 0, 16, 0, 36, 0, 64, 0, 100]:27        if list(map(func,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) == [0, 0, 4, 0, 16, 0, 36, 0, 64, 0, 100]:
24            return True28            return True
25        29        
26    except TypeError:30    except TypeError:
27            pass31            pass
28    32    
29    try:33    try:
30        if( func('stara ','baba') == 'stara baba'):34        if( func('stara ','baba') == 'stara baba'):
31            return True35            return True
32        36        
33    except TypeError:37    except TypeError:
34            pass38            pass
35    39    
36    return False40    return False
3741
38def is_clue(name):42def is_clue(name):
39     return 'clue' in name43     return 'clue' in name
4044
41"""45"""
42Function for searching methods of an object46Function for searching methods of an object
43that are interesting for us and retrieves them47that are interesting for us and retrieves them
44"""48"""
45def check_interestings_methods(obj, fn_pattern):49def check_interestings_methods(obj, fn_pattern):
46    found = {}50    found = {}
47    for item in dir(obj):51    for item in dir(obj):
48          if item in fn_pattern and callable(getattr(obj, item)) and is_interesting(getattr(obj, item), item):52          if item in fn_pattern and callable(getattr(obj, item)) and is_interesting(getattr(obj, item), item):
49               found.update({item : getattr(obj, item)})53               found.update({item : getattr(obj, item)})
50    return found54    return found
5155
52"""56"""
53A recursive function for finding the interesting methods of an object57A recursive function for finding the interesting methods of an object
54and then recur to the subattributes of the object if clues are found58and then recur to the subattributes of the object if clues are found
55"""59"""
56def digging(obj, fn_pattern):60def digging(obj, fn_pattern):
57     61     
58    found = {}62    found = {}
5963
60    for item in dir(obj):64    for item in dir(obj):
61        if is_clue(item):65        if is_clue(item):
62            methods = check_interestings_methods(getattr(obj, item), fn_pattern)66            methods = check_interestings_methods(getattr(obj, item), fn_pattern)
63            found.update(methods)67            found.update(methods)
64            found.update(digging(getattr(obj, item), fn_pattern))68            found.update(digging(getattr(obj, item), fn_pattern))
6569
66    return found70    return found
67          71          
68def methodify():72def methodify():
n69 n73    
70    fn_pattern = {'F','N','2','M','I','0','6','0','0','1','0','1'}74    fn_pattern = {'F','N','2','M','I','0','6','0','0','1','0','1'}
7175
72    translated = {}76    translated = {}
7377
74    """78    """
75    Traverse the symbols defined in secret79    Traverse the symbols defined in secret
76    and for each that has 'clue' do it again80    and for each that has 'clue' do it again
77    """81    """
7882
79    for obj in dir(secret):83    for obj in dir(secret):
80        if is_clue(obj):84        if is_clue(obj):
81            methods = check_interestings_methods(getattr(secret, obj), fn_pattern)85            methods = check_interestings_methods(getattr(secret, obj), fn_pattern)
82            translated.update(methods)86            translated.update(methods)
83            if len(translated) == len(fn_pattern):87            if len(translated) == len(fn_pattern):
84                 break88                 break
85            translated.update(digging(getattr(secret, obj), fn_pattern))89            translated.update(digging(getattr(secret, obj), fn_pattern))
8690
87    return (translated.get('F'), translated.get('N'), translated.get('2'),91    return (translated.get('F'), translated.get('N'), translated.get('2'),
88            translated.get('M'), translated.get('I'), translated.get('0'),92            translated.get('M'), translated.get('I'), translated.get('0'),
89            translated.get('6'), translated.get('0'), translated.get('0'),93            translated.get('6'), translated.get('0'), translated.get('0'),
90            translated.get('1'), translated.get('0'), translated.get('1'))94            translated.get('1'), translated.get('0'), translated.get('1'))
9195
9296
9397
9498
t95 t
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

f1import secretf1import secret
22
n3def is_interesting(func):n3def is_interesting(func, nickname):
4    """4    """
5    A function for checking whether5    A function for checking whether
6    a method is interesting for our purposes or not6    a method is interesting for our purposes or not
7    """7    """
n8    name = func.__name__n
98
n10    if name not in map(chr, range(48, 58, 1)) and name not in map(chr, range(65, 91, 1)):n9    if nickname not in map(chr, range(48, 58, 1)) and nickname not in map(chr, range(65, 91, 1)):
11        return False10        return False
12    11    
13    try:12    try:
14        func()13        func()
15    except TypeError as er:14    except TypeError as er:
16        if str(er) == 'Опаааааа, тука има нещо нередно.':15        if str(er) == 'Опаааааа, тука има нещо нередно.':
17            return True16            return True
18         17         
19    except BaseException:18    except BaseException:
20        return True19        return True
21    20    
22    try: 21    try: 
2322
n24        if list(map(func,[0,1,2,3,4,5,6,7,8,9,10])) == [0,0,4,0,16,0,36,0,64,0,100]:n23        if list(map(func,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) == [0, 0, 4, 0, 16, 0, 36, 0, 64, 0, 100]:
25            return True24            return True
26        25        
27    except TypeError:26    except TypeError:
28            pass27            pass
29    28    
30    try:29    try:
31        if( func('stara ','baba') == 'stara baba'):30        if( func('stara ','baba') == 'stara baba'):
32            return True31            return True
33        32        
34    except TypeError:33    except TypeError:
35            pass34            pass
36    35    
37    return False36    return False
3837
39def is_clue(name):38def is_clue(name):
40     return 'clue' in name39     return 'clue' in name
4140
42"""41"""
43Function for searching methods of an object42Function for searching methods of an object
44that are interesting for us and retrieves them43that are interesting for us and retrieves them
45"""44"""
46def check_interestings_methods(obj, fn_pattern):45def check_interestings_methods(obj, fn_pattern):
n47    found = []n46    found = {}
48    for item in dir(obj):47    for item in dir(obj):
n49          if item in fn_pattern and callable(getattr(obj, item)) and is_interesting(getattr(obj, item)):n48          if item in fn_pattern and callable(getattr(obj, item)) and is_interesting(getattr(obj, item), item):
50               found.append(getattr(obj, item))49               found.update({item : getattr(obj, item)})
51    return found50    return found
5251
53"""52"""
54A recursive function for finding the interesting methods of an object53A recursive function for finding the interesting methods of an object
55and then recur to the subattributes of the object if clues are found54and then recur to the subattributes of the object if clues are found
56"""55"""
57def digging(obj, fn_pattern):56def digging(obj, fn_pattern):
58     57     
n59    found = []n58    found = {}
6059
61    for item in dir(obj):60    for item in dir(obj):
62        if is_clue(item):61        if is_clue(item):
63            methods = check_interestings_methods(getattr(obj, item), fn_pattern)62            methods = check_interestings_methods(getattr(obj, item), fn_pattern)
n64            found.extend(methods)n63            found.update(methods)
65            found.extend(digging(getattr(obj, item), fn_pattern))64            found.update(digging(getattr(obj, item), fn_pattern))
6665
67    return found66    return found
68          67          
69def methodify():68def methodify():
nn69 
70    fn_pattern = {'F','N','2','M','I','0','6','0','0','1','0','1'}70    fn_pattern = {'F','N','2','M','I','0','6','0','0','1','0','1'}
7171
n72    bag_of_methods = []n72    translated = {}
7373
74    """74    """
75    Traverse the symbols defined in secret75    Traverse the symbols defined in secret
76    and for each that has 'clue' do it again76    and for each that has 'clue' do it again
77    """77    """
7878
79    for obj in dir(secret):79    for obj in dir(secret):
80        if is_clue(obj):80        if is_clue(obj):
81            methods = check_interestings_methods(getattr(secret, obj), fn_pattern)81            methods = check_interestings_methods(getattr(secret, obj), fn_pattern)
n82            bag_of_methods.extend(methods)n82            translated.update(methods)
83            if len(bag_of_methods) == len(fn_pattern):83            if len(translated) == len(fn_pattern):
84                 break84                 break
n85            bag_of_methods.extend(digging(getattr(secret, obj), fn_pattern))n85            translated.update(digging(getattr(secret, obj), fn_pattern))
86 
87    translated = {func.__name__ : func for func in bag_of_methods}
8886
89    return (translated.get('F'), translated.get('N'), translated.get('2'),87    return (translated.get('F'), translated.get('N'), translated.get('2'),
90            translated.get('M'), translated.get('I'), translated.get('0'),88            translated.get('M'), translated.get('I'), translated.get('0'),
91            translated.get('6'), translated.get('0'), translated.get('0'),89            translated.get('6'), translated.get('0'), translated.get('0'),
92            translated.get('1'), translated.get('0'), translated.get('1'))90            translated.get('1'), translated.get('0'), translated.get('1'))
9391
9492
9593
tt94 
95 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op