import re


def split_by_pipes_nonnested(cmd):
    """
    Split the command by shell pipes, but preserve contents in 
    parentheses and braces.

    :param str cmd: Command to investigate.
    :return list: List of sub commands to be linked
    """
    # for posterity, this one will do parens only: re.compile(r'(?:[^|(]|\([^)]*\))+')
    # r = re.compile(r'(?:[^|({]|[\({][^)}]*[\)}])+')
    r = re.compile(r'(?:[^|(]|\([^)]*\)+|\{[^}]*\})')
    return r.findall(cmd)