77
88
99class Distro (object ):
10- def __init__ (self , distro_name , python_version = None , snapshot = None , additional_packages_snapshot = None ):
10+ def __init__ (
11+ self ,
12+ distro_name ,
13+ python_version = None ,
14+ snapshot = None ,
15+ additional_packages_snapshot = None ,
16+ ):
1117 index = get_index (get_index_url ())
1218 self ._distro = get_cached_distribution (index , distro_name )
1319 self .distro_name = distro_name
@@ -49,20 +55,30 @@ def get_depends(self, pkg, ignore_pkgs=None):
4955 return dependencies
5056
5157 # if pkg comes from additional_packages_snapshot, extract from its package.xml
52- if self .additional_packages_snapshot and pkg in self .additional_packages_snapshot :
58+ if (
59+ self .additional_packages_snapshot
60+ and pkg in self .additional_packages_snapshot
61+ ):
5362 pkg_info = self .additional_packages_snapshot [pkg ]
5463 xml_str = self .get_package_xml_for_additional_package (pkg_info )
5564 # parse XML
5665 import xml .etree .ElementTree as ET
66+
5767 root = ET .fromstring (xml_str )
5868 # collect direct dependencies tags from package.xml
5969 dep_tags = [
60- 'depend' , 'build_depend' , 'buildtool_depend' , 'buildtool_export_depend' ,
61- 'exec_depend' , 'run_depend' , 'test_depend' , 'build_export_depend'
70+ "depend" ,
71+ "build_depend" ,
72+ "buildtool_depend" ,
73+ "buildtool_export_depend" ,
74+ "exec_depend" ,
75+ "run_depend" ,
76+ "test_depend" ,
77+ "build_export_depend" ,
6278 ]
6379 direct = set ()
6480 for tag in dep_tags :
65- for elem in root .findall (f' .//{ tag } ' ):
81+ for elem in root .findall (f" .//{ tag } " ):
6682 if elem .text :
6783 name = elem .text .strip ()
6884 direct .add (name )
@@ -111,18 +127,26 @@ def get_released_repo(self, pkg_name):
111127 pkg = self ._distro .release_packages [pkg_name ]
112128 repo = self ._distro .repositories [pkg .repository_name ].release_repository
113129 release_tag = get_release_tag (repo , pkg_name )
114- return repo .url , release_tag , ' tag'
130+ return repo .url , release_tag , " tag"
115131
116132 def check_package (self , pkg_name ):
117133 # If the package is in the additional_packages_snapshot, it is always considered valid
118134 # even if it is not in the released packages, as it is an additional
119135 # package specified in rosdistro_additional_recipes.yaml
120- if self .additional_packages_snapshot and pkg_name in self .additional_packages_snapshot :
136+ if (
137+ self .additional_packages_snapshot
138+ and pkg_name in self .additional_packages_snapshot
139+ ):
121140 return True
122141 # the .replace('_', '-') is needed for packages like 'hpp-fcl' that have hypen and not underscore
123142 # in the rosdistro metadata
124- if pkg_name in self ._distro .release_packages or pkg_name .replace ('_' , '-' ) in self ._distro .release_packages :
125- return self .snapshot is None or (pkg_name in self .snapshot or pkg_name .replace ('_' , '-' ) in self .snapshot )
143+ if (
144+ pkg_name in self ._distro .release_packages
145+ or pkg_name .replace ("_" , "-" ) in self ._distro .release_packages
146+ ):
147+ return self .snapshot is None or (
148+ pkg_name in self .snapshot or pkg_name .replace ("_" , "-" ) in self .snapshot
149+ )
126150 elif pkg_name in self .build_packages :
127151 return True
128152 else :
@@ -137,7 +161,10 @@ def get_version(self, pkg_name):
137161 return repo .version .split ("-" )[0 ]
138162
139163 def get_release_package_xml (self , pkg_name ):
140- if self .additional_packages_snapshot and pkg_name in self .additional_packages_snapshot :
164+ if (
165+ self .additional_packages_snapshot
166+ and pkg_name in self .additional_packages_snapshot
167+ ):
141168 pkg_info = self .additional_packages_snapshot [pkg_name ]
142169 return self .get_package_xml_for_additional_package (pkg_info )
143170 return self ._distro .get_release_package_xml (pkg_name )
@@ -171,6 +198,6 @@ def get_package_xml_for_additional_package(self, pkg_info):
171198 raw_url = f"https://raw.githubusercontent.com/{ owner_repo } /{ ref } /{ additional_folder } { xml_name } "
172199 try :
173200 with urllib .request .urlopen (raw_url ) as resp :
174- return resp .read ().decode (' utf-8' )
201+ return resp .read ().decode (" utf-8" )
175202 except Exception as e :
176203 raise RuntimeError (f"Failed to fetch package.xml from { raw_url } : { e } " )
0 commit comments