Skip to content

Commit 6287cef

Browse files
authored
fix: extra-input-globs (#394)
1 parent bd06ae6 commit 6287cef

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

backends/pixi-build-ros/src/pixi_build_ros/metadata_provider.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

168176
class 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:

backends/pixi-build-ros/src/pixi_build_ros/ros_generator.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ def generate_recipe(
4747
)
4848
# Create metadata provider for package.xml
4949
package_xml_path = manifest_root / "package.xml"
50-
metadata_provider = ROSPackageXmlMetadataProvider(str(package_xml_path), backend_config.distro.name)
50+
metadata_provider = ROSPackageXmlMetadataProvider(
51+
str(package_xml_path),
52+
backend_config.distro.name,
53+
extra_input_globs=list(backend_config.extra_input_globs or []),
54+
)
5155

5256
# Create base recipe from model with metadata provider
5357
generated_recipe = GeneratedRecipe.from_model(model, metadata_provider)

backends/pixi-build-ros/src/pixi_build_ros/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ def get_build_input_globs(config: dict[str, Any], editable: bool) -> list[str]:
5050
python_globs = [] if editable else ["**/*.py", "**/*.pyx"]
5151

5252
all_globs = base_globs + python_globs
53-
if config.get("extra_input_globs"):
54-
all_globs.extend(config["extra_input_globs"])
53+
if config.get("extra-input-globs"):
54+
all_globs.extend(config["extra-input-globs"])
5555
return all_globs
5656

5757

0 commit comments

Comments
 (0)