# HG changeset patch # User Neil Muller # Date 1673462500 -7200 # Node ID 2d3dee6576382ee7bfbd6adf19ccc402e2e62f76 # Parent fca61cd8fc3383ec30ae6a9078e86af83994d443 Game runs, although weirdly diff -r fca61cd8fc33 -r 2d3dee657638 mamba/habitats/editor.py --- 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, diff -r fca61cd8fc33 -r 2d3dee657638 mamba/habitats/levelmenu.py --- 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 diff -r fca61cd8fc33 -r 2d3dee657638 mamba/habitats/userlevelmenu.py --- 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: diff -r fca61cd8fc33 -r 2d3dee657638 mamba/level.py --- 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) diff -r fca61cd8fc33 -r 2d3dee657638 mamba/widgets/base.py --- 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 diff -r fca61cd8fc33 -r 2d3dee657638 scripts/upload_level --- 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()) diff -r fca61cd8fc33 -r 2d3dee657638 scripts/validate_level --- 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)