77from multiprocessing import Pool , cpu_count
88
99import progressbar
10+ from django .apps import apps
1011from django .core .management import BaseCommand
11- from django .db .models import get_model
1212
1313from stdimage .utils import render_variations
1414
15- is_pypy = '__pypy__' in sys .builtin_module_names
1615BAR = None
1716
1817
@@ -38,7 +37,7 @@ def handle(self, *args, **options):
3837 replace = options .get ('replace' )
3938 for route in args :
4039 app_label , model_name , field_name = route .rsplit ('.' )
41- model_class = get_model (app_label , model_name )
40+ model_class = apps . get_model (app_label , model_name )
4241 field = model_class ._meta .get_field (field_name )
4342
4443 queryset = model_class ._default_manager \
@@ -47,13 +46,10 @@ def handle(self, *args, **options):
4746 images = queryset .values_list (field_name , flat = True ).iterator ()
4847 count = queryset .count ()
4948
50- if is_pypy : # pypy doesn't handle multiprocessing to well
51- self .render_linear (field , images , count , replace )
52- else :
53- self .render_in_parallel (field , images , count , replace )
49+ self .render (field , images , count , replace )
5450
5551 @staticmethod
56- def render_in_parallel (field , images , count , replace ):
52+ def render (field , images , count , replace ):
5753 pool = Pool (
5854 initializer = init_progressbar ,
5955 initargs = [count ]
@@ -72,22 +68,6 @@ def render_in_parallel(field, images, count, replace):
7268 pool .close ()
7369 pool .join ()
7470
75- @staticmethod
76- def render_linear (field , images , count , replace ):
77- init_progressbar (count )
78- args_list = [
79- dict (
80- file_name = file_name ,
81- variations = field .variations ,
82- replace = replace ,
83- storage = field .storage
84- )
85- for file_name in images
86- ]
87- for args in args_list :
88- render_variations (** args )
89- finish_progressbar ()
90-
9171
9272def init_progressbar (count ):
9373 global BAR
0 commit comments