      arguments = None
  
      def __init__(self, subparser, command, description='default'):
          self.parse_arguments(description, subparser, command)
          self.lock = Lock()
  
      def process_arguments(self, arguments):
          self.arguments = arguments
          print("Model A Directory: {}".format(self.arguments.input_A))
          print("Model B Directory: {}".format(self.arguments.input_B))
 
</s> remove         import threading
 </s> add 
        self.lock = threading.Lock()
      arguments = None
  
      def __init__(self, subparser, command, description='default'):
          self.parse_arguments(description, subparser, command)
        self.lock = threading.Lock()
  
      def process_arguments(self, arguments):
          self.arguments = arguments
          print("Model A Directory: {}".format(self.arguments.input_A))
          print("Model B Directory: {}".format(self.arguments.input_B))
keep keep keep keep replace keep keep keep keep keep
 Only import DLIB related modules when required and minor import relocations (#315)

* Move imports to top and add conditions to load modules requiring GPU

* Fix type

* Fix typo

* Import relocation and dlib import on demand

* refactor to remove extra code lines

* remove unnecessary sys import 
scripts/train.py