[releng/abderrahim/downloadsites: 4/5] convert-to-tarballs: use ElementTree to parse config
- From: Abderrahim Kitouni <akitouni src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [releng/abderrahim/downloadsites: 4/5] convert-to-tarballs: use ElementTree to parse config
- Date: Sat, 2 May 2020 17:52:26 +0000 (UTC)
commit ca2a61b2b8ea493407d5434f8d626f2aba4fc34b
Author: Abderrahim Kitouni <akitouni gnome org>
Date: Thu Apr 30 11:39:56 2020 +0100
convert-to-tarballs: use ElementTree to parse config
tools/smoketesting/convert-to-tarballs.py | 93 ++++++++++---------------------
1 file changed, 30 insertions(+), 63 deletions(-)
---
diff --git a/tools/smoketesting/convert-to-tarballs.py b/tools/smoketesting/convert-to-tarballs.py
index 12456a1..532d57b 100755
--- a/tools/smoketesting/convert-to-tarballs.py
+++ b/tools/smoketesting/convert-to-tarballs.py
@@ -26,7 +26,7 @@
import sys
import optparse
import os
-from xml.dom import minidom, Node
+from xml.etree import ElementTree
from ruamel import yaml
from collections import defaultdict
from tqdm import tqdm
@@ -56,71 +56,38 @@ class Options:
return realname, limit, site
- def _get_locations(self, locations_node):
- for node in locations_node.childNodes:
- if node.nodeType != Node.ELEMENT_NODE:
- continue
- if node.nodeName == 'site':
- if node.attributes.get('kind'):
- kind = node.attributes.get('kind').nodeValue
- else:
- kind = 'tarballs'
-
- location = node.attributes.get('location').nodeValue
- site = SITE_KINDS[kind](location)
-
- if node.attributes.get('default') is not None:
- assert self.default_site is None, "only one default site can be specified"
- self.default_site = site
- elif node.attributes.get('module') is not None:
- module = node.attributes.get('module').nodeValue
- self.module_locations.append([module, site])
- else:
- sys.stderr.write('Bad location node\n')
- sys.exit(1)
+ def _read_conversion_info(self):
+ document = ElementTree.parse(self.filename)
- def _get_modulelist(self, modulelist_node):
- for node in modulelist_node.childNodes:
- if node.nodeType != Node.ELEMENT_NODE:
- continue
- if node.nodeName == 'package':
- name = node.attributes.get('name').nodeValue
-
- # Determine whether we have a version limit for this package
- if node.attributes.get('limit'):
- max_version = node.attributes.get('limit').nodeValue
- self.version_limit[name] = max_version
-
- if node.attributes.get('module'):
- self.real_name[name] = node.attributes.get('module').nodeValue
-
- # Find the appropriate release set
- if node.attributes.get('set'):
- release_set = node.attributes.get('set').nodeValue
- else:
- release_set = 'Other'
-
- # Add it to the lists
- self.release_sets[release_set].append(name)
- else:
- sys.stderr.write('Bad whitelist node\n')
- sys.exit(1)
+ for element in document.findall('locations/site'):
+ kind = element.get('kind', default='tarballs')
+ location = element.get('location')
+ site = SITE_KINDS[kind](location)
- def _read_conversion_info(self):
- document = minidom.parse(self.filename)
- conversion_stuff = document.documentElement
- for node in conversion_stuff.childNodes:
- if node.nodeType != Node.ELEMENT_NODE:
- continue
- if node.nodeName == 'locations':
- self._get_locations(node)
- elif node.nodeName == 'whitelist':
- self._get_modulelist(node)
- else:
- sys.stderr.write('Unexpected conversion type: ' +
- node.nodeName + '\n')
- sys.exit(1)
+ if element.get('default') is not None:
+ assert self.default_site is None, "only one default site can be specified"
+ self.default_site = site
+ elif element.get('module') is not None:
+ module = element.get('module')
+ self.module_locations.append([module, site])
+
+ for element in document.findall('whitelist/package'):
+ name = element.get('name')
+
+ # Determine whether we have a version limit for this package
+ max_version = element.get('limit')
+ if max_version:
+ self.version_limit[name] = max_version
+
+ real_name = element.get('module')
+ if real_name:
+ self.real_name[name] = real_name
+
+ # Find the appropriate release set
+ release_set = element.get('set', default='Other')
+ # Add it to the lists
+ self.release_sets[release_set].append(name)
class ConvertToTarballs:
def __init__(self, options, directory, convert=True, refs=False):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]