-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
35 lines (27 loc) · 991 Bytes
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys
from name_extractor.tokenize_code import analyze_code
from name_extractor.trie import Trie
from name_extractor.scan_repo import scan_dir
def main():
print sys.argv
assert len(sys.argv) >= 2, "usage: python main.py [filename.py]"
file_list = sys.argv[1:]
suggest_trie = Trie()
for filename in file_list:
variable_set, class_set, method_set, name_freq = analyze_code(filename)
for name in variable_set:
suggest_trie.insert(name, name_freq[name])
interactive_suggestion(suggest_trie)
def interactive_suggestion(suggest_trie):
while True:
query = raw_input('Enter query: ')
if query == 'exit':
break
else:
print suggest_trie.autocomplete(query)
if __name__ == "__main__":
name_freq = scan_dir('/tmp/exp_dir', analyze_code)
suggest_trie = Trie()
for name in name_freq:
suggest_trie.insert(name, name_freq[name])
interactive_suggestion(suggest_trie)