1#!/usr/bin/env python3 2 3 4import os 5 6 7class PatternDB(object): 8 """Pattern database for patterns to be searched in the source tree. 9 """ 10 11 DEFAULT_NAME = 'pattern_db.csv' 12 13 14 @classmethod 15 def get_default_path(cls, project_dir): 16 return os.path.join(project_dir, cls.DEFAULT_NAME) 17 18 19 def __init__(self, path): 20 self.path = path 21 self.data = self._load() 22 23 24 def _load(self): 25 with open(self.path, 'r') as f: 26 patterns = [] 27 is_regexs = [] 28 for line in f: 29 line = line.rstrip('\n') 30 sp = line.split(',') 31 is_regexs.append(sp[0]) 32 patterns.append(','.join(sp[1:])) 33 return (patterns, is_regexs) 34 35 36 def load(self): 37 self.data = self._load() 38 return self.data 39 40 41 def save_new_pattern(self, patt, is_regex): 42 """Add a pattern to the database.""" 43 with open(self.path, 'a') as f: 44 f.write(str(int(is_regex)) + ',' + patt + '\n') 45