From: Jeremy Stanley Date: Fri, 28 Jul 2017 20:03:58 +0000 (+0000) Subject: Use raw strings when escape sequences are needed X-Git-Tag: 0.0.1~155 X-Git-Url: https://mudpy.org/gitweb?a=commitdiff_plain;h=7c003a0c7786083c6b0697d23b1b595dc70005bd;p=mudpy.git Use raw strings when escape sequences are needed Python 3.6 has added a DeprecationWarning for any regular strings containing non-doubled backslash escapes. Use raw strings for these instead so we'll be ready when the old syntax is eventually disallowed. --- diff --git a/mudpy/data.py b/mudpy/data.py index 2e22c7e..8b7e731 100644 --- a/mudpy/data.py +++ b/mudpy/data.py @@ -144,7 +144,7 @@ class DataFile: for candidate in os.listdir(os.path.dirname(self.filename)): if re.match( os.path.basename(self.filename) + - """\.\d+$""", candidate + r"""\.\d+$""", candidate ): backups.append(int(candidate.split(".")[-1])) backups.sort() diff --git a/mudpy/misc.py b/mudpy/misc.py index 470fb96..822beeb 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -299,7 +299,7 @@ class Element: def portals(self): """Map the portal directions for an area to neighbors.""" portals = {} - if re.match("""^area:-?\d+,-?\d+,-?\d+$""", self.key): + if re.match(r"""^area:-?\d+,-?\d+,-?\d+$""", self.key): coordinates = [(int(x)) for x in self.key.split(":")[1].split(",")] offsets = dict( @@ -2178,21 +2178,21 @@ def command_show(actor, parameters): "$(eol)$(bld)%s$(nrm)" % e) elif arguments[0] == "log": if len(arguments) == 4: - if re.match("^\d+$", arguments[3]) and int(arguments[3]) >= 0: + if re.match(r"^\d+$", arguments[3]) and int(arguments[3]) >= 0: stop = int(arguments[3]) else: stop = -1 else: stop = 0 if len(arguments) >= 3: - if re.match("^\d+$", arguments[2]) and int(arguments[2]) > 0: + if re.match(r"^\d+$", arguments[2]) and int(arguments[2]) > 0: start = int(arguments[2]) else: start = -1 else: start = 10 if len(arguments) >= 2: - if (re.match("^\d+$", arguments[1]) + if (re.match(r"^\d+$", arguments[1]) and 0 <= int(arguments[1]) <= 9): level = int(arguments[1]) else: diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index 4ffe027..7251b90 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -12,7 +12,7 @@ test_account0_setup = ( (0, "Enter your choice:", "n"), (0, "Enter a new password for \"luser0\":", "Test123"), (0, "Enter the same new password again:", "Test123"), - (0, "What would you like to do\?", "c"), + (0, r"What would you like to do\?", "c"), (0, "Pick a birth gender for your new avatar:", "f"), (0, "Choose a name for her:", "1"), (0, "What would you like to do?", "a"), @@ -24,7 +24,7 @@ test_account1_setup = ( (1, "Enter your choice:", "n"), (1, "Enter a new password for \"luser1\":", "Test456"), (1, "Enter the same new password again:", "Test456"), - (1, "What would you like to do\?", "c"), + (1, r"What would you like to do\?", "c"), (1, "Pick a birth gender for your new avatar:", "m"), (1, "Choose a name for him:", "1"), (1, "What would you like to do?", "a"), @@ -32,51 +32,51 @@ test_account1_setup = ( ) test_actor_appears = ( - (0, "You suddenly realize that .* is here\.", ""), + (0, r"You suddenly realize that .* is here\.", ""), ) test_explicit_punctuation = ( (0, "> ", "say Hello there!"), - (0, 'You exclaim, "Hello there\!"', ""), - (1, 'exclaims, "Hello there\!"', "say And you are?"), - (1, 'You ask, "And you are\?"', ""), - (0, 'asks, "And you are\?"', "say I'm me, of course."), - (0, 'You say, "I\'m me, of course\."', ""), - (1, 'says, "I\'m me, of course\."', "say I wouldn't be so sure..."), - (1, 'You muse, "I wouldn\'t be so sure\.\.\."', ""), - (0, 'muses, "I wouldn\'t be so sure\.\.\."', "say You mean,"), + (0, r'You exclaim, "Hello there\!"', ""), + (1, r'exclaims, "Hello there\!"', "say And you are?"), + (1, r'You ask, "And you are\?"', ""), + (0, r'asks, "And you are\?"', "say I'm me, of course."), + (0, r'You say, "I\'m me, of course\."', ""), + (1, r'says, "I\'m me, of course\."', "say I wouldn't be so sure..."), + (1, r'You muse, "I wouldn\'t be so sure\.\.\."', ""), + (0, r'muses, "I wouldn\'t be so sure\.\.\."', "say You mean,"), (0, 'You begin, "You mean,"', ""), (1, 'begins, "You mean,"', "say I know-"), (1, 'You begin, "I know-"', ""), (0, 'begins, "I know-"', "say Don't interrupt:"), - (0, 'You begin, "Don\'t interrupt:"', ""), - (1, 'begins, "Don\'t interrupt:"', "say I wasn't interrupting;"), - (1, 'You begin, "I wasn\'t interrupting;"', ""), - (0, 'begins, "I wasn\'t interrupting;"', ""), + (0, r'You begin, "Don\'t interrupt:"', ""), + (1, r'begins, "Don\'t interrupt:"', "say I wasn't interrupting;"), + (1, r'You begin, "I wasn\'t interrupting;"', ""), + (0, r'begins, "I wasn\'t interrupting;"', ""), ) test_implicit_punctuation = ( (0, '> ', "say Whatever"), - (0, 'You say, "Whatever\."', ""), - (1, 'says, "Whatever\."', ""), + (0, r'You say, "Whatever\."', ""), + (1, r'says, "Whatever\."', ""), ) test_typo_replacement = ( (1, '> ', "say That's what i think."), - (1, 'You say, "That\'s what I think\."', ""), - (0, 'says, "That\'s what I think\."', "say You know what i'd like."), - (0, 'You say, "You know what I\'d like\."', ""), - (1, 'says, "You know what I\'d like\."', "say Then i'll tell you."), - (1, 'You say, "Then I\'ll tell you\."', ""), - (0, 'says, "Then I\'ll tell you\."', "say Now i'm ready."), - (0, 'You say, "Now I\'m ready\."', ""), - (1, 'says, "Now I\'m ready\."', "say That's teh idea."), - (1, 'You say, "That\'s the idea\."', ""), - (0, 'says, "That\'s the idea\."', "say It's what theyre saying."), - (0, 'You say, "It\'s what they\'re saying\."', ""), - (1, 'says, "It\'s what they\'re saying\."', "say Well, youre right."), - (1, 'You say, "Well, you\'re right\."', ""), - (0, 'says, "Well, you\'re right\."', ""), + (1, r'You say, "That\'s what I think\."', ""), + (0, r'says, "That\'s what I think\."', "say You know what i'd like."), + (0, r'You say, "You know what I\'d like\."', ""), + (1, r'says, "You know what I\'d like\."', "say Then i'll tell you."), + (1, r'You say, "Then I\'ll tell you\."', ""), + (0, r'says, "Then I\'ll tell you\."', "say Now i'm ready."), + (0, r'You say, "Now I\'m ready\."', ""), + (1, r'says, "Now I\'m ready\."', "say That's teh idea."), + (1, r'You say, "That\'s the idea\."', ""), + (0, r'says, "That\'s the idea\."', "say It's what theyre saying."), + (0, r'You say, "It\'s what they\'re saying\."', ""), + (1, r'says, "It\'s what they\'re saying\."', "say Well, youre right."), + (1, r'You say, "Well, you\'re right\."', ""), + (0, r'says, "Well, you\'re right\."', ""), ) test_sentence_capitalization = ( @@ -87,39 +87,39 @@ test_sentence_capitalization = ( test_chat_mode = ( (1, '> ', "chat"), - (1, '(?s)Entering chat mode .*> \(chat\) ', "Feeling chatty."), - (1, 'You say, "Feeling chatty\."', "!chat"), - (0, 'says, "Feeling chatty\."', ""), + (1, r'(?s)Entering chat mode .*> \(chat\) ', "Feeling chatty."), + (1, r'You say, "Feeling chatty\."', "!chat"), + (0, r'says, "Feeling chatty\."', ""), (1, '> ', "say Now less chatty."), - (1, 'You say, "Now less chatty\."', ""), - (0, 'says, "Now less chatty\."', ""), + (1, r'You say, "Now less chatty\."', ""), + (0, r'says, "Now less chatty\."', ""), ) test_movement = ( (0, "> ", "move north"), - (0, "You exit to the north\.", ""), - (1, "exits to the north\.", "move north"), - (0, "arrives from the south\.", "move south"), - (0, "You exit to the south\.", ""), - (1, "exits to the south\.", "move south"), - (0, "arrives from the north\.", "move east"), - (0, "You exit to the east\.", ""), - (1, "exits to the east\.", "move east"), - (0, "arrives from the west\.", "move west"), - (0, "You exit to the west\.", ""), - (1, "exits to the west\.", "move west"), - (0, "arrives from the east\.", "move up"), - (0, "You exit upward\.", ""), - (1, "exits upward\.", "move up"), - (0, "arrives from below\.", "move down"), - (0, "You exit downward\.", ""), - (1, "exits downward\.", "move down"), - (0, "arrives from above\.", ""), + (0, r"You exit to the north\.", ""), + (1, r"exits to the north\.", "move north"), + (0, r"arrives from the south\.", "move south"), + (0, r"You exit to the south\.", ""), + (1, r"exits to the south\.", "move south"), + (0, r"arrives from the north\.", "move east"), + (0, r"You exit to the east\.", ""), + (1, r"exits to the east\.", "move east"), + (0, r"arrives from the west\.", "move west"), + (0, r"You exit to the west\.", ""), + (1, r"exits to the west\.", "move west"), + (0, r"arrives from the east\.", "move up"), + (0, r"You exit upward\.", ""), + (1, r"exits upward\.", "move up"), + (0, r"arrives from below\.", "move down"), + (0, r"You exit downward\.", ""), + (1, r"exits downward\.", "move down"), + (0, r"arrives from above\.", ""), ) test_actor_disappears = ( (1, "> ", "quit"), - (0, "You suddenly wonder where .* went\.", ""), + (0, r"You suddenly wonder where .* went\.", ""), ) test_account1_teardown = ( @@ -135,7 +135,7 @@ test_admin_setup = ( (2, "Enter your choice:", "n"), (2, "Enter a new password for \"admin\":", "Test789"), (2, "Enter the same new password again:", "Test789"), - (2, "What would you like to do\?", "c"), + (2, r"What would you like to do\?", "c"), (2, "Pick a birth gender for your new avatar:", "m"), (2, "Choose a name for him:", "1"), (2, "What would you like to do?", "a"), @@ -144,44 +144,44 @@ test_admin_setup = ( test_admin_restriction = ( (0, "> ", "help halt"), - (0, "That is not an available command\.", "halt"), + (0, r"That is not an available command\.", "halt"), (0, '(not sure what "halt" means|Arglebargle, glop-glyf)', ""), ) test_admin_help = ( (2, "> ", "help"), - (2, "halt.*Shut down the world\.", "help halt"), + (2, r"halt.*Shut down the world\.", "help halt"), (2, "This will save all active accounts", ""), ) test_show_element = ( (2, "> ", "show element internal:counters"), - (2, "These are the properties of the \"internal:counters\" element " - "\(in.*data/internal\.yaml\"\):.* \x1b\[32melapsed: " - "\x1b\[31m[0-9]+\x1b\[0m", ""), + (2, r'These are the properties of the "internal:counters" element ' + r'\(in.*data/internal\.yaml"\):.* \x1b\[32melapsed: ' + r'\x1b\[31m[0-9]+\x1b\[0m', ""), ) test_show_log = ( (2, "> ", "show log"), - (2, "There are [0-9]+ log lines in memory and [0-9]+ at or above level " - "[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), + (2, r"There are [0-9]+ log lines in memory and [0-9]+ at or above level " + r"[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), ) test_custom_loglevel = ( (2, "> ", "set account:admin loglevel 2"), (2, "You have successfully .*> ", "show log"), - (2, "There are [0-9]+ log lines in memory and [0-9]+ at or above level " - "[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), + (2, r"There are [0-9]+ log lines in memory and [0-9]+ at or above level " + r"[0-9]+\. The matching lines\r\nfrom [0-9]+ to [0-9]+ are:", ""), ) test_invalid_loglevel = ( (2, "> ", "set account:admin loglevel two"), - (2, "Value \"two\" of type \"\" cannot be coerced .*> ", ""), + (2, r'Value "two" of type "" cannot be coerced .*> ', ""), ) test_log_no_errors = ( (2, "> ", "show log 7"), - (2, "None of the [0-9]+ lines in memory matches your request\.", ""), + (2, r"None of the [0-9]+ lines in memory matches your request\.", ""), ) dialogue = (