55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
# This patch has been already merged into `master`
|
|
# and should be dropped after next release.
|
|
# See https://github.com/s3tools/s3cmd/pull/1137
|
|
|
|
From 328ced84fe688db5ef0385f5c763cd948087d81f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ond=C5=99ej=20Budai?= <obudai@redhat.com>
|
|
Date: Fri, 2 Oct 2020 14:24:09 +0200
|
|
Subject: [PATCH] fix compatibility with Python 3.9
|
|
|
|
getchildren() method was removed from the ElementTree and Element classes in
|
|
Python 3.9. See the release notes:
|
|
|
|
https://docs.python.org/3.9/whatsnew/3.9.html#removed
|
|
---
|
|
S3/Exceptions.py | 2 +-
|
|
S3/Utils.py | 8 ++++----
|
|
2 files changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
--- a/S3/Exceptions.py
|
|
+++ b/S3/Exceptions.py
|
|
@@ -127,7 +127,7 @@ def parse_error_xml(tree):
|
|
if not error_node.tag == "Error":
|
|
error_node = tree.find(".//Error")
|
|
if error_node is not None:
|
|
- for child in error_node.getchildren():
|
|
+ for child in error_node:
|
|
if child.text != "":
|
|
debug("ErrorXML: " + child.tag + ": " + repr(child.text))
|
|
info[child.tag] = child.text
|
|
--- a/S3/Utils.py
|
|
+++ b/S3/Utils.py
|
|
@@ -65,9 +65,9 @@ def parseNodes(nodes):
|
|
retval = []
|
|
for node in nodes:
|
|
retval_item = {}
|
|
- for child in node.getchildren():
|
|
+ for child in node:
|
|
name = decode_from_s3(child.tag)
|
|
- if child.getchildren():
|
|
+ if len(child):
|
|
retval_item[name] = parseNodes([child])
|
|
else:
|
|
found_text = node.findtext(".//%s" % child.tag)
|
|
@@ -124,8 +124,8 @@ def getListFromXml(xml, node):
|
|
|
|
def getDictFromTree(tree):
|
|
ret_dict = {}
|
|
- for child in tree.getchildren():
|
|
- if child.getchildren():
|
|
+ for child in tree:
|
|
+ if len(child):
|
|
## Complex-type child. Recurse
|
|
content = getDictFromTree(child)
|
|
else:
|