  #!/usr/bin/python
  """ Logging Setup """
  import collections
  import logging
  from logging.handlers import QueueHandler, QueueListener, RotatingFileHandler
  import os
  import re
  import sys
  import traceback
  
 
</s> remove import multiprocessing as mp
from multiprocessing.sharedctypes import RawArray
from ctypes import c_float
 </s> add from multiprocessing import cpu_count </s> remove from io import StringIO
 </s> add  </s> remove import logging
import os
import traceback
 </s> add >>> {"filename": [<filename of source frame>],
>>>  "image": [<source image>],
>>>  "landmarks": [list of 68 point face landmarks]
>>>  "detected_faces": [<list of DetectedFace objects>]}
""" </s> remove     - Use the function self.to_bounding_box_dict(left, right, top, bottom) to define the dict
    """

import logging
import os
import traceback
from io import StringIO
 </s> add >>> {'filename': <filename of source frame>,
>>>  'image':  <source image>,
>>>  'detected_faces': <list of DetectedFace objects containing bounding box points}} </s> remove from lib.utils import get_backend

 </s> add 
from logging.handlers import RotatingFileHandler
  #!/usr/bin/python
  """ Logging Setup """
  import collections
  import logging
from logging.handlers import RotatingFileHandler
  import os
  import re
  import sys
  import traceback
  
keep keep keep keep replace keep keep keep keep keep
 De-Multiprocess Extract (#871)

* requirements.txt: - Pin opencv to 4.1.1 (fixes cv2-dnn error)

* lib.face_detect.DetectedFace: change LandmarksXY to landmarks_xy. Add left, right, top, bottom attributes

* lib.model.session: Session manager for loading models into different graphs (for Nvidia + CPU)

* plugins.extract._base: New parent class for all extract plugins

* plugins.extract.pipeline. Remove MultiProcessing. Dynamically limit batchsize for Nvidia cards. Remove loglevel input

* S3FD + FAN plugins. Standardise to Keras version for all backends

* Standardize all extract plugins to new threaded codebase

* Documentation. Start implementing Numpy style docstrings for Sphinx Documentation

* Remove s3fd_amd. Change convert OTF to expect DetectedFace object

* faces_detect - clean up and documentation

* Remove PoolProcess

* Migrate manual tool to new extract workflow

* Remove AMD specific extractor code from cli and plugins

* Sort tool to new extract workflow

* Remove multiprocessing from project

* Remove multiprocessing queues from QueueManager

* Remove multiprocessing support from logger

* Move face_filter to new extraction pipeline

* Alignments landmarksXY > landmarks_xy and legacy handling

* Intercept get_backend for sphinx doc build

# Add Sphinx documentation 
lib/logger.py