From nobody Mon Feb 9 09:54:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+58484+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+58484+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1588287205; cv=none; d=zohomail.com; s=zohoarc; b=f5Ki0tkqHvjBuqJfuJhxV6mYjJvgevRxin2ynCNK40Z1MJrotjznDb3gaircjKo/YQugk5ldhBDWU4wVbODjDsyrVqCaifK5PQNfrXgiAexOhsIjMXYAbFO7uHL8hL95tbjQbJOzjR33zbgYbNCWRXq0koDNBKyJZvTXeZq5SGY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588287205; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=AnIDZB2kqSpt2MdakhiyusaRgm24SCJ6jL1RRrF0gz4=; b=iCkfYnoNAhKlMo9ALRYHULDbupJFxHeWDg37yvhVprhJqD/SgH4fSpuItHEQEOZgF1tAKVxiHEGHKsmFCxUonsEfGIAQ3TrtfYHrVRLuoveIURa92ZgSoSOhw6sPY6/2K2HNmjZ89gK/p5YIfuhErkXv72WmqVXOeYwEzbiyhwo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+58484+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1588287205024887.1460338497302; Thu, 30 Apr 2020 15:53:25 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Qi21YY1788612xXuzknRC8C3; Thu, 30 Apr 2020 15:53:24 -0700 X-Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.61.1588287204056787193 for ; Thu, 30 Apr 2020 15:53:24 -0700 IronPort-SDR: 6LAa1p5xVzZTOLWXQE2umiOx41uAgJbGuRVSTMqJYcvAyRnVH+4uU4MI3HNsZ5jQMETAltfBU5 +qpcPG6jOkQA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2020 15:53:23 -0700 IronPort-SDR: LX7CFPgXHVYAhTT4xWGunUCrnE4sbx28W1N5H8SkScGajyNQTgmbQgzmuv9yuASLOPUZ9WYXMd TEVZv50jKlLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,337,1583222400"; d="scan'208";a="368300811" X-Received: from ecbjorge-mobl1.amr.corp.intel.com ([10.212.184.120]) by fmsmga001.fm.intel.com with ESMTP; 30 Apr 2020 15:53:21 -0700 From: "Bjorge, Erik C" To: devel@edk2.groups.io Cc: Ashley E Desimone , Nate DeSimone , Puja Pandya , Bret Barkelew , Prince Agyeman Subject: [edk2-devel] [edk2-staging/EdkRepo] [PATCH v1 1/3] EdkRepo: Flake8 cleanup Date: Thu, 30 Apr 2020 15:52:52 -0700 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,erik.c.bjorge@intel.com X-Gm-Message-State: GndPzQWWgVdQMFNFeBFcYIKXx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1588287204; bh=0AXUtRwNtAy/pWcEOw79+oPEmvJr5hXvHj/JlpPpYhY=; h=Cc:Date:From:Reply-To:Subject:To; b=NnIqUBS1/Iau2QWUjq+ySqQbOFNRN1js8ULKV6PQoWCLz8BHbYZKAU7UMveVyKvsfXg S4WhbIQH3q6zH5kCoQ+Kr29sskTBGiMFFGew2LyzKMtG8m4/Mv09/w9iiuRLJ6xMY2zar Lh8LEIo8HY2EgteXDlqr980PHpUFtCu1qr8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Just cleaning up the file to meet Flake8 expectations. Signed-off-by: Erik Bjorge Cc: Ashley E Desimone Cc: Nate DeSimone Cc: Puja Pandya Cc: Bret Barkelew Cc: Prince Agyeman --- edkrepo_manifest_parser/edk_manifest.py | 159 ++++++++++++++---------- 1 file changed, 94 insertions(+), 65 deletions(-) diff --git a/edkrepo_manifest_parser/edk_manifest.py b/edkrepo_manifest_par= ser/edk_manifest.py index 080448f..7e5f0fb 100644 --- a/edkrepo_manifest_parser/edk_manifest.py +++ b/edkrepo_manifest_parser/edk_manifest.py @@ -25,19 +25,22 @@ GeneralConfig =3D namedtuple('GeneralConfig', ['default= _combo', 'current_combo', ' RemoteRepo =3D namedtuple('RemoteRepo', ['name', 'url']) RepoHook =3D namedtuple('RepoHook', ['source', 'dest_path', 'dest_file', '= remote_url']) Combination =3D namedtuple('Combination', ['name', 'description']) -RepoSource =3D namedtuple('RepoSource', ['root', 'remote_name', 'remote_ur= l', 'branch', 'commit', 'sparse', 'enable_submodule', 'tag']) +RepoSource =3D namedtuple('RepoSource', ['root', 'remote_name', 'remote_ur= l', 'branch', 'commit', 'sparse', + 'enable_submodule', 'tag']) =20 SparseSettings =3D namedtuple('SparseSettings', ['sparse_by_default']) SparseData =3D namedtuple('SparseData', ['combination', 'remote_name', 'al= ways_include', 'always_exclude']) =20 FolderToFolderMapping =3D namedtuple('FolderToFolderMapping', ['project1',= 'project2', 'remote_name', 'folders']) -FolderToFolderMappingFolder =3D namedtuple('FolderToFolderMappingFolder', = ['project1_folder', 'project2_folder', 'excludes']) +FolderToFolderMappingFolder =3D namedtuple('FolderToFolderMappingFolder', = ['project1_folder', 'project2_folder', + '= excludes']) FolderToFolderMappingFolderExclude =3D namedtuple('FolderToFolderMappingFo= lderExclude', ['path']) =20 SubmoduleAlternateRemote =3D namedtuple('SubmoduleAlternateRemote', ['remo= te_name', 'original_url', 'alternate_url']) =20 REQUIRED_ATTRIB_ERROR_MSG =3D "Required attribute malformed in <{}>: {}" -NO_ASSOCIATED_REMOTE =3D 'There are no remotes associated with the ClientG= itHook entry: \nsource:{} destination:{} \nThis hook will not be installed,= updated or deleted.\n' +NO_ASSOCIATED_REMOTE =3D 'There are no remotes associated with the ClientG= itHook entry:\nsource:{} destination:{}' \ + '\nThis hook will not be installed, updated or dele= ted.\n' NO_REMOTE_EXISTS_WITH_NAME =3D 'There are no remotes with the name: {} lis= ted in the manifest file.' PIN_COMB_ERROR =3D "Pin \"{}\" Pin did not have a single tag= ." DUPLICATE_TAG_ERROR =3D "Duplicate <{}> tag not allowed: '{}' (Note: check= 's" @@ -50,12 +53,13 @@ INVALID_PROJECTNAME_ERROR =3D "Invalid input: {} not fo= und in CiIndexXml" UNSUPPORTED_TYPE_ERROR =3D "{} is not a supported xml type: {}" INVALID_XML_ERROR =3D "{} is not a valid xml file" =20 + class BaseXmlHelper(): def __init__(self, fileref, xml_types): self._fileref =3D fileref try: - self._tree =3D ET.ElementTree(file=3Dfileref) #fileref can be= a filename or filestream - except: + self._tree =3D ET.ElementTree(file=3Dfileref) # fileref can b= e a filename or filestream + except Exception: raise TypeError(INVALID_XML_ERROR.format(fileref)) =20 self._xml_type =3D self._tree.getroot().tag @@ -97,6 +101,7 @@ class CiIndexXml(BaseXmlHelper): else: raise ValueError(INVALID_PROJECTNAME_ERROR.format(project_name= )) =20 + class _Project(): def __init__(self, element): try: @@ -105,33 +110,33 @@ class _Project(): except KeyError as k: raise KeyError(REQUIRED_ATTRIB_ERROR_MSG.format(k, element.tag= )) try: - #if the archived attrib is not explicitly set to true, then as= sume false + # if the archived attrib is not explicitly set to true, then a= ssume false self.archived =3D (element.attrib['archived'].lower() =3D=3D '= true') - except: + except Exception: self.archived =3D False =20 + # # This class will parse and the manifest XML file and populate the named # tuples defined above to provide abstracted access to the manifest data # class ManifestXml(BaseXmlHelper): def __init__(self, fileref): - # Most of the attributes of this class are intended to be private = as they are used for # internally gathering and storing the manifest data. As such, all= access to them should be # done through the provided methods to ensure future compatibility= if the xml schema changes super().__init__(fileref, ['Pin', 'Manifest']) self.__project_info =3D None self.__general_config =3D None - self.__remotes =3D {} #dict of _Remote objs, with = Remote.name as key + self.__remotes =3D {} # dict of _Remote objs, w= ith Remote.name as key self.__client_hook_list =3D [] - self.__combinations =3D {} #dict of _Combination objs, = with Combination.name as key - self.__combo_sources =3D {} #dict of _RepoSource obj lis= ts, with Combination.name as key + self.__combinations =3D {} # dict of _Combination ob= js, with Combination.name as key + self.__combo_sources =3D {} # dict of _RepoSource obj= lists, with Combination.name as key self.__dsc_list =3D [] - self.__sparse_settings =3D None # A single instance of platf= orm sparse checkout settings - self.__sparse_data =3D [] # List of SparseData objects - self.__commit_templates =3D {} #dict of commit message temp= lates with the remote name as the key - self.__folder_to_folder_mappings =3D [] # List of FolderToFolderMa= pping objects + self.__sparse_settings =3D None # A single instance of pl= atform sparse checkout settings + self.__sparse_data =3D [] # List of SparseData obje= cts + self.__commit_templates =3D {} # dict of commit message = templates with the remote name as the key + self.__folder_to_folder_mappings =3D [] # List of FolderToFolderM= apping objects self.__submodule_alternate_remotes =3D [] =20 # @@ -143,12 +148,12 @@ class ManifestXml(BaseXmlHelper): incl_file =3D os.path.join(incl_path, include_elem.attrib['xml= ']) try: include_tree =3D ET.ElementTree(file=3Dincl_file) - except: + except Exception: raise TypeError("{} is not a valid xml file".format(incl_f= ile)) for elem in include_tree.iterfind('*'): if elem.tag !=3D 'ProjectInfo' and elem.tag !=3D 'GeneralC= onfig': tree_root.append(elem) - #remove include tags after added to etree to prevent feedback = issues + # remove include tags after added to etree to prevent feedback= issues tree_root.remove(include_elem) =20 # @@ -388,7 +393,7 @@ class ManifestXml(BaseXmlHelper): # Note: It will also strip all the comments from the file # if self._xml_type =3D=3D 'Pin': - #raise Warning("This method is not supported for Pin xmls") + # raise Warning("This method is not supported for Pin xmls") return if filename is None: filename =3D self._fileref @@ -444,12 +449,12 @@ class ManifestXml(BaseXmlHelper): # Only one of Branch or SHA is required to write PIN and checkout = code for src_tuple in repo_source_list: if (src_tuple.root is None or src_tuple.remote_name is None or= src_tuple.remote_url is - None or (src_tuple.commit is None and src_tuple.branch is = None and src_tuple.tag is None)): + None or (src_tuple.commit is None and src_tuple.branch= is None and src_tuple.tag is None)): raise ValueError("Invalid input: empty values in source li= st") =20 # the data to create the remote elements could also be retriev= ed # from __remotes, but this is easier - elem =3D ET.SubElement(remote_root, 'Remote', {'name' : src_tu= ple.remote_name}) + elem =3D ET.SubElement(remote_root, 'Remote', {'name': src_tup= le.remote_name}) elem.text =3D src_tuple.remote_url elem.tail =3D '\n ' =20 @@ -469,22 +474,33 @@ class ManifestXml(BaseXmlHelper): if src_tuple.commit: if src_tuple.branch: if src_tuple.tag: - elem =3D ET.SubElement(source_root, 'Source', {'lo= calRoot':src_tuple.root, 'remote':src_tuple.remote_name, - 'bran= ch':src_tuple.branch, 'commit':src_tuple.commit, - 'spar= seCheckout':sparse, 'enable_submodule':sub, - 'tag'= :src_tuple.tag}) + elem =3D ET.SubElement(source_root, 'Source', {'lo= calRoot': src_tuple.root, + 'remo= te': src_tuple.remote_name, + 'bran= ch': src_tuple.branch, + 'comm= it': src_tuple.commit, + 'spar= seCheckout': sparse, + 'enab= le_submodule': sub, + 'tag'= : src_tuple.tag}) else: - elem =3D ET.SubElement(source_root, 'Source', {'lo= calRoot':src_tuple.root, 'remote':src_tuple.remote_name, - 'bran= ch':src_tuple.branch, 'commit':src_tuple.commit, - 'spar= seCheckout':sparse, 'enable_submodule':sub}) + elem =3D ET.SubElement(source_root, 'Source', {'lo= calRoot': src_tuple.root, + 'remo= te': src_tuple.remote_name, + 'bran= ch': src_tuple.branch, + 'comm= it': src_tuple.commit, + 'spar= seCheckout': sparse, + 'enab= le_submodule': sub}) elif src_tuple.branch is None and src_tuple.tag: - elem =3D ET.SubElement(source_root, 'Source', {'localR= oot':src_tuple.root, 'remote':src_tuple.remote_name, - 'commit':= src_tuple.commit,'sparseCheckout':sparse, - 'enable_s= ubmodule':sub, 'tag':src_tuple.tag}) + elem =3D ET.SubElement(source_root, 'Source', {'localR= oot': src_tuple.root, + 'remote':= src_tuple.remote_name, + 'commit':= src_tuple.commit, + 'sparseCh= eckout': sparse, + 'enable_s= ubmodule': sub, + 'tag': sr= c_tuple.tag}) elif src_tuple.branch is None and src_tuple.tag is None: - elem =3D ET.SubElement(source_root, 'Source', {'localR= oot':src_tuple.root, 'remote':src_tuple.remote_name, - 'commit':= src_tuple.commit,'sparseCheckout':sparse, - 'enable_s= ubmodule':sub}) + elem =3D ET.SubElement(source_root, 'Source', {'localR= oot': src_tuple.root, + 'remote':= src_tuple.remote_name, + 'commit':= src_tuple.commit, + 'sparseCh= eckout': sparse, + 'enable_s= ubmodule': sub}) else: raise ValueError('Pin.xml cannot be generated with an empt= y commit value') =20 @@ -552,9 +568,9 @@ class ManifestXml(BaseXmlHelper): def __ne__(self, other): return not self.__eq__(other) =20 + class _ProjectInfo(): def __init__(self, element): - try: self.codename =3D element.find('CodeName').text self.descript =3D element.find('Description').text @@ -565,17 +581,17 @@ class _ProjectInfo(): self.lead_list =3D [] for lead in element.findall('DevLead'): self.lead_list.append(lead.text) - except: + except Exception: self.lead_list =3D None =20 try: self.org =3D element.find('Org').text - except: + except Exception: self.org =3D None =20 try: self.short_name =3D element.find('ShortName').text - except: + except Exception: self.short_name =3D None =20 try: @@ -583,33 +599,34 @@ class _ProjectInfo(): subroot =3D element.find('LeadReviewers') for reviewer in subroot.iter(tag=3D'Reviewer'): self.reviewer_list.append(reviewer.text) - except: + except Exception: self.reviewer_list =3D None =20 - @property def tuple(self): return ProjectInfo(self.codename, self.descript, self.lead_list, s= elf.reviewer_list, self.org, self.short_name) =20 + class _GeneralConfig(): def __init__(self, element): try: self.pin_path =3D element.find('PinPath').text - except: + except Exception: self.pin_path =3D None try: self.default_combo =3D element.find('DefaultCombo').attrib['co= mbination'] - except: + except Exception: self.default_combo =3D None try: self.curr_combo =3D element.find('CurrentClonedCombo').attrib[= 'combination'] - except: + except Exception: self.curr_combo =3D None =20 @property def tuple(self): return GeneralConfig(self.default_combo, self.curr_combo, self.pin= _path) =20 + class _RemoteRepo(): def __init__(self, element): try: @@ -622,6 +639,7 @@ class _RemoteRepo(): def tuple(self): return RemoteRepo(self.name, self.url) =20 + class _RepoHook(): def __init__(self, element, remotes): try: @@ -631,18 +649,19 @@ class _RepoHook(): raise KeyError(REQUIRED_ATTRIB_ERROR_MSG.format(k, element.tag= )) try: self.remote_url =3D remotes[element.attrib['remote']].url - except: + except Exception: self.remote_url =3D None print(NO_ASSOCIATED_REMOTE.format(self.source, self.dest_path)) try: self.dest_file =3D element.attrib['destination_file'] - except: + except Exception: self.dest_file =3D None =20 @property def tuple(self): return RepoHook(self.source, self.dest_path, self.dest_file, self.= remote_url) =20 + class _Combination(): def __init__(self, element): try: @@ -651,17 +670,18 @@ class _Combination(): raise KeyError(REQUIRED_ATTRIB_ERROR_MSG.format(k, element.tag= )) try: self.description =3D element.attrib['description'] - except: - self.description =3D None #description is optional attribute + except Exception: + self.description =3D None # description is optional attribute try: self.archived =3D (element.attrib['archived'].lower() =3D=3D '= true') - except: + except Exception: self.archived =3D False =20 @property def tuple(self): return Combination(self.name, self.description) =20 + class _RepoSource(): def __init__(self, element, remotes): try: @@ -672,25 +692,25 @@ class _RepoSource(): raise KeyError(REQUIRED_ATTRIB_ERROR_MSG.format(k, element.tag= )) try: self.branch =3D element.attrib['branch'] - except: + except Exception: self.branch =3D None try: self.commit =3D element.attrib['commit'] - except: + except Exception: self.commit =3D None try: self.tag =3D element.attrib['tag'] - except: + except Exception: self.tag =3D None try: - #if the sparse attrib is not explicitly set to true, then assu= me false + # if the sparse attrib is not explicitly set to true, then ass= ume false self.sparse =3D (element.attrib['sparseCheckout'].lower() =3D= =3D 'true') - except: + except Exception: self.sparse =3D False try: - #If enableSubmodule is not set to True then default to False + # If enableSubmodule is not set to True then default to False self.enableSub =3D (element.attrib['enableSubmodule'].lower() = =3D=3D 'true') - except: + except Exception: self.enableSub =3D False =20 if self.branch is None and self.commit is None and self.tag is Non= e: @@ -698,20 +718,23 @@ class _RepoSource(): =20 @property def tuple(self): - return RepoSource(self.root, self.remote_name, self.remote_url, se= lf.branch, self.commit, self.sparse, self.enableSub, self.tag) + return RepoSource(self.root, self.remote_name, self.remote_url, se= lf.branch, + self.commit, self.sparse, self.enableSub, self.t= ag) + =20 class _SparseSettings(): def __init__(self, element): self.sparse_by_default =3D False try: self.sparse_by_default =3D (element.attrib['sparseByDefault'].= lower() =3D=3D 'true') - except: + except Exception: pass =20 @property def tuple(self): return SparseSettings(self.sparse_by_default) =20 + class _SparseData(): def __init__(self, element): self.combination =3D None @@ -720,11 +743,11 @@ class _SparseData(): self.always_exclude =3D [] try: self.combination =3D element.attrib['combination'] - except: + except Exception: pass try: self.remote_name =3D element.attrib['remote'] - except: + except Exception: pass for includes in element.iter(tag=3D'AlwaysInclude'): self.always_include.extend(includes.text.split('|')) @@ -735,18 +758,20 @@ class _SparseData(): def tuple(self): return SparseData(self.combination, self.remote_name, self.always_= include, self.always_exclude) =20 + class _FolderToFolderMappingFolderExclude(): def __init__(self, element): self.path =3D None try: self.path =3D element.attrib['path'] - except: + except Exception: pass =20 @property def tuple(self): return FolderToFolderMappingFolderExclude(self.path) =20 + class _FolderToFolderMappingFolder(): def __init__(self, element): self.project1_folder =3D None @@ -754,11 +779,11 @@ class _FolderToFolderMappingFolder(): self.excludes =3D [] try: self.project1_folder =3D element.attrib['project1'] - except: + except Exception: pass try: self.project2_folder =3D element.attrib['project2'] - except: + except Exception: pass for exclude in element.iter(tag=3D'Exclude'): self.excludes.append(_FolderToFolderMappingFolderExclude(exclu= de)) @@ -767,6 +792,7 @@ class _FolderToFolderMappingFolder(): def tuple(self): return FolderToFolderMappingFolder(self.project1_folder, self.proj= ect2_folder, self.excludes) =20 + class _FolderToFolderMapping(): def __init__(self, element): self.project1 =3D None @@ -775,15 +801,15 @@ class _FolderToFolderMapping(): self.folders =3D [] try: self.project1 =3D element.attrib['project1'] - except: + except Exception: pass try: self.project2 =3D element.attrib['project2'] - except: + except Exception: pass try: self.remote_name =3D element.attrib['remote'] - except: + except Exception: pass for folder in element.iter(tag=3D'Folder'): self.folders.append(_FolderToFolderMappingFolder(folder)) @@ -811,6 +837,7 @@ class _SubmoduleAlternateRemote(): def tuple(self): return SubmoduleAlternateRemote(self.remote_name, self.originalUrl= , self.altUrl) =20 + # # Optional entry point for debug and validation of the CiIndexXml & Manife= stXml classes # @@ -824,7 +851,8 @@ def main(): =20 parser =3D argparse.ArgumentParser() parser.add_argument("InputFile", help=3D"Xml file to parse", nargs=3D'= ?', default=3D"manifest.xml") - parser.add_argument('-v', '--verbose', action=3D'store_true', help=3D'= Increased verbosity including exception tracebacks') + parser.add_argument('-v', '--verbose', action=3D'store_true', + help=3D'Increased verbosity including exception tr= acebacks') =20 args =3D parser.parse_args() =20 @@ -934,5 +962,6 @@ def main(): if args.verbose: traceback.print_exc() =20 + if __name__ =3D=3D "__main__": main() --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58484): https://edk2.groups.io/g/devel/message/58484 Mute This Topic: https://groups.io/mt/73386941/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-