Work around lack of dict_keys index in catch-all
authorJeremy Stanley <fungi@yuggoth.org>
Tue, 25 Sep 2012 16:32:32 +0000 (16:32 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Tue, 25 Sep 2012 16:32:32 +0000 (16:32 +0000)
* lib/mudpy/misc.py: In Python 3000, dict.keys() returns a dict_keys
type which is not indexed, so work around it by converting to a list
anywhere we attempt to sort keys or access a key by ordered index.

lib/mudpy/misc.py

index 1bef3f3..1ae039c 100644 (file)
@@ -350,7 +350,7 @@ class Element:
             description = element.get("description")
             if description:
                 message += description + "$(eol)"
-            portal_list = element.portals().keys()
+            portal_list = list(element.portals().keys())
             if portal_list:
                 portal_list.sort()
                 message += "$(cyn)[ Exits: " + ", ".join(
@@ -1652,7 +1652,7 @@ def get_menu_choices(user):
 def get_formatted_menu_choices(state, choices):
     """Returns a formatted string of menu choices."""
     choice_output = ""
-    choice_keys = choices.keys()
+    choice_keys = list(choices.keys())
     choice_keys.sort()
     for choice in choice_keys:
         choice_output += "   [$(red)" + choice + "$(nrm)]  " + choices[
@@ -2050,7 +2050,7 @@ def command_help(actor, parameters):
 
         # give a sorted list of commands with descriptions if provided
         output = "These are the commands available to you:$(eol)$(eol)"
-        sorted_commands = universe.categories["command"].keys()
+        sorted_commands = list(universe.categories["command"].keys())
         sorted_commands.sort()
         for item in sorted_commands:
             command = universe.categories["command"][item]
@@ -2190,13 +2190,13 @@ def command_show(actor, parameters):
         ) + " increments elapsed since the world was created."
     elif arguments[0] == "categories":
         message = "These are the element categories:$(eol)"
-        categories = universe.categories.keys()
+        categories = list(universe.categories.keys())
         categories.sort()
         for category in categories:
             message += "$(eol)   $(grn)" + category + "$(nrm)"
     elif arguments[0] == "files":
         message = "These are the current files containing the universe:$(eol)"
-        filenames = universe.files.keys()
+        filenames = list(universe.files.keys())
         filenames.sort()
         for filename in filenames:
             if universe.files[filename].is_writeable():