62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
import logging
|
|
|
|
from ..sql_analyser.analyser import ANALYSER_STRING_MAPPING
|
|
|
|
|
|
def register_linting_configuration_options(parser):
|
|
parser.add_argument(
|
|
"--database",
|
|
type=str,
|
|
nargs="?",
|
|
help=(
|
|
"specify the database for which to generate the SQL. Defaults to default"
|
|
),
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--exclude-migration-tests",
|
|
type=str,
|
|
nargs="*",
|
|
help="Specify backward incompatible migration tests "
|
|
"to be ignored (e.g. ALTER_COLUMN)",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--warnings-as-errors",
|
|
type=str,
|
|
nargs="*",
|
|
help="handle warnings as errors. Optionally specify the tests to handle as "
|
|
"errors (e.g. RUNPYTHON_REVERSIBLE)",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--sql-analyser",
|
|
nargs="?",
|
|
choices=list(ANALYSER_STRING_MAPPING.keys()),
|
|
help="select the SQL analyser",
|
|
)
|
|
|
|
|
|
def configure_logging(verbosity):
|
|
logger = logging.getLogger("django_migration_linter")
|
|
|
|
if verbosity > 1:
|
|
logging.basicConfig(format="%(message)s", level=logging.DEBUG)
|
|
elif verbosity == 0:
|
|
logger.disabled = True
|
|
else:
|
|
logging.basicConfig(format="%(message)s")
|
|
|
|
|
|
def extract_warnings_as_errors_option(warnings_as_errors):
|
|
if isinstance(warnings_as_errors, list):
|
|
warnings_as_errors_tests = warnings_as_errors
|
|
# If the option is specified but without any test codes,
|
|
# all warnings become errors
|
|
all_warnings_as_errors = len(warnings_as_errors) == 0
|
|
else:
|
|
warnings_as_errors_tests = None
|
|
all_warnings_as_errors = False
|
|
|
|
return warnings_as_errors_tests, all_warnings_as_errors
|