def parse_presentation_logfile(in_file, con_names, con_codes, con_design=
    None, con_duration=None, pulsecode=30):
    """
    Function-interface for PresentationLogfileCrawler. Can be used to create
    a Nipype node.

    Parameters
    ----------
    in_file : str or list
        Absolute path to logfile (can be a list of paths).
    con_names : list
        List with names for each condition
    con_codes : list
        List with codes for conditions. Can be a single integer or string (in
        the latter case, it may be a substring) or a list with possible values.
    con_design : list or str
        Which 'design' to assume for events (if 'multivar', all events -
        regardless of condition - are treated as a separate
        condition/regressor; if 'univar', all events from a single condition
        are treated as a single condition). Default: 'univar' for all
        conditions.
    con_duration : list
        If the duration cannot be parsed from the logfile, you can specify them
        here manually (per condition).
    pulsecode : int
        Code with which the first (or any) pulse is logged.
    """
    from skbold.exp_model import PresentationLogfileCrawler
    plc = PresentationLogfileCrawler(in_file=in_file, con_names=con_names,
        con_codes=con_codes, con_design=con_design, con_duration=
        con_duration, pulsecode=pulsecode, write_bfsl=True, verbose=False)
    subject_info_files = plc.parse()
    return subject_info_files
