Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Properly escape regex string literals #170

Merged
merged 1 commit into from
Feb 15, 2024
Merged

Conversation

meator
Copy link
Contributor

@meator meator commented Feb 10, 2024

Python3.11 and newer versions like to complain about unknown escape sequences like \., \s etc.

When you install cppman through a package manager on Linux, you'll see something similar to this:

...
cppman-0.5.6_2: configuring ...
Byte-compiling python3.12 code for module cppman...
usr/lib/python3.12/site-packages/cppman/formatter/cppreference.py:47: SyntaxWarning: invalid escape sequence '\['
  '^(.*?)(\[(?:(?:since|until) )?C\+\+\d+\]\s*(,\s*)?)+$', head)
usr/lib/python3.12/site-packages/cppman/formatter/cppreference.py:115: SyntaxWarning: invalid escape sequence '\s'
  lambda x: re.sub('\s*</span><span>\s*', r', ', x.group(0)), re.S),
usr/lib/python3.12/site-packages/cppman/formatter/tableparser.py:147: SyntaxWarning: invalid escape sequence '\^'
  fd.write('\^%s' % ('|' if i < total - 1 else ''))
usr/lib/python3.12/site-packages/cppman/main.py:126: SyntaxWarning: invalid escape sequence '\.'
  self.add_url_filter('\.(jpg|jpeg|gif|png|js|css|swf|svg)$')
usr/lib/python3.12/site-packages/cppman/main.py:396: SyntaxWarning: invalid escape sequence '\s'
  if re.match("\s*Type\s*", tds[0].get_text()):
usr/lib/python3.12/site-packages/cppman/main.py:399: SyntaxWarning: invalid escape sequence '\s'
  res = re.search('^\s*(\S*)\s+.*$', tds[0].get_text())
usr/lib/python3.12/site-packages/cppman/main.py:417: SyntaxWarning: invalid escape sequence '\S'
  res = re.search('^.* (\S+)\s*=.*$', text)
usr/lib/python3.12/site-packages/cppman/main.py:430: SyntaxWarning: invalid escape sequence '\S'
  res = re.search('^.* (\S+)\s*=.*$', text)
usr/lib/python3.12/site-packages/cppman/main.py:580: SyntaxWarning: invalid escape sequence '\('
  pat = re.compile('(.*?)(%s)(.*?)( \(.*\))?$' %
usr/lib/python3.12/site-packages/cppman/formatter/cppreference.py:47: SyntaxWarning: invalid escape sequence '\['
  '^(.*?)(\[(?:(?:since|until) )?C\+\+\d+\]\s*(,\s*)?)+$', head)
usr/lib/python3.12/site-packages/cppman/formatter/cppreference.py:115: SyntaxWarning: invalid escape sequence '\s'
  lambda x: re.sub('\s*</span><span>\s*', r', ', x.group(0)), re.S),
usr/lib/python3.12/site-packages/cppman/formatter/tableparser.py:147: SyntaxWarning: invalid escape sequence '\^'
  fd.write('\^%s' % ('|' if i < total - 1 else ''))
usr/lib/python3.12/site-packages/cppman/main.py:126: SyntaxWarning: invalid escape sequence '\.'
  self.add_url_filter('\.(jpg|jpeg|gif|png|js|css|swf|svg)$')
usr/lib/python3.12/site-packages/cppman/main.py:396: SyntaxWarning: invalid escape sequence '\s'
  if re.match("\s*Type\s*", tds[0].get_text()):
usr/lib/python3.12/site-packages/cppman/main.py:399: SyntaxWarning: invalid escape sequence '\s'
  res = re.search('^\s*(\S*)\s+.*$', tds[0].get_text())
usr/lib/python3.12/site-packages/cppman/main.py:417: SyntaxWarning: invalid escape sequence '\S'
  res = re.search('^.* (\S+)\s*=.*$', text)
usr/lib/python3.12/site-packages/cppman/main.py:430: SyntaxWarning: invalid escape sequence '\S'
  res = re.search('^.* (\S+)\s*=.*$', text)
usr/lib/python3.12/site-packages/cppman/main.py:580: SyntaxWarning: invalid escape sequence '\('
  pat = re.compile('(.*?)(%s)(.*?)( \(.*\))?$' %
...

This PR fixes these warnings.

Python3.11 and newer versions like to complain about unknown escape
sequences like \., \s etc.
@aitjcize aitjcize merged commit a3f3846 into aitjcize:master Feb 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants