7
7
8
8
9
9
class Command (BaseCommand ):
10
- help = ' Renders all variations of a StdImageField.'
11
- args = ' <app.model.field app.model.field>'
10
+ help = " Renders all variations of a StdImageField."
11
+ args = " <app.model.field app.model.field>"
12
12
13
13
def add_arguments (self , parser ):
14
- parser .add_argument ('field_path' ,
15
- nargs = '+' ,
16
- type = str ,
17
- help = '<app.model.field app.model.field>' )
18
- parser .add_argument ('--replace' ,
19
- action = 'store_true' ,
20
- dest = 'replace' ,
21
- default = False ,
22
- help = 'Replace existing files.' )
14
+ parser .add_argument (
15
+ "field_path" , nargs = "+" , type = str , help = "<app.model.field app.model.field>"
16
+ )
17
+ parser .add_argument (
18
+ "--replace" ,
19
+ action = "store_true" ,
20
+ dest = "replace" ,
21
+ default = False ,
22
+ help = "Replace existing files." ,
23
+ )
23
24
24
- parser .add_argument ('-i' , '--ignore-missing' ,
25
- action = 'store_true' ,
26
- dest = 'ignore_missing' ,
27
- default = False ,
28
- help = 'Ignore missing source file error and '
29
- 'skip render for that file' )
25
+ parser .add_argument (
26
+ "-i" ,
27
+ "--ignore-missing" ,
28
+ action = "store_true" ,
29
+ dest = "ignore_missing" ,
30
+ default = False ,
31
+ help = "Ignore missing source file error and " "skip render for that file" ,
32
+ )
30
33
31
34
def handle (self , * args , ** options ):
32
- replace = options .get (' replace' , False )
33
- ignore_missing = options .get (' ignore_missing' , False )
34
- routes = options .get (' field_path' , [])
35
+ replace = options .get (" replace" , False )
36
+ ignore_missing = options .get (" ignore_missing" , False )
37
+ routes = options .get (" field_path" , [])
35
38
for route in routes :
36
39
try :
37
- app_label , model_name , field_name = route .rsplit ('.' )
40
+ app_label , model_name , field_name = route .rsplit ("." )
38
41
except ValueError :
39
- raise CommandError ("Error parsing field_path '{}'. Use format "
40
- "<app.model.field app.model.field>."
41
- .format (route ))
42
+ raise CommandError (
43
+ "Error parsing field_path '{}'. Use format "
44
+ "<app.model.field app.model.field>." .format (route )
45
+ )
42
46
model_class = apps .get_model (app_label , model_name )
43
47
field = model_class ._meta .get_field (field_name )
44
48
45
- queryset = model_class ._default_manager \
46
- . exclude ( ** {' %s__isnull' % field_name : True }) \
47
- .exclude (** {field_name : '' })
49
+ queryset = model_class ._default_manager . exclude (
50
+ ** {" %s__isnull" % field_name : True }
51
+ ) .exclude (** {field_name : "" })
48
52
obj = queryset .first ()
49
53
do_render = True
50
54
if obj :
@@ -53,8 +57,7 @@ def handle(self, *args, **options):
53
57
images = queryset .values_list (field_name , flat = True ).iterator ()
54
58
count = queryset .count ()
55
59
56
- self .render (field , images , count , replace , ignore_missing ,
57
- do_render )
60
+ self .render (field , images , count , replace , ignore_missing , do_render )
58
61
59
62
@staticmethod
60
63
def render (field , images , count , replace , ignore_missing , do_render ):
@@ -70,28 +73,35 @@ def render(field, images, count, replace, ignore_missing, do_render):
70
73
)
71
74
for file_name in images
72
75
)
73
- with progressbar .ProgressBar (max_value = count , widgets = (
74
- progressbar .RotatingMarker (),
75
- ' | ' , progressbar .AdaptiveETA (),
76
- ' | ' , progressbar .Percentage (),
77
- ' ' , progressbar .Bar (),
78
- )) as bar :
76
+ with progressbar .ProgressBar (
77
+ max_value = count ,
78
+ widgets = (
79
+ progressbar .RotatingMarker (),
80
+ " | " ,
81
+ progressbar .AdaptiveETA (),
82
+ " | " ,
83
+ progressbar .Percentage (),
84
+ " " ,
85
+ progressbar .Bar (),
86
+ ),
87
+ ) as bar :
79
88
for _ in map (render_field_variations , kwargs_list ):
80
89
bar += 1
81
90
82
91
83
92
def render_field_variations (kwargs ):
84
- kwargs [' storage' ] = get_storage_class (kwargs [' storage' ])()
85
- ignore_missing = kwargs .pop (' ignore_missing' )
86
- do_render = kwargs .pop (' do_render' )
93
+ kwargs [" storage" ] = get_storage_class (kwargs [" storage" ])()
94
+ ignore_missing = kwargs .pop (" ignore_missing" )
95
+ do_render = kwargs .pop (" do_render" )
87
96
try :
88
97
if callable (do_render ):
89
- kwargs .pop (' field_class' )
98
+ kwargs .pop (" field_class" )
90
99
do_render = do_render (** kwargs )
91
100
if do_render :
92
101
render_variations (** kwargs )
93
102
except FileNotFoundError as e :
94
103
if not ignore_missing :
95
104
raise CommandError (
96
- 'Source file was not found, terminating. '
97
- 'Use -i/--ignore-missing to skip this error.' ) from e
105
+ "Source file was not found, terminating. "
106
+ "Use -i/--ignore-missing to skip this error."
107
+ ) from e
0 commit comments