def get_simple_config( dialect: Optional[str] = None, rules: Optional[List[str]] = None, exclude_rules: Optional[List[str]] = None, config_path: Optional[str] = None, ) -> FluffConfig: """Get a config object from simple API arguments.""" # Create overrides for simple API arguments. overrides = {} if dialect is not None: # Check the requested dialect exists and is valid. try: dialect_selector(dialect) except SQLFluffUserError as err: # pragma: no cover raise SQLFluffUserError( f"Error loading dialect '{dialect}': {str(err)}") except KeyError: raise SQLFluffUserError(f"Error: Unknown dialect '{dialect}'") overrides["dialect"] = dialect if rules is not None: overrides["rules"] = ",".join(rules) if exclude_rules is not None: overrides["exclude_rules"] = ",".join(exclude_rules) # Instantiate a config object. try: return FluffConfig.from_root( extra_config_path=config_path, ignore_local_config=True, overrides=overrides, ) except SQLFluffUserError as err: # pragma: no cover raise SQLFluffUserError(f"Error loading config: {str(err)}")
def get_linter_and_formatter( cfg: FluffConfig, silent: bool = False) -> Tuple[Linter, CallbackFormatter]: """Get a linter object given a config.""" try: # We're just making sure it exists at this stage. # It will be fetched properly in the linter. dialect_selector(cfg.get("dialect")) except KeyError: # pragma: no cover click.echo(f"Error: Unknown dialect '{cfg.get('dialect')}'") sys.exit(66) if not silent: # Instantiate the linter and return it (with an output function) formatter = CallbackFormatter( callback=_callback_handler(cfg=cfg), verbosity=cfg.get("verbose"), output_line_length=cfg.get("output_line_length"), ) return Linter(config=cfg, formatter=formatter), formatter else: # Instantiate the linter and return. NB: No formatter # in the Linter and a black formatter otherwise. formatter = CallbackFormatter(callback=lambda m: None, verbosity=0) return Linter(config=cfg), formatter
def get_config(**kwargs): """Get a config object from kwargs.""" if kwargs.get("dialect", None): try: # We're just making sure it exists at this stage - it will be fetched properly in the linter dialect_selector(kwargs["dialect"]) except KeyError: click.echo("Error: Unknown dialect {!r}".format(kwargs["dialect"])) sys.exit(66) # Instantiate a config object (filtering out the nulls) overrides = {k: kwargs[k] for k in kwargs if kwargs[k] is not None} return FluffConfig.from_root(overrides=overrides)
def get_config( extra_config_path: Optional[str] = None, ignore_local_config: bool = False, **kwargs, ) -> FluffConfig: """Get a config object from kwargs.""" plain_output = OutputStreamFormatter.should_produce_plain_output(kwargs["nocolor"]) if kwargs.get("dialect"): try: # We're just making sure it exists at this stage. # It will be fetched properly in the linter. dialect_selector(kwargs["dialect"]) except SQLFluffUserError as err: click.echo( OutputStreamFormatter.colorize_helper( plain_output, f"Error loading dialect '{kwargs['dialect']}': {str(err)}", color=Color.red, ) ) sys.exit(EXIT_ERROR) except KeyError: click.echo( OutputStreamFormatter.colorize_helper( plain_output, f"Error: Unknown dialect '{kwargs['dialect']}'", color=Color.red, ) ) sys.exit(EXIT_ERROR) from_root_kwargs = {} if "require_dialect" in kwargs: from_root_kwargs["require_dialect"] = kwargs.pop("require_dialect") # Instantiate a config object (filtering out the nulls) overrides = {k: kwargs[k] for k in kwargs if kwargs[k] is not None} try: return FluffConfig.from_root( extra_config_path=extra_config_path, ignore_local_config=ignore_local_config, overrides=overrides, **from_root_kwargs, ) except SQLFluffUserError as err: # pragma: no cover click.echo( OutputStreamFormatter.colorize_helper( plain_output, f"Error loading config: {str(err)}", color=Color.red, ) ) sys.exit(EXIT_ERROR)
def get_linter_and_formatter( cfg: FluffConfig, output_stream: Optional[OutputStream] = None ) -> Tuple[Linter, OutputStreamFormatter]: """Get a linter object given a config.""" try: # We're just making sure it exists at this stage. # It will be fetched properly in the linter. dialect = cfg.get("dialect") if dialect: dialect_selector(dialect) except KeyError: # pragma: no cover click.echo(f"Error: Unknown dialect '{cfg.get('dialect')}'") sys.exit(EXIT_ERROR) formatter = OutputStreamFormatter( output_stream=output_stream or make_output_stream(cfg), nocolor=cfg.get("nocolor"), verbosity=cfg.get("verbose"), output_line_length=cfg.get("output_line_length"), ) return Linter(config=cfg, formatter=formatter), formatter
def get_linter_and_formatter(cfg, silent=False): """Get a linter object given a config.""" try: # We're just making sure it exists at this stage - it will be fetched properly in the linter dialect_selector(cfg.get("dialect")) except KeyError: click.echo("Error: Unknown dialect {0!r}".format(cfg.get("dialect"))) sys.exit(66) if not silent: # Instantiate the linter and return (with an output function) formatter = CallbackFormatter( callback=lambda m: click.echo(m, color=cfg.get("color")), verbosity=cfg.get("verbose"), output_line_length=cfg.get("output_line_length"), ) return Linter(config=cfg, formatter=formatter), formatter else: # Instantiate the linter and return. NB: No formatter # in the Linter and a black formatter otherwise. formatter = CallbackFormatter(callback=lambda m: None, verbosity=0) return Linter(config=cfg), formatter
def get_config( extra_config_path: Optional[str] = None, ignore_local_config: bool = False, **kwargs, ) -> FluffConfig: """Get a config object from kwargs.""" if "dialect" in kwargs: try: # We're just making sure it exists at this stage. # It will be fetched properly in the linter. dialect_selector(kwargs["dialect"]) except SQLFluffUserError as err: click.echo( colorize( f"Error loading dialect '{kwargs['dialect']}': {str(err)}", color=Color.red, )) sys.exit(66) except KeyError: click.echo( colorize(f"Error: Unknown dialect '{kwargs['dialect']}'", color=Color.red)) sys.exit(66) # Instantiate a config object (filtering out the nulls) overrides = {k: kwargs[k] for k in kwargs if kwargs[k] is not None} try: return FluffConfig.from_root( extra_config_path=extra_config_path, ignore_local_config=ignore_local_config, overrides=overrides, ) except SQLFluffUserError as err: # pragma: no cover click.echo( colorize( f"Error loading config: {str(err)}", color=Color.red, )) sys.exit(66)