summaryrefslogtreecommitdiff
path: root/django/core/management/commands/dumpdata.py
diff options
context:
space:
mode:
authordjango-bot <ops@djangoproject.com>2022-02-03 20:24:19 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-07 20:37:05 +0100
commit9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch)
treef0506b668a013d0063e5fba3dbf4863b466713ba /django/core/management/commands/dumpdata.py
parentf68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff)
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'django/core/management/commands/dumpdata.py')
-rw-r--r--django/core/management/commands/dumpdata.py136
1 files changed, 83 insertions, 53 deletions
diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py
index 925a23a56d..74a5b2d22a 100644
--- a/django/core/management/commands/dumpdata.py
+++ b/django/core/management/commands/dumpdata.py
@@ -10,12 +10,14 @@ from django.db import DEFAULT_DB_ALIAS, router
try:
import bz2
+
has_bz2 = True
except ImportError:
has_bz2 = False
try:
import lzma
+
has_lzma = True
except ImportError:
has_lzma = False
@@ -33,65 +35,79 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument(
- 'args', metavar='app_label[.ModelName]', nargs='*',
- help='Restricts dumped data to the specified app_label or app_label.ModelName.',
+ "args",
+ metavar="app_label[.ModelName]",
+ nargs="*",
+ help="Restricts dumped data to the specified app_label or app_label.ModelName.",
)
parser.add_argument(
- '--format', default='json',
- help='Specifies the output serialization format for fixtures.',
+ "--format",
+ default="json",
+ help="Specifies the output serialization format for fixtures.",
)
parser.add_argument(
- '--indent', type=int,
- help='Specifies the indent level to use when pretty-printing output.',
+ "--indent",
+ type=int,
+ help="Specifies the indent level to use when pretty-printing output.",
)
parser.add_argument(
- '--database',
+ "--database",
default=DEFAULT_DB_ALIAS,
- help='Nominates a specific database to dump fixtures from. '
- 'Defaults to the "default" database.',
+ help="Nominates a specific database to dump fixtures from. "
+ 'Defaults to the "default" database.',
)
parser.add_argument(
- '-e', '--exclude', action='append', default=[],
- help='An app_label or app_label.ModelName to exclude '
- '(use multiple --exclude to exclude multiple apps/models).',
+ "-e",
+ "--exclude",
+ action="append",
+ default=[],
+ help="An app_label or app_label.ModelName to exclude "
+ "(use multiple --exclude to exclude multiple apps/models).",
)
parser.add_argument(
- '--natural-foreign', action='store_true', dest='use_natural_foreign_keys',
- help='Use natural foreign keys if they are available.',
+ "--natural-foreign",
+ action="store_true",
+ dest="use_natural_foreign_keys",
+ help="Use natural foreign keys if they are available.",
)
parser.add_argument(
- '--natural-primary', action='store_true', dest='use_natural_primary_keys',
- help='Use natural primary keys if they are available.',
+ "--natural-primary",
+ action="store_true",
+ dest="use_natural_primary_keys",
+ help="Use natural primary keys if they are available.",
)
parser.add_argument(
- '-a', '--all', action='store_true', dest='use_base_manager',
+ "-a",
+ "--all",
+ action="store_true",
+ dest="use_base_manager",
help="Use Django's base manager to dump all models stored in the database, "
- "including those that would otherwise be filtered or modified by a custom manager.",
+ "including those that would otherwise be filtered or modified by a custom manager.",
)
parser.add_argument(
- '--pks', dest='primary_keys',
+ "--pks",
+ dest="primary_keys",
help="Only dump objects with given primary keys. Accepts a comma-separated "
- "list of keys. This option only works when you specify one model.",
+ "list of keys. This option only works when you specify one model.",
)
parser.add_argument(
- '-o', '--output',
- help='Specifies file to which the output is written.'
+ "-o", "--output", help="Specifies file to which the output is written."
)
def handle(self, *app_labels, **options):
- format = options['format']
- indent = options['indent']
- using = options['database']
- excludes = options['exclude']
- output = options['output']
- show_traceback = options['traceback']
- use_natural_foreign_keys = options['use_natural_foreign_keys']
- use_natural_primary_keys = options['use_natural_primary_keys']
- use_base_manager = options['use_base_manager']
- pks = options['primary_keys']
+ format = options["format"]
+ indent = options["indent"]
+ using = options["database"]
+ excludes = options["exclude"]
+ output = options["output"]
+ show_traceback = options["traceback"]
+ use_natural_foreign_keys = options["use_natural_foreign_keys"]
+ use_natural_primary_keys = options["use_natural_primary_keys"]
+ use_base_manager = options["use_base_manager"]
+ pks = options["primary_keys"]
if pks:
- primary_keys = [pk.strip() for pk in pks.split(',')]
+ primary_keys = [pk.strip() for pk in pks.split(",")]
else:
primary_keys = []
@@ -101,8 +117,10 @@ class Command(BaseCommand):
if primary_keys:
raise CommandError("You can only use --pks option with one model")
app_list = dict.fromkeys(
- app_config for app_config in apps.get_app_configs()
- if app_config.models_module is not None and app_config not in excluded_apps
+ app_config
+ for app_config in apps.get_app_configs()
+ if app_config.models_module is not None
+ and app_config not in excluded_apps
)
else:
if len(app_labels) > 1 and primary_keys:
@@ -110,7 +128,7 @@ class Command(BaseCommand):
app_list = {}
for label in app_labels:
try:
- app_label, model_label = label.split('.')
+ app_label, model_label = label.split(".")
try:
app_config = apps.get_app_config(app_label)
except LookupError as e:
@@ -120,7 +138,9 @@ class Command(BaseCommand):
try:
model = app_config.get_model(model_label)
except LookupError:
- raise CommandError("Unknown model: %s.%s" % (app_label, model_label))
+ raise CommandError(
+ "Unknown model: %s.%s" % (app_label, model_label)
+ )
app_list_value = app_list.setdefault(app_config, [])
@@ -131,7 +151,9 @@ class Command(BaseCommand):
app_list_value.append(model)
except ValueError:
if primary_keys:
- raise CommandError("You can only use --pks option with one model")
+ raise CommandError(
+ "You can only use --pks option with one model"
+ )
# This is just an app - no model qualifier
app_label = label
try:
@@ -158,7 +180,9 @@ class Command(BaseCommand):
count the number of objects to be serialized.
"""
if use_natural_foreign_keys:
- models = serializers.sort_dependencies(app_list.items(), allow_cycles=True)
+ models = serializers.sort_dependencies(
+ app_list.items(), allow_cycles=True
+ )
else:
# There is no need to sort dependencies when natural foreign
# keys are not used.
@@ -173,7 +197,8 @@ class Command(BaseCommand):
continue
if model._meta.proxy and model._meta.proxy_for_model not in models:
warnings.warn(
- "%s is a proxy model and won't be serialized." % model._meta.label,
+ "%s is a proxy model and won't be serialized."
+ % model._meta.label,
category=ProxyModelWarning,
)
if not model._meta.proxy and router.allow_migrate_model(using, model):
@@ -195,25 +220,27 @@ class Command(BaseCommand):
progress_output = None
object_count = 0
# If dumpdata is outputting to stdout, there is no way to display progress
- if output and self.stdout.isatty() and options['verbosity'] > 0:
+ if output and self.stdout.isatty() and options["verbosity"] > 0:
progress_output = self.stdout
object_count = sum(get_objects(count_only=True))
if output:
file_root, file_ext = os.path.splitext(output)
compression_formats = {
- '.bz2': (open, {}, file_root),
- '.gz': (gzip.open, {}, output),
- '.lzma': (open, {}, file_root),
- '.xz': (open, {}, file_root),
- '.zip': (open, {}, file_root),
+ ".bz2": (open, {}, file_root),
+ ".gz": (gzip.open, {}, output),
+ ".lzma": (open, {}, file_root),
+ ".xz": (open, {}, file_root),
+ ".zip": (open, {}, file_root),
}
if has_bz2:
- compression_formats['.bz2'] = (bz2.open, {}, output)
+ compression_formats[".bz2"] = (bz2.open, {}, output)
if has_lzma:
- compression_formats['.lzma'] = (
- lzma.open, {'format': lzma.FORMAT_ALONE}, output
+ compression_formats[".lzma"] = (
+ lzma.open,
+ {"format": lzma.FORMAT_ALONE},
+ output,
)
- compression_formats['.xz'] = (lzma.open, {}, output)
+ compression_formats[".xz"] = (lzma.open, {}, output)
try:
open_method, kwargs, file_path = compression_formats[file_ext]
except KeyError:
@@ -225,15 +252,18 @@ class Command(BaseCommand):
f"Fixtures saved in '{file_name}'.",
RuntimeWarning,
)
- stream = open_method(file_path, 'wt', **kwargs)
+ stream = open_method(file_path, "wt", **kwargs)
else:
stream = None
try:
serializers.serialize(
- format, get_objects(), indent=indent,
+ format,
+ get_objects(),
+ indent=indent,
use_natural_foreign_keys=use_natural_foreign_keys,
use_natural_primary_keys=use_natural_primary_keys,
- stream=stream or self.stdout, progress_output=progress_output,
+ stream=stream or self.stdout,
+ progress_output=progress_output,
object_count=object_count,
)
finally: