diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /django/core/management/commands/dumpdata.py | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'django/core/management/commands/dumpdata.py')
| -rw-r--r-- | django/core/management/commands/dumpdata.py | 136 |
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: |
