  from six import string_types, iteritems
  
  import cv2
  import numpy as np
  import tensorflow as tf
  
  from lib.multithreading import MultiThread
  from ._base import Detector, dlib
  
  
 
</s> remove from ._base import Detector, dlib
 </s> add from ._base import Detector, dlib, logger


# Must import tensorflow inside the spawned process
# for Windows machines
tf = None  # pylint: disable = invalid-name


def import_tensorflow():
    """ Import tensorflow from inside spawned process """
    global tf  # pylint: disable = invalid-name,global-statement
    import tensorflow as tflow
    tf = tflow </s> remove import tensorflow as tf
 </s> add  </s> remove from ._base import Aligner
 </s> add from ._base import Aligner, logger </s> remove from ._base import Detector, dlib
 </s> add from ._base import Detector, dlib, logger </s> remove from ._base import Detector, dlib
 </s> add from ._base import Detector, dlib, logger
  from six import string_types, iteritems
  
  import cv2
  import numpy as np

  
  from lib.multithreading import MultiThread
  from ._base import Detector, dlib
  
  
keep keep keep keep replace keep keep keep keep keep
 Logging (#541)

* Convert prints to logger. Further logging improvements. Tidy  up

* Fix system verbosity. Allow SystemExit

* Fix reload extract bug

* Child Traceback handling

* Safer shutdown procedure

* Add shutdown event to queue manager

* landmarks_as_xy > property. GUI notes + linting. Aligner bugfix

* fix FaceFilter. Enable nFilter when no Filter is supplied

* Fix blurry face filter

* Continue on IO error. Better error handling

* Explicitly print stack trace tocrash log

* Windows Multiprocessing bugfix

* Add git info and conda version to crash log

* Windows/Anaconda mp bugfix

* Logging fixes for training 
plugins/extract/detect/mtcnn.py