def have_variant_but_for_python(meta: MetaData) -> bool: """Checks if we have an exact or ``py[23]_`` prefixed match to name/version/buildstring Ignores osx. Args: meta: Variant MetaData object Returns: True if FIXME """ def strip_py(build): if build.startswith("py"): return build[4:] return build builds = RepoData().get_package_data('build', name=meta.name(), version=meta.version(), platform=['linux', 'noarch']) res = [ build for build in builds if strip_py(build) == strip_py(meta.build_id()) ] if res: logger.debug("Package %s=%s has %s (want %s)", meta.name(), meta.version(), res, meta.build_id()) return bool(res)
def have_variant(meta: MetaData) -> bool: """Checks if we have an exact match to name/version/buildstring Args: meta: Variant MetaData object Returns: True if the variant's build string exists already in the repodata """ res = RepoData().get_package_data(name=meta.name(), version=meta.version(), build=meta.build_id(), platform=['linux', 'noarch']) if res: logger.debug("Package %s=%s=%s exists", meta.name(), meta.version(), meta.build_id()) return res
def has_invalid_build_string(meta: MetaData) -> bool: build_string = meta.build_id() return not (build_string and set(build_string).issubset(allowed_build_string_characters))