def run(config):
    """
    This script will create a data-specific parser, and run it.
    """

    if not config:
        raise AttributeError('Please provide a path to the data. For'
                             'example: <PATH...>/DSTC2/dstc2_traindev/data/')

    if config[-5:] == '.yaml':
        config = check_file_path(config)

        with open(config, 'r') as file:
            args = yaml.load(file, Loader=yaml.Loader)

    else:
        raise ValueError('Unacceptable config file type for data parser.')

    if 'package' not in args:
        raise AttributeError('Please provide a "package" argument for '
                             'data parser!')

    if 'class' not in args:
        raise AttributeError('Please provide a "class" argument for '
                             'data parser!')

    if 'arguments' not in args:
        print(f'Warning! Data Parser {args["package"]}.'
              f'{args["class"]} called without arguments!')

        args['arguments'] = {}

    parser = ConversationalGenericAgent.load_module(args['package'],
                                                    args['class'],
                                                    args['arguments'])

    parser.initialize(**args['arguments'])

    print('Parsing...')

    parser.parse_data()

    print('Parsing complete.')

    # Save plato experience logs
    parser.save(f'logs/')

    print('Logs saved.')

    This script will create a data-specific parser, and run it.
    
plato/utilities/parser/run_data_parser.py