1 # -*- coding: utf-8 -*-
3 """Load a specific dataset into the database."""
5 from django
.core
import management
6 from django
.db
import transaction
7 from django
.utils
import importlib
10 class Command(management
.BaseCommand
):
11 args
= '<dataset_name dataset_name ...>'
12 help = 'Load a specific dataset into the database.'
14 def handle(self
, *dataset_names
, **options
):
16 raise ValueError("At least one dataset name must be provided.")
17 for name
in dataset_names
:
18 self
.load(name
, **options
)
20 def load(self
, dataset_name
, **options
):
21 """Loads a dataset."""
22 verbosity
= options
.get('verbosity', 0)
23 indent
= options
.pop('indent', '')
26 self
.stdout
.write(u
'%sImporting dataset %s...\n' %
(indent
, dataset_name
))
28 dataset
= importlib
.import_module('xnet.datasets.%s' % dataset_name
)
29 setup
= dataset
.Setup(verbosity
=verbosity
)
31 # Handle required datasets
32 for required
in setup
.requires
:
33 self
.load(required
, indent
=indent
+ ' ', **options
)
36 with transaction
.commit_on_success():
40 self
.stdout
.write(u
'%sDone.\n' % indent
)