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