77
88
99class 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>"
1212
1313 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+ )
2324
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+ )
3033
3134 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" , [])
3538 for route in routes :
3639 try :
37- app_label , model_name , field_name = route .rsplit ('.' )
40+ app_label , model_name , field_name = route .rsplit ("." )
3841 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+ )
4246 model_class = apps .get_model (app_label , model_name )
4347 field = model_class ._meta .get_field (field_name )
4448
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 : "" })
4852 obj = queryset .first ()
4953 do_render = True
5054 if obj :
@@ -53,8 +57,7 @@ def handle(self, *args, **options):
5357 images = queryset .values_list (field_name , flat = True ).iterator ()
5458 count = queryset .count ()
5559
56- self .render (field , images , count , replace , ignore_missing ,
57- do_render )
60+ self .render (field , images , count , replace , ignore_missing , do_render )
5861
5962 @staticmethod
6063 def render (field , images , count , replace , ignore_missing , do_render ):
@@ -70,28 +73,35 @@ def render(field, images, count, replace, ignore_missing, do_render):
7073 )
7174 for file_name in images
7275 )
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 :
7988 for _ in map (render_field_variations , kwargs_list ):
8089 bar += 1
8190
8291
8392def 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" )
8796 try :
8897 if callable (do_render ):
89- kwargs .pop (' field_class' )
98+ kwargs .pop (" field_class" )
9099 do_render = do_render (** kwargs )
91100 if do_render :
92101 render_variations (** kwargs )
93102 except FileNotFoundError as e :
94103 if not ignore_missing :
95104 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