changeset 590:2d3dee657638

Game runs, although weirdly
author Neil Muller <drnlmuller@gmail.com>
date Wed, 11 Jan 2023 20:41:40 +0200
parents fca61cd8fc33
children f7c11fc2a3e7
files mamba/habitats/editor.py mamba/habitats/levelmenu.py mamba/habitats/userlevelmenu.py mamba/level.py mamba/widgets/base.py scripts/upload_level scripts/validate_level
diffstat 7 files changed, 23 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/habitats/editor.py	Wed Jan 11 20:29:36 2023 +0200
+++ b/mamba/habitats/editor.py	Wed Jan 11 20:41:40 2023 +0200
@@ -5,9 +5,8 @@
         K_LEFT, K_RIGHT, K_DOWN, K_UP, K_SPACE)
 import sys
 import traceback
-from StringIO import StringIO
-import urllib
-import urllib2
+from io import StringIO
+from urllib import request, parse
 
 from mamba.engine import (Habitat, NewHabitatEvent, SnakeDiedEvent,
         LevelCompletedEvent)
@@ -311,7 +310,7 @@
         if message is None:
             try:
                 self.level.validate_level()
-            except InvalidMapError, error:
+            except InvalidMapError as error:
                 message = MessageBox((300, 300), "Map isn't valid\n%s" % error)
 
         return message
@@ -327,7 +326,7 @@
             self.refresh_display()
             message = MessageBox((300, 300),
                     'Success!\nYou have saved a user level')
-        except Exception, e:
+        except Exception as e:
             # Catch-all if things go wrong
             message = MessageBox((300, 300),
                     "Disaster! Level not saved:\n%s" % e)
@@ -346,9 +345,9 @@
         self.level.save_level(save_file=save_file)
 
         url = "%ssave/%s" % (LEVEL_SERVER, self.level.level_name)
-        args = urllib.urlencode([('data', save_file.getvalue())])
+        args = parse.urlencode([('data', save_file.getvalue())])
         try:
-            result = urllib2.urlopen(url, args)
+            result = request.urlopen(url, args)
             mtxt = result.read()
         except:
             mtxt = "Failed to upload level. :("
@@ -384,7 +383,7 @@
             source = load_file("%s/%s.txt" % (level_dir, level_name),
                                is_user_dir=is_user_dir)
             new_level = Level(level_name, 'user', source.read())
-        except (IOError, InvalidMapError, pygame.error), error:
+        except (IOError, InvalidMapError, pygame.error) as error:
             message = MessageBox((300, 300),
                     'Loading Level Failed: %s' % error, color='red')
             self.display_dialog(message)
@@ -408,7 +407,7 @@
         if new_mode == 'Test':
             try:
                 self.level.validate_level()
-            except InvalidMapError, error:
+            except InvalidMapError as error:
                 # Fail to change mode on invalid maps
                 message = MessageBox((300, 300), "Map isn't valid\n%s" % error)
                 self.display_dialog(message)
@@ -468,7 +467,7 @@
             self.level.tileset = Tileset(new_tileset)
             self.level.restart()
             return None
-        except pygame.error, error:
+        except pygame.error as error:
             self.level.tileset = old_tileset
             return MessageBox(
                 (300, 300), 'Unable to change tileset:: %s' % error,
--- a/mamba/habitats/levelmenu.py	Wed Jan 11 20:29:36 2023 +0200
+++ b/mamba/habitats/levelmenu.py	Wed Jan 11 20:41:40 2023 +0200
@@ -80,7 +80,7 @@
         if not getattr(self, '_setup_gen', None):
             self._setup_gen = self._setup_levels_gen()
         try:
-            self._setup_gen.next()
+            next(self._setup_gen)
             HabitatSetupEvent.post()
         except StopIteration:
             self._setup_gen = None
--- a/mamba/habitats/userlevelmenu.py	Wed Jan 11 20:29:36 2023 +0200
+++ b/mamba/habitats/userlevelmenu.py	Wed Jan 11 20:41:40 2023 +0200
@@ -1,8 +1,8 @@
 """Level menu."""
 
-import urllib2
+from urllib import request
 import zipfile
-import StringIO
+from io import StringIO
 
 from mamba.habitats.levelmenu import LevelMenu
 from mamba.level import Level
@@ -23,7 +23,7 @@
 
     def _url_data(self, route):
         url = "%s%s/%s" % (self.url, self.ctype, route)
-        return urllib2.urlopen(url, timeout=self.timeout).read()
+        return request.urlopen(url, timeout=self.timeout).read()
 
     def _populate_level(self, name):
         try:
@@ -51,7 +51,7 @@
         except:
             print("Failed to download online level zip.")
             return
-        level_zip = zipfile.ZipFile(StringIO.StringIO(data), "r")
+        level_zip = zipfile.ZipFile(StringIO(data), "r")
         levels = level_zip.namelist()
         for level in levels:
             try:
--- a/mamba/level.py	Wed Jan 11 20:29:36 2023 +0200
+++ b/mamba/level.py	Wed Jan 11 20:41:40 2023 +0200
@@ -10,7 +10,7 @@
 from mamba.data import load_file
 from mamba import sprites
 
-from StringIO import StringIO
+from io import StringIO
 
 
 class InvalidMapError(Exception):
@@ -164,7 +164,7 @@
         if self.source is not None:
             level_data = StringIO(self.source)
         else:
-            level_data = load_file('levels/%s.txt' % (self.level_name,))
+            level_data = load_file('levels/%s.txt' % (self.level_name,), 'r')
         # XXX: Should we have some size restriction here?
         level_data = level_data.readlines()
         level_format = self.check_format(level_data)
@@ -194,7 +194,7 @@
             if level_dir is None:
                 level_dir = 'levels'
             file_path = '%s/%s.txt' % (level_dir, self.level_name)
-            save_file = load_file(file_path, 'wb', is_user_dir=is_user_dir)
+            save_file = load_file(file_path, 'w', is_user_dir=is_user_dir)
         save_file.write('Version: %d.%d\n' % VERSION[:2])
         save_file.write('Name: %s\n' % self.name)
         save_file.write('Author: %s\n' % self.author)
--- a/mamba/widgets/base.py	Wed Jan 11 20:29:36 2023 +0200
+++ b/mamba/widgets/base.py	Wed Jan 11 20:41:40 2023 +0200
@@ -32,7 +32,7 @@
 
         type_ = ev.type
         if type_ == USEREVENT:
-            for k in self.callbacks.iterkeys():
+            for k in self.callbacks.keys():
                 if (isinstance(k, type) and issubclass(k, UserEvent)
                         and k.matches(ev)):
                     type_ = k
--- a/scripts/upload_level	Wed Jan 11 20:29:36 2023 +0200
+++ b/scripts/upload_level	Wed Jan 11 20:41:40 2023 +0200
@@ -1,7 +1,6 @@
 #!/usr/bin/env python
 
-import urllib2
-import urllib
+from urllib import request, parse
 import sys
 
 if __name__ == "__main__":
@@ -17,7 +16,7 @@
 
     url = "http://ctpug.org.za/mamba/save/%s" % level_name
     print("Uploading to", url, "...")
-    args = urllib.urlencode([('data', data)])
+    args = pare.urlencode([('data', data)])
 
-    result = urllib2.urlopen(url, args)
+    result = request.urlopen(url, args)
     print(result.read())
--- a/scripts/validate_level	Wed Jan 11 20:29:36 2023 +0200
+++ b/scripts/validate_level	Wed Jan 11 20:41:40 2023 +0200
@@ -12,11 +12,11 @@
 
     try:
         level = Level(level_name)
-    except InvalidMapError, error:
+    except InvalidMapError as error:
         print('Map validation failed')
         print('Exception: %s' % error)
         sys.exit(1)
-    except IOError, error:
+    except IOError as error:
         print("Unable to load some resources for the level")
         print("Exception: %s" % error)
         sys.exit(1)