@@ -44,7 +44,13 @@ class PackageXmlMetadataProvider(MetadataProvider): # type: ignore[misc] # Met
4444 like name, version, description, maintainers, etc.
4545 """
4646
47- def __init__ (self , package_xml_path : str , * args , ** kwargs ): # type: ignore[no-untyped-def] # no typing for args and kwargs
47+ def __init__ ( # type: ignore[no-untyped-def] # no typing for args and kwargs
48+ self ,
49+ package_xml_path : str ,
50+ * args ,
51+ extra_input_globs : list [str ] | None = None ,
52+ ** kwargs ,
53+ ):
4854 """
4955 Initialize the metadata provider with a package.xml file path.
5056
@@ -54,6 +60,7 @@ def __init__(self, package_xml_path: str, *args, **kwargs): # type: ignore[no-u
5460 super ().__init__ (* args , ** kwargs )
5561 self .package_xml_path = package_xml_path
5662 self ._package_data : PackageData | None = None
63+ self ._extra_input_globs = list (extra_input_globs or [])
5764 # Early load the package.xml data to ensure it's valid
5865 _ = self ._package_xml_data
5966
@@ -162,7 +169,8 @@ def repository(self) -> str | None:
162169
163170 def input_globs (self ) -> list [str ]:
164171 """Return input globs that affect this metadata provider."""
165- return ["package.xml" , "CMakeLists.txt" , "setup.py" , "setup.cfg" ]
172+ base_globs = ["package.xml" , "CMakeLists.txt" , "setup.py" , "setup.cfg" ]
173+ return list (set (base_globs + self ._extra_input_globs ))
166174
167175
168176class ROSPackageXmlMetadataProvider (PackageXmlMetadataProvider ):
@@ -173,15 +181,21 @@ class ROSPackageXmlMetadataProvider(PackageXmlMetadataProvider):
173181 as 'ros-<distro>-<package_name>' according to ROS conda packaging conventions.
174182 """
175183
176- def __init__ (self , package_xml_path : str , distro_name : str | None = None ):
184+ def __init__ (
185+ self ,
186+ package_xml_path : str ,
187+ distro_name : str | None = None ,
188+ * ,
189+ extra_input_globs : list [str ] | None = None ,
190+ ):
177191 """
178192 Initialize the ROS metadata provider.
179193
180194 Args:
181195 package_xml_path: Path to the package.xml file
182196 distro: ROS distro. If None, will use the base package name without distro prefix.
183197 """
184- super ().__init__ (package_xml_path )
198+ super ().__init__ (package_xml_path , extra_input_globs = extra_input_globs )
185199 self ._distro_name : str | None = distro_name
186200
187201 def name (self ) -> str | None :
0 commit comments