INNER CODE UNIT · Python
Recipe
ExplosionEngine/Explosion · ThirdParty/ConanRecipes/build_recipes.py:54
class Recipe:
def __init__(self, path: Path):
self.path = path
self.dir_name = path.name
self.conanfile = path / "conanfile.py"
self.conandata = path / "conandata.yml"
data = yaml.safe_load(self.conandata.read_text(encoding="utf-8")) or {}
self.name = self._parse_name() or self.dir_name
self.versions = list_versions(data)
self.version = self.versions[0] if self.versions else None
self.platforms = data.get("platforms") or []
self.requires = data.get("requires") or []
def _parse_name(self) -> str | None:
text = self.conanfile.read_text(encoding="utf-8")
match = re.search(r"""^\s*name\s*=\s*["']([^"']+)["']""", text, re.MULTILINE)
return match.group(1) if match else None