class Dependabot::Uv::Package::PackageDetailsFetcher
def convert_language_version(version)
def convert_language_version(version) return ["python", nil] if version.nil? || version == "source" # Extract numeric parts dynamically (e.g., "cp37" -> "3.7", "py38" -> "3.8") extracted_version = version.scan(/\d+/).join(".") # Detect the language implementation language_name = if version.start_with?("cp") "cpython" # CPython implementation elsif version.start_with?("py") "python" # General Python compatibility else "unknown" # Fallback for unknown cases end # Ensure extracted version is valid before converting language_version = extracted_version.match?(/^\d+(\.\d+)*$/) ? Dependabot::Version.new(extracted_version) : nil Dependabot.logger.warn("Skipping invalid language_version: #{version.inspect}") if language_version.nil? [language_name, language_version] end