improve pylint score (to over 9.00)
This commit is contained in:
parent
a7e47bba3a
commit
f389df59c4
@ -18,6 +18,8 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
""" Container class for managing the generic filters """
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard Python modules
|
||||
@ -25,7 +27,6 @@
|
||||
#-------------------------------------------------------------------------
|
||||
from xml.sax import make_parser, SAXParseException
|
||||
import os
|
||||
import sys
|
||||
import collections
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -35,7 +36,6 @@ import collections
|
||||
#-------------------------------------------------------------------------
|
||||
from ._filterparser import FilterParser
|
||||
from ..plug import BasePluginManager
|
||||
from ..const import GRAMPS_LOCALE as glocale
|
||||
|
||||
PLUGMAN = BasePluginManager.get_instance()
|
||||
#-------------------------------------------------------------------------
|
||||
@ -92,13 +92,15 @@ class FilterList:
|
||||
return filters
|
||||
|
||||
def add(self, namespace, filt):
|
||||
assert(isinstance(namespace, str))
|
||||
""" add a custom filter """
|
||||
assert isinstance(namespace, str)
|
||||
|
||||
if namespace not in self.filter_namespaces:
|
||||
self.filter_namespaces[namespace] = []
|
||||
self.filter_namespaces[namespace].append(filt)
|
||||
|
||||
def load(self):
|
||||
""" load a custom filter """
|
||||
try:
|
||||
if os.path.isfile(self.file):
|
||||
parser = make_parser()
|
||||
@ -111,36 +113,40 @@ class FilterList:
|
||||
print("Parser error")
|
||||
|
||||
def fix(self, line):
|
||||
l = line.strip()
|
||||
l = l.replace('&', '&')
|
||||
l = l.replace('>', '>')
|
||||
l = l.replace('<', '<')
|
||||
return l.replace('"', '"')
|
||||
""" sanitize the custom filter name, if needed """
|
||||
new_line = line.strip()
|
||||
new_line = new_line.replace('&', '&')
|
||||
new_line = new_line.replace('>', '>')
|
||||
new_line = new_line.replace('<', '<')
|
||||
return new_line.replace('"', '"')
|
||||
|
||||
def save(self):
|
||||
with open(self.file, 'w', encoding='utf8') as f:
|
||||
f.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
||||
f.write('<filters>\n')
|
||||
""" save the list of custom filters """
|
||||
with open(self.file, 'w', encoding='utf8') as file:
|
||||
file.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
||||
file.write('<filters>\n')
|
||||
for namespace in self.filter_namespaces:
|
||||
f.write('<object type="%s">\n' % namespace)
|
||||
file.write(' <object type="%s">\n' % namespace)
|
||||
filter_list = self.filter_namespaces[namespace]
|
||||
sorted_filters = sorted([(filter.get_name(), filter)
|
||||
for filter in filter_list])
|
||||
for (name, the_filter) in sorted_filters: # enable a diff
|
||||
f.write(' <filter name="%s"' % self.fix(name))
|
||||
f.write(' function="%s"' % the_filter.get_logical_op())
|
||||
file.write(' <filter name="%s"' % self.fix(name))
|
||||
file.write(' function="%s"' % the_filter.get_logical_op())
|
||||
if the_filter.invert:
|
||||
f.write(' invert="1"')
|
||||
file.write(' invert="1"')
|
||||
comment = the_filter.get_comment()
|
||||
if comment:
|
||||
f.write(' comment="%s"' % self.fix(comment))
|
||||
f.write('>\n')
|
||||
file.write(' comment="%s"' % self.fix(comment))
|
||||
file.write('>\n')
|
||||
for rule in the_filter.get_rules():
|
||||
f.write(' <rule class="%s" use_regex="%s">\n'
|
||||
% (rule.__class__.__name__, rule.use_regex))
|
||||
file.write(' <rule class="%s" use_regex="%s">'
|
||||
'\n' % (rule.__class__.__name__,
|
||||
rule.use_regex))
|
||||
for value in list(rule.values()):
|
||||
f.write(' <arg value="%s"/>\n' % self.fix(value))
|
||||
f.write(' </rule>\n')
|
||||
f.write(' </filter>\n')
|
||||
f.write('</object>\n')
|
||||
f.write('</filters>\n')
|
||||
file.write(' <arg value="%s"/>'
|
||||
'\n' % self.fix(value))
|
||||
file.write(' </rule>\n')
|
||||
file.write(' </filter>\n')
|
||||
file.write(' </object>\n')
|
||||
file.write('</filters>\n')
|
||||
|
Loading…
Reference in New Issue
Block a user