<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _slurm_info(queue):
 """Returns machine information for a slurm job scheduler. """

    cl = "sinfo -h -p {} --format '%c %m %D'".format(queue)
    num_cpus, mem, num_nodes = subprocess.check_output(shlex.split(cl)).decode().split()
    # if the queue contains multiple memory configurations, the minimum value is printed with a trailing '+'
    mem = float(mem.replace('+', ''))
    num_cpus = int(num_cpus.replace('+', ''))
    # handle small clusters where we need to allocate memory for bcbio and the controller
    # This will typically be on cloud AWS machines
    bcbio_mem = 2000
    controller_mem = 4000
    if int(num_nodes) < 3 and mem > (bcbio_mem + controller_mem) * 2:
        mem = mem - bcbio_mem - controller_mem
    return [{"cores": int(num_cpus), "memory": mem / 1024.0, "name": "slurm_machine"}]