| 1 | Fix runtime error when using Python 3.9 or newer.
|
| 2 |
|
| 3 | Taken from upstream:
|
| 4 | https://github.com/fifengine/fifengine/commit/cf295fd98a8fba080f6305c27be56d10ab7ce94d
|
| 5 |
|
| 6 | diff --git a/engine/python/fife/extensions/serializers/simplexml.py b/engine/python/fife/extensions/serializers/simplexml.py
|
| 7 | index c4e10f4f8..d05567936 100644
|
| 8 | |
| 9 | |
| 10 | @@ -200,7 +200,7 @@ def get(self, module, name, defaultValue=None):
|
| 11 | #get the module tree: for example find tree under module FIFE
|
| 12 | moduleTree = self._getModuleTree(module)
|
| 13 | element = None
|
| 14 | - for e in moduleTree.getchildren():
|
| 15 | + for e in moduleTree:
|
| 16 | if e.tag == "Setting" and e.get("name", "") == name:
|
| 17 | element = e
|
| 18 | break
|
| 19 | @@ -275,7 +275,7 @@ def set(self, module, name, value, extra_attrs={}):
|
| 20 | e_type = "str"
|
| 21 | value = str(value)
|
| 22 |
|
| 23 | - for e in moduleTree.getchildren():
|
| 24 | + for e in moduleTree:
|
| 25 | if e.tag != "Setting": continue
|
| 26 | if e.get("name", "") == name:
|
| 27 | e.text = value
|
| 28 | @@ -305,7 +305,7 @@ def remove(self, module, name):
|
| 29 |
|
| 30 | moduleTree = self._getModuleTree(module)
|
| 31 |
|
| 32 | - for e in moduleTree.getchildren():
|
| 33 | + for e in moduleTree:
|
| 34 | if e.tag != "Setting": continue
|
| 35 | if e.get("name", "") == name:
|
| 36 | moduleTree.remove(e)
|
| 37 | @@ -321,7 +321,7 @@ def getModuleNameList(self):
|
| 38 | self._initialized = True
|
| 39 |
|
| 40 | moduleNames = []
|
| 41 | - for c in self._root_element.getchildren():
|
| 42 | + for c in self._root_element:
|
| 43 | if c.tag == "Module":
|
| 44 | name = c.get("name","")
|
| 45 | if not isinstance(name, basestring):
|
| 46 | @@ -344,7 +344,7 @@ def getAllSettings(self, module):
|
| 47 |
|
| 48 | # now from the tree read every value, and put the necessary values
|
| 49 | # to the list
|
| 50 | - for e in moduleTree.getchildren():
|
| 51 | + for e in moduleTree:
|
| 52 | if e.tag == "Setting":
|
| 53 | name = e.get("name", "")
|
| 54 |
|
| 55 | @@ -383,7 +383,7 @@ def _validateTree(self):
|
| 56 |
|
| 57 | Raises an InvalidFormat exception if there is a format error.
|
| 58 | """
|
| 59 | - for c in self._root_element.getchildren():
|
| 60 | + for c in self._root_element:
|
| 61 | if c.tag != "Module":
|
| 62 | raise InvalidFormat("Invalid tag in " + self._file + \
|
| 63 | ". Expected Module, got: " + c.tag)
|
| 64 | @@ -391,7 +391,7 @@ def _validateTree(self):
|
| 65 | raise InvalidFormat("Invalid tag in " + self._file + \
|
| 66 | ". Module name is empty.")
|
| 67 | else:
|
| 68 | - for e in c.getchildren():
|
| 69 | + for e in c:
|
| 70 | if e.tag != "Setting":
|
| 71 | raise InvalidFormat("Invalid tag in " + self._file + \
|
| 72 | " in module: " + c.tag + \
|
| 73 | @@ -414,7 +414,7 @@ def _getModuleTree(self, module):
|
| 74 | raise AttributeError("Settings:_getModuleTree: Invalid type for "
|
| 75 | "module argument.")
|
| 76 |
|
| 77 | - for c in self._root_element.getchildren():
|
| 78 | + for c in self._root_element:
|
| 79 | if c.tag == "Module" and c.get("name", "") == module:
|
| 80 | return c
|
| 81 |
|