def core_options(f):
    'Add core operation options to commands via a decorator.\n\n    These are applied to the main (but not all) cli commands like\n    `parse`, `lint` and `fix`.\n    '
    f = click.option('--dialect', default=None, help='The dialect of SQL to lint (default=ansi)')(f)
    f = click.option('--templater', default=None, help='The templater to use (default=jinja)')(f)
    f = click.option('--rules', default=None, help='Narrow the search to only specific rules. For example specifying `--rules L001` will only search for rule `L001` (Unnecessary trailing whitespace). Multiple rules can be specified with commas e.g. `--rules L001,L002` will specify only looking for violations of rule `L001` and rule `L002`.')(f)
    f = click.option('--exclude-rules', default=None, help='Exclude specific rules. For example specifying `--exclude-rules L001` will remove rule `L001` (Unnecessary trailing whitespace) from the set of considered rules. This could either be the whitelist, or the general set if there is no specific whitelist. Multiple rules can be specified with commas e.g. `--exclude-rules L001,L002` will exclude violations of rule `L001` and rule `L002`.')(f)
    f = click.option('--ignore', default=None, help="Ignore particular families of errors so that they don't cause a failed run. For example `--ignore parsing` would mean that any parsing errors are ignored and don't influence the success or fail of a run. Multiple options are possible if comma separated e.g. `--ignore parsing,templating`.")(f)
    f = click.option('--bench', is_flag=True, help='Set this flag to engage the benchmarking tool output.')(f)
    f = click.option('--logger', type=click.Choice(['parser', 'linter', 'rules'], case_sensitive=False), help='Choose to limit the logging to one of the loggers.')(f)
    return f
Add core operation options to commands via a decorator.

These are applied to the main (but not all) cli commands like
`parse`, `lint` and `fix`.
def core_options(f):
    'Add core operation options to commands via a decorator.\n\n    These are applied to the main (but not all) cli commands like\n    `parse`, `lint` and `fix`.\n    '
    f = click.option('--dialect', default=None, help='The dialect of SQL to lint (default=ansi)')(f)
    f = click.option('--templater', default=None, help='The templater to use (default=jinja)')(f)
    f = click.option('--rules', default=None, help='Narrow the search to only specific rules. For example specifying `--rules L001` will only search for rule `L001` (Unnecessary trailing whitespace). Multiple rules can be specified with commas e.g. `--rules L001,L002` will specify only looking for violations of rule `L001` and rule `L002`.')(f)
    f = click.option('--exclude-rules', default=None, help='Exclude specific rules. For example specifying `--exclude-rules L001` will remove rule `L001` (Unnecessary trailing whitespace) from the set of considered rules. This could either be the whitelist, or the general set if there is no specific whitelist. Multiple rules can be specified with commas e.g. `--exclude-rules L001,L002` will exclude violations of rule `L001` and rule `L002`.')(f)
    f = click.option('--ignore', default=None, help="Ignore particular families of errors so that they don't cause a failed run. For example `--ignore parsing` would mean that any parsing errors are ignored and don't influence the success or fail of a run. Multiple options are possible if comma separated e.g. `--ignore parsing,templating`.")(f)
    f = click.option('--bench', is_flag=True, help='Set this flag to engage the benchmarking tool output.')(f)
    f = click.option('--logger', type=click.Choice(['parser', 'linter', 'rules'], case_sensitive=False), help='Choose to limit the logging to one of the loggers.')(f)
    return f