88 if section in self._data: |
88 if section in self._data: |
89 self._data[section].pop(item, None) |
89 self._data[section].pop(item, None) |
90 self._source.pop((section, item), None) |
90 self._source.pop((section, item), None) |
91 |
91 |
92 def parse(self, src, data, sections=None, remap=None, include=None): |
92 def parse(self, src, data, sections=None, remap=None, include=None): |
93 sectionre = util.re.compile(r'\[([^\[]+)\]') |
93 sectionre = util.re.compile(br'\[([^\[]+)\]') |
94 itemre = util.re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)') |
94 itemre = util.re.compile(br'([^=\s][^=]*?)\s*=\s*(.*\S|)') |
95 contre = util.re.compile(r'\s+(\S|\S.*\S)\s*$') |
95 contre = util.re.compile(br'\s+(\S|\S.*\S)\s*$') |
96 emptyre = util.re.compile(r'(;|#|\s*$)') |
96 emptyre = util.re.compile(br'(;|#|\s*$)') |
97 commentre = util.re.compile(r'(;|#)') |
97 commentre = util.re.compile(br'(;|#)') |
98 unsetre = util.re.compile(r'%unset\s+(\S+)') |
98 unsetre = util.re.compile(br'%unset\s+(\S+)') |
99 includere = util.re.compile(r'%include\s+(\S|\S.*\S)\s*$') |
99 includere = util.re.compile(br'%include\s+(\S|\S.*\S)\s*$') |
100 section = "" |
100 section = "" |
101 item = None |
101 item = None |
102 line = 0 |
102 line = 0 |
103 cont = False |
103 cont = False |
104 |
104 |