[PATCH 2 of 6] byteify-strings: handle triple quoted strings if they are not docstrings

Raphaël Gomès raphael.gomes at octobus.net
Fri Aug 2 04:22:13 EDT 2019


# HG changeset patch
# User Raphaël Gomès <rgomes at octobus.net>
# Date 1564732093 -7200
#      Fri Aug 02 09:48:13 2019 +0200
# Node ID 649e2ec4232c359d5b09833d8d6e1b9e309ba28a
# Parent  623f86cf8834b154cc2b7c88b6dd8378ff9481c6
# EXP-Topic byteify-strings
byteify-strings: handle triple quoted strings if they are not docstrings

As with anything in this script, this is a best effort approach. Most of the
time, when a triple quoted string is assigned to something, it's not a
docstring.

diff -r 623f86cf8834 -r 649e2ec4232c contrib/byteify-strings.py
--- a/contrib/byteify-strings.py	Fri Aug 02 09:44:11 2019 +0200
+++ b/contrib/byteify-strings.py	Fri Aug 02 09:48:13 2019 +0200
@@ -139,8 +139,10 @@
             # components touching docstrings need to handle unicode,
             # unfortunately.
             if s[0:3] in ("'''", '"""'):
-                yield adjusttokenpos(t, coloffset)
-                continue
+                # If it's assigned to something, it's not a docstring
+                if not _isop(i - 1, '='):
+                    yield adjusttokenpos(t, coloffset)
+                    continue
 
             # If the first character isn't a quote, it is likely a string
             # prefixing character (such as 'b', 'u', or 'r'. Ignore.


More information about the Mercurial-devel mailing list