use raw strings where possible to avoid escaping

This commit is contained in:
Eli Schwartz 2019-09-09 20:21:23 -04:00
parent 975b9ac168
commit cdc2e21a77
No known key found for this signature in database
GPG Key ID: CEB167EFB5722BD6
5 changed files with 18 additions and 18 deletions

View File

@ -242,7 +242,7 @@ class BIBTEX(CatalogPlugin):
# define a function to replace the template entry by its value # define a function to replace the template entry by its value
def tpl_replace(objtplname) : def tpl_replace(objtplname) :
tpl_field = re.sub('[\\{\\}]', '', objtplname.group()) tpl_field = re.sub(r'[\{\}]', '', objtplname.group())
if tpl_field in TEMPLATE_ALLOWED_FIELDS : if tpl_field in TEMPLATE_ALLOWED_FIELDS :
if tpl_field in ['pubdate', 'timestamp'] : if tpl_field in ['pubdate', 'timestamp'] :
@ -259,14 +259,14 @@ class BIBTEX(CatalogPlugin):
if len(template_citation) >0 : if len(template_citation) >0 :
tpl_citation = bibtexclass.utf8ToBibtex( tpl_citation = bibtexclass.utf8ToBibtex(
bibtexclass.ValidateCitationKey(re.sub('\\{[^{}]*\\}', bibtexclass.ValidateCitationKey(re.sub(r'\{[^{}]*\}',
tpl_replace, template_citation))) tpl_replace, template_citation)))
if len(tpl_citation) >0 : if len(tpl_citation) >0 :
return tpl_citation return tpl_citation
if len(entry["isbn"]) > 0 : if len(entry["isbn"]) > 0 :
template_citation = '%s' % re.sub('[\\D]','', entry["isbn"]) template_citation = '%s' % re.sub(r'[\D]','', entry["isbn"])
else : else :
template_citation = '%s' % unicode_type(entry["id"]) template_citation = '%s' % unicode_type(entry["id"])

View File

@ -156,9 +156,9 @@ class CSV_XML(CatalogPlugin):
# Convert HTML to markdown text # Convert HTML to markdown text
if isinstance(item, unicode_type): if isinstance(item, unicode_type):
opening_tag = re.search('<(\\w+)(\x20|>)', item) opening_tag = re.search(r'<(\w+)( |>)', item)
if opening_tag: if opening_tag:
closing_tag = re.search('<\\/%s>$' % opening_tag.group(1), item) closing_tag = re.search(r'<\/%s>$' % opening_tag.group(1), item)
if closing_tag: if closing_tag:
item = html2text(item) item = html2text(item)

View File

@ -1228,11 +1228,11 @@ class CatalogBuilder(object):
clipped to max_len clipped to max_len
""" """
normalized = massaged = re.sub('\\s', '', ascii_text(tag).lower()) normalized = massaged = re.sub(r'\s', '', ascii_text(tag).lower())
if re.search('\\W', normalized): if re.search(r'\W', normalized):
normalized = '' normalized = ''
for c in massaged: for c in massaged:
if re.search('\\W', c): if re.search(r'\W', c):
normalized += self.generate_unicode_name(c) normalized += self.generate_unicode_name(c)
else: else:
normalized += c normalized += c
@ -1395,7 +1395,7 @@ class CatalogBuilder(object):
Return: Return:
(str): asciized version of author (str): asciized version of author
""" """
return re.sub("\\W", "", ascii_text(author)) return re.sub(r"\W", "", ascii_text(author))
def generate_format_args(self, book): def generate_format_args(self, book):
""" Generate the format args for template substitution. """ Generate the format args for template substitution.
@ -4228,9 +4228,9 @@ class CatalogBuilder(object):
# Generate a legal XHTML id/href string # Generate a legal XHTML id/href string
if self.letter_or_symbol(series) == self.SYMBOLS: if self.letter_or_symbol(series) == self.SYMBOLS:
return "symbol_%s_series" % re.sub('\\W', '', series).lower() return "symbol_%s_series" % re.sub(r'\W', '', series).lower()
else: else:
return "%s_series" % re.sub('\\W', '', ascii_text(series)).lower() return "%s_series" % re.sub(r'\W', '', ascii_text(series)).lower()
def generate_short_description(self, description, dest=None): def generate_short_description(self, description, dest=None):
""" Generate a truncated version of the supplied string. """ Generate a truncated version of the supplied string.
@ -4311,7 +4311,7 @@ class CatalogBuilder(object):
else: else:
if re.match('[0-9]+', word[0]): if re.match('[0-9]+', word[0]):
word = word.replace(',', '') word = word.replace(',', '')
suffix = re.search('[\\D]', word) suffix = re.search(r'[\D]', word)
if suffix: if suffix:
word = '%10.0f%s' % (float(word[:suffix.start()]), word[suffix.start():]) word = '%10.0f%s' % (float(word[:suffix.start()]), word[suffix.start():])
else: else:
@ -4327,7 +4327,7 @@ class CatalogBuilder(object):
else: else:
if re.search('[0-9]+', word[0]): if re.search('[0-9]+', word[0]):
word = word.replace(',', '') word = word.replace(',', '')
suffix = re.search('[\\D]', word) suffix = re.search(r'[\D]', word)
if suffix: if suffix:
word = '%10.0f%s' % (float(word[:suffix.start()]), word[suffix.start():]) word = '%10.0f%s' % (float(word[:suffix.start()]), word[suffix.start():])
else: else:

View File

@ -90,8 +90,8 @@ class NumberToText(object): # {{{
# Special case ordinals # Special case ordinals
if re.search('[st|nd|rd|th]',self.number): if re.search('[st|nd|rd|th]',self.number):
self.number = re.sub(',','',self.number) self.number = re.sub(',','',self.number)
ordinal_suffix = re.search('[\\D]', self.number) ordinal_suffix = re.search(r'[\D]', self.number)
ordinal_number = re.sub('\\D','',re.sub(',','',self.number)) ordinal_number = re.sub(r'\D','',re.sub(',','',self.number))
if self.verbose: if self.verbose:
self.log("Ordinal: %s" % ordinal_number) self.log("Ordinal: %s" % ordinal_number)
self.number_as_float = ordinal_number self.number_as_float = ordinal_number
@ -155,8 +155,8 @@ class NumberToText(object): # {{{
if self.verbose: if self.verbose:
self.log("Hybrid: %s" % self.number) self.log("Hybrid: %s" % self.number)
# Split the token into number/text # Split the token into number/text
number_position = re.search('\\d',self.number).start() number_position = re.search(r'\d',self.number).start()
text_position = re.search('\\D',self.number).start() text_position = re.search(r'\D',self.number).start()
if number_position < text_position: if number_position < text_position:
number = self.number[:text_position] number = self.number[:text_position]
text = self.number[text_position:] text = self.number[text_position:]

View File

@ -60,7 +60,7 @@ def _connect(path):
conn = sqlite.connect(path, factory=Connection, detect_types=sqlite.PARSE_DECLTYPES|sqlite.PARSE_COLNAMES) conn = sqlite.connect(path, factory=Connection, detect_types=sqlite.PARSE_DECLTYPES|sqlite.PARSE_COLNAMES)
conn.row_factory = lambda cursor, row : list(row) conn.row_factory = lambda cursor, row : list(row)
conn.create_aggregate('concat', 1, Concatenate) conn.create_aggregate('concat', 1, Concatenate)
title_pat = re.compile('^(A|The|An)\\s+', re.IGNORECASE) title_pat = re.compile(r'^(A|The|An)\s+', re.IGNORECASE)
def title_sort(title): def title_sort(title):
match = title_pat.search(title) match = title_pat.search(title)