Files
django-migration-linter/django_migration_linter/management/utils.py
T

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