Python xml.etree.cElementTree.parse() Examples
The following are 30
code examples of xml.etree.cElementTree.parse().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
xml.etree.cElementTree
, or try the search function
.
Example #1
Source File: GXManufacturerCollection.py From Gurux.DLMS.Python with GNU General Public License v2.0 | 7 votes |
def isUpdatesAvailable(cls, path): if sys.version_info < (3, 0): return False # pylint: disable=broad-except if not os.path.isfile(os.path.join(path, "files.xml")): return True try: available = dict() for it in ET.parse(os.path.join(path, "files.xml")).iter(): if it.tag == "File": available[it.text] = datetime.datetime.strptime(it.attrib["Modified"], "%d-%m-%Y") path = NamedTemporaryFile() path.close() urllib.request.urlretrieve("https://www.gurux.fi/obis/files.xml", path.name) for it in ET.parse(path.name).iter(): if it.tag == "File": tmp = datetime.datetime.strptime(it.attrib["Modified"], "%d-%m-%Y") if not it.text in available or available[it.text] != tmp: return True except Exception as e: print(e) return True return False
Example #2
Source File: input_definition.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def parse(stream): """Parse a stream containing XML into an ``InputDefinition``. :param stream: stream containing XML to parse. :return: definition: an ``InputDefinition`` object. """ definition = InputDefinition() # parse XML from the stream, then get the root node root = ET.parse(stream).getroot() for node in root: if node.tag == "configuration": # get config for each stanza definition.inputs = parse_xml_data(node, "stanza") else: definition.metadata[node.tag] = node.text return definition
Example #3
Source File: abichecker.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def get_dstrepos(self, project): url = osc.core.makeurl(self.apiurl, ('source', project, '_meta')) try: root = ET.parse(osc.core.http_GET(url)).getroot() except HTTPError: return None repos = set() for repo in root.findall('repository'): name = repo.attrib['name'] if project in REPO_WHITELIST and name not in REPO_WHITELIST[project]: continue for node in repo.findall('arch'): arch = node.text if project in ARCH_WHITELIST and arch not in ARCH_WHITELIST[project]: continue if project in ARCH_BLACKLIST and arch in ARCH_BLACKLIST[project]: continue repos.add((name, arch)) return repos
Example #4
Source File: eval.py From CSD-SSD with MIT License | 6 votes |
def parse_rec(filename): """ Parse a PASCAL VOC xml file """ tree = ET.parse(filename) objects = [] for obj in tree.findall('object'): obj_struct = {} obj_struct['name'] = obj.find('name').text obj_struct['pose'] = obj.find('pose').text obj_struct['truncated'] = int(obj.find('truncated').text) obj_struct['difficult'] = int(obj.find('difficult').text) bbox = obj.find('bndbox') obj_struct['bbox'] = [int(bbox.find('xmin').text) - 1, int(bbox.find('ymin').text) - 1, int(bbox.find('xmax').text) - 1, int(bbox.find('ymax').text) - 1] objects.append(obj_struct) return objects
Example #5
Source File: eval512.py From CSD-SSD with MIT License | 6 votes |
def parse_rec(filename): """ Parse a PASCAL VOC xml file """ tree = ET.parse(filename) objects = [] for obj in tree.findall('object'): obj_struct = {} obj_struct['name'] = obj.find('name').text obj_struct['pose'] = obj.find('pose').text obj_struct['truncated'] = int(obj.find('truncated').text) obj_struct['difficult'] = int(obj.find('difficult').text) bbox = obj.find('bndbox') obj_struct['bbox'] = [int(bbox.find('xmin').text) - 1, int(bbox.find('ymin').text) - 1, int(bbox.find('xmax').text) - 1, int(bbox.find('ymax').text) - 1] objects.append(obj_struct) return objects
Example #6
Source File: voc07_consistency_init.py From CSD-SSD with MIT License | 6 votes |
def pull_item(self, index): img_id = self.ids[index] target = ET.parse(self._annopath % img_id).getroot() img = cv2.imread(self._imgpath % img_id) height, width, channels = img.shape if self.target_transform is not None: target = self.target_transform(target, width, height) if self.transform is not None: target = np.array(target) img, boxes, labels = self.transform(img, target[:, :4], target[:, 4]) # to rgb img = img[:, :, (2, 1, 0)] # img = img.transpose(2, 0, 1) target = np.hstack((boxes, np.expand_dims(labels, axis=1))) if(img_id[0][(len(img_id[0]) - 7):]=='VOC2007'): semi = np.array([1]) else: semi = np.array([0]) target = np.zeros([1, 5]) return torch.from_numpy(img).permute(2, 0, 1), target, height, width, semi # return torch.from_numpy(img), target, height, width
Example #7
Source File: voc07_consistency.py From CSD-SSD with MIT License | 6 votes |
def pull_anno(self, index): '''Returns the original annotation of image at index Note: not using self.__getitem__(), as any transformations passed in could mess up this functionality. Argument: index (int): index of img to get annotation of Return: list: [img_id, [(label, bbox coords),...]] eg: ('001718', [('dog', (96, 13, 438, 332))]) ''' img_id = self.ids[index] anno = ET.parse(self._annopath % img_id).getroot() gt = self.target_transform(anno, 1, 1) return img_id[1], gt
Example #8
Source File: ReviewBot.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def set_request_ids_search_review(self): review = None if self.review_user: review = "@by_user='%s' and @state='new'" % self.review_user if self.review_group: review = osc.core.xpath_join(review, "@by_group='%s' and @state='new'" % self.review_group) url = osc.core.makeurl(self.apiurl, ('search', 'request'), { 'match': "state/@name='review' and review[%s]" % review, 'withfullhistory': 1 } ) root = ET.parse(osc.core.http_GET(url)).getroot() self.requests = [] for request in root.findall('request'): req = osc.core.Request() req.read(request) self.requests.append(req) # also used by openqabot
Example #9
Source File: voc0712.py From CSD-SSD with MIT License | 6 votes |
def pull_item(self, index): img_id = self.ids[index] target = ET.parse(self._annopath % img_id).getroot() img = cv2.imread(self._imgpath % img_id) height, width, channels = img.shape if self.target_transform is not None: target = self.target_transform(target, width, height) if self.transform is not None: target = np.array(target) img, boxes, labels = self.transform(img, target[:, :4], target[:, 4]) # to rgb img = img[:, :, (2, 1, 0)] # img = img.transpose(2, 0, 1) target = np.hstack((boxes, np.expand_dims(labels, axis=1))) return torch.from_numpy(img).permute(2, 0, 1), target, height, width # return torch.from_numpy(img), target, height, width
Example #10
Source File: check_source.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def has_whitelist_warnings( self, source_project, source_package, target_project, target_package ): # this checks if this is a submit to an product project and it has warnings for non-whitelisted permissions/files found_entries = set() url = osc.core.makeurl(self.apiurl, ['build', target_project]) xml = ET.parse(osc.core.http_GET(url)).getroot() for f in xml.findall('entry'): # we check all repos in the source project for errors that exist in the target project repo = f.attrib['name'] query = { 'last': 1, } for arch in target_archs(self.apiurl, source_project, repo): url = osc.core.makeurl(self.apiurl, ['build', source_project, repo, arch, source_package, '_log'], query = query) try: result = osc.core.http_GET(url) contents = str(result.read()) for entry in self.bad_rpmlint_entries: if (': W: ' + entry in contents) and not (entry in found_entries): self.logger.info(f'found missing whitelist for warning: {entry}') found_entries.add(entry) except HTTPError as e: self.logger.info('ERROR in URL %s [%s]' % (url, e)) return found_entries
Example #11
Source File: voc0712.py From CSD-SSD with MIT License | 6 votes |
def pull_anno(self, index): '''Returns the original annotation of image at index Note: not using self.__getitem__(), as any transformations passed in could mess up this functionality. Argument: index (int): index of img to get annotation of Return: list: [img_id, [(label, bbox coords),...]] eg: ('001718', [('dog', (96, 13, 438, 332))]) ''' img_id = self.ids[index] anno = ET.parse(self._annopath % img_id).getroot() gt = self.target_transform(anno, 1, 1) return img_id[1], gt
Example #12
Source File: core.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def package_source_hash(apiurl, project, package, revision=None): query = {} if revision: query['rev'] = revision # Will not catch packages that previous had a link, but no longer do. if package_source_link_copy(apiurl, project, package): query['expand'] = 1 try: url = makeurl(apiurl, ['source', project, package], query) root = ETL.parse(http_GET(url)).getroot() except HTTPError as e: if e.code == 400 or e.code == 404: # 400: revision not found, 404: package not found. return None raise e if revision and root.find('error') is not None: # OBS returns XML error instead of HTTP 404 if revision not found. return None from osclib.util import sha1_short return sha1_short(root.xpath('entry[@name!="_link"]/@md5'))
Example #13
Source File: input_definition.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def parse(stream): """Parse a stream containing XML into an ``InputDefinition``. :param stream: stream containing XML to parse. :return: definition: an ``InputDefinition`` object. """ definition = InputDefinition() # parse XML from the stream, then get the root node root = ET.parse(stream).getroot() for node in root: if node.tag == "configuration": # get config for each stanza definition.inputs = parse_xml_data(node, "stanza") else: definition.metadata[node.tag] = node.text return definition
Example #14
Source File: input_definition.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def parse(stream): """Parse a stream containing XML into an ``InputDefinition``. :param stream: stream containing XML to parse. :return: definition: an ``InputDefinition`` object. """ definition = InputDefinition() # parse XML from the stream, then get the root node root = ET.parse(stream).getroot() for node in root: if node.tag == "configuration": # get config for each stanza definition.inputs = parse_xml_data(node, "stanza") else: definition.metadata[node.tag] = node.text return definition
Example #15
Source File: input_definition.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def parse(stream): """Parse a stream containing XML into an ``InputDefinition``. :param stream: stream containing XML to parse. :return: definition: an ``InputDefinition`` object. """ definition = InputDefinition() # parse XML from the stream, then get the root node root = ET.parse(stream).getroot() for node in root: if node.tag == "configuration": # get config for each stanza definition.inputs = parse_xml_data(node, "stanza") else: definition.metadata[node.tag] = node.text return definition
Example #16
Source File: voc.py From ssds.pytorch with MIT License | 6 votes |
def __getitem__(self, index): img_id = self.ids[index] target = ET.parse(self._annopath % img_id).getroot() img = cv2.imread(self._imgpath % img_id, cv2.IMREAD_COLOR) height, width, _ = img.shape if self.target_transform is not None: target = self.target_transform(target) if self.preproc is not None: img, target = self.preproc(img, target) #print(img.size()) # target = self.target_transform(target, width, height) #print(target.shape) return img, target
Example #17
Source File: voc.py From ssds.pytorch with MIT License | 6 votes |
def pull_anno(self, index): '''Returns the original annotation of image at index Note: not using self.__getitem__(), as any transformations passed in could mess up this functionality. Argument: index (int): index of img to get annotation of Return: list: [img_id, [(label, bbox coords),...]] eg: ('001718', [('dog', (96, 13, 438, 332))]) ''' img_id = self.ids[index] anno = ET.parse(self._annopath % img_id).getroot() # gt = self.target_transform(anno, 1, 1) # gt = self.target_transform(anno) # return img_id[1], gt if self.target_transform is not None: anno = self.target_transform(anno) return anno
Example #18
Source File: voc.py From ssds.pytorch with MIT License | 6 votes |
def pull_img_anno(self, index): '''Returns the original annotation of image at index Note: not using self.__getitem__(), as any transformations passed in could mess up this functionality. Argument: index (int): index of img to get annotation of Return: list: [img_id, [(label, bbox coords),...]] eg: ('001718', [('dog', (96, 13, 438, 332))]) ''' img_id = self.ids[index] img = cv2.imread(self._imgpath % img_id, cv2.IMREAD_COLOR) anno = ET.parse(self._annopath % img_id).getroot() gt = self.target_transform(anno) height, width, _ = img.shape boxes = gt[:,:-1] labels = gt[:,-1] boxes[:, 0::2] /= width boxes[:, 1::2] /= height labels = np.expand_dims(labels,1) targets = np.hstack((boxes,labels)) return img, targets
Example #19
Source File: xsd_test.py From VASPy with MIT License | 6 votes |
def test_bulk_construction(self): " Test XsdFile construction for a bulk. " filename = path + "/bulk.xsd" xsd = XsdFile(filename) # Check the default coordinate value for the Atom3d tag without XYZ. ref_origin_coord = [0.0, 0.0, 0.0] ret_origin_coord = xsd.data[0].tolist() self.assertListEqual(ref_origin_coord, ret_origin_coord) # Check atom info update in new xsd file. temp_file = "{}/temp.xsd".format(path) xsd.tofile(temp_file) tree = ET.parse(temp_file) for atom3d in tree.iter('Atom3d'): break self.assertEqual(atom3d.get('XYZ'), '0.0,0.0,0.0') os.remove(temp_file)
Example #20
Source File: issue-diff.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def bug_owner(apiurl, package, entity='person'): query = { 'binary': package, } url = osc.core.makeurl(apiurl, ('search', 'owner'), query=query) root = ET.parse(osc.core.http_GET(url)).getroot() bugowner = root.find('.//{}[@role="bugowner"]'.format(entity)) if bugowner is not None: return entity_email(apiurl, bugowner.get('name'), entity) maintainer = root.find('.//{}[@role="maintainer"]'.format(entity)) if maintainer is not None: return entity_email(apiurl, maintainer.get('name'), entity) if entity == 'person': return bug_owner(apiurl, package, 'group') return None
Example #21
Source File: cleanup_rings.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def check_image_bdeps(self, project, arch): for dvd in ('000product:openSUSE-dvd5-dvd-{}'.format(arch), 'Test-DVD-{}'.format(arch)): try: url = makeurl(self.api.apiurl, ['build', project, 'images', arch, dvd, '_buildinfo']) root = ET.parse(http_GET(url)).getroot() except HTTPError as e: if e.code == 404: continue raise for bdep in root.findall('bdep'): if 'name' not in bdep.attrib: continue b = bdep.attrib['name'] if b not in self.bin2src: print("{} not found in bin2src".format(b)) continue b = self.bin2src[b] self.pkgdeps[b] = 'MYdvd{}'.format(self.api.rings.index(project)) break
Example #22
Source File: manager.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def binaries_of_product(self, project, product, repo=None, arch=None): if repo is None: repo = self.project.product_repo if arch is None: arch = self.project.product_arch url = self.api.makeurl(['build', project, repo, arch, product]) try: f = self.api.retried_GET(url) except HTTPError: return [] ret = [] root = ET.parse(f).getroot() for binary in root.findall('binary'): ret.append(binary.get('filename')) return ret
Example #23
Source File: comments.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def get_comments(self, request_id=None, project_name=None, package_name=None): """Get the list of comments of an object in OBS. :param request_id: Request where to get comments. :param project_name: Project name where to get comments. :param package_name: Package name where to get comments. :returns: A list of comments (as a dictionary). """ url = self._prepare_url(request_id, project_name, package_name) root = root = ET.parse(http_GET(url)).getroot() comments = {} for c in root.findall('comment'): c = self._comment_as_dict(c) comments[c['id']] = c return comments
Example #24
Source File: accept_command.py From openSUSE-release-tools with GNU General Public License v2.0 | 6 votes |
def find_new_requests(self, project): match = f"state/@name='new' and action/target/@project='{project}'" url = self.api.makeurl(['search', 'request'], { 'match': match }) f = http_GET(url) root = ET.parse(f).getroot() rqs = [] for rq in root.findall('request'): for action in rq.findall('action'): for t in action.findall('target'): rqs.append({'id': int(rq.get('id')), 'package': str(t.get('package')), 'type': action.get('type')}) break return rqs
Example #25
Source File: core.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def search(apiurl, path, xpath, query={}): query['match'] = xpath url = makeurl(apiurl, ['search', path], query) return ETL.parse(http_GET(url)).getroot()
Example #26
Source File: core.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def issue_trackers(apiurl): url = makeurl(apiurl, ['issue_trackers']) root = ET.parse(http_GET(url)).getroot() trackers = {} for tracker in root.findall('issue-tracker'): trackers[tracker.find('name').text] = tracker.find('label').text return trackers
Example #27
Source File: core.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def issue_tracker_by_url(apiurl, tracker_url): url = makeurl(apiurl, ['issue_trackers']) root = ETL.parse(http_GET(url)).getroot() if not tracker_url.endswith('/'): # All trackers are formatted with trailing slash. tracker_url += '/' return next(iter(root.xpath('issue-tracker[url[text()="{}"]]'.format(tracker_url)) or []), None)
Example #28
Source File: core.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def package_version(apiurl, project, package): try: url = makeurl(apiurl, ['source', project, package, '_history'], {'limit': 1}) root = ETL.parse(http_GET(url)).getroot() except HTTPError as e: if e.code == 404: return False raise e return str(root.xpath('(//version)[last()]/text()')[0])
Example #29
Source File: cleanup_rings.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def find_inner_ring_links(self, prj): query = { 'view': 'info', 'nofilename': '1' } url = makeurl(self.api.apiurl, ['source', prj], query=query) f = http_GET(url) root = ET.parse(f).getroot() for si in root.findall('sourceinfo'): links = si.findall('linked') pkg = si.get('package') if links is None or len(links) == 0: print('# {} not a link'.format(pkg)) else: linked = links[0] dprj = linked.get('project') dpkg = linked.get('package') if dprj != self.api.project: if not dprj.startswith(self.api.crings): print("#{} not linking to base {} but {}".format(pkg, self.api.project, dprj)) self.links[dpkg] = pkg # multi spec package must link to ring elif len(links) > 1: mainpkg = links[1].get('package') mainprj = links[1].get('project') if mainprj != self.api.project: print('# FIXME: {} links to {}'.format(pkg, mainprj)) else: destring = None if mainpkg in self.api.ring_packages: destring = self.api.ring_packages[mainpkg] if not destring: print('# {} links to {} but is not in a ring'.format(pkg, mainpkg)) print("osc linkpac {}/{} {}/{}".format(mainprj, mainpkg, prj, mainpkg)) else: if pkg != 'glibc.i686': # FIXME: ugly exception print("osc linkpac -f {}/{} {}/{}".format(destring, mainpkg, prj, pkg)) self.links[mainpkg] = pkg
Example #30
Source File: select_command.py From openSUSE-release-tools with GNU General Public License v2.0 | 5 votes |
def _supersede(self, request): """ Check if the request supersede a different request from a staging project. SRA supersede SRB when (1) SRA ID > SRB ID and (2) the changes in SRB are in SRA. The second condition is difficult to assure, but the way that we implement RequestFinder can address some corner cases that make the first condition enough. :param request: request we check for """ package = self._package(request) candidates = [] # Store candidates to be supersede by 'request' url = self.api.makeurl(['staging', self.api.project, 'staging_projects'], { 'requests': 1 }) status = ET.parse(self.api.retried_GET(url)).getroot() for prj in status.findall('staging_project'): for req in prj.findall('./staged_requests/request'): if int(req.get('id')) < int(request) and req.get('package') == package: candidates.append((req.get('id'), package, prj.get('name'))) assert len(candidates) <= 1, 'There are more than one candidate to supersede {} ({}): {}'.format(request, package, candidates) return candidates[0] if candidates else None