class Dependabot::Uv::UpdateChecker::RequirementsUpdater

def update_pyproject_version(req)

def update_pyproject_version(req)
  requirement_strings = req[:requirement].split(",").map(&:strip)
  new_requirement =
    if requirement_strings.any? { |r| r.match?(/^=|^\d/) }
      # If there is an equality operator, just update that. It must
      # be binding and any other requirements will be being ignored
      find_and_update_equality_match(requirement_strings)
    elsif requirement_strings.any? { |r| r.start_with?("~", "^") }
      # If a compatibility operator is being used, just bump its
      # version (and remove any other requirements)
      v_req = requirement_strings.find { |r| r.start_with?("~", "^") }
      bump_version(v_req, latest_resolvable_version.to_s)
    elsif new_version_satisfies?(req)
      # Otherwise we're looking at a range operator. No change
      # required if it's already satisfied
      req.fetch(:requirement)
    else
      # But if it's not, update it
      update_requirements_range(requirement_strings)
    end
  req.merge(requirement: new_requirement)
end