docs: def handle(self, *args, **options):
          """Handle the command"""
          # get the command arguments
          self.verbosity = int(options.get('verbosity', 1))
          force = options['force']
          imports = self.get_imports(options['import'])
  
          # Import the CurrencyHandler and get an instance
          handler = self.get_handler(options)
  
          self.log(logging.INFO, "Getting currency data from %s", handler.endpoint)
          timestamp = datetime.now().isoformat()
  
          # find available codes
          if imports:
              allcodes = set(handler.get_allcurrencycodes())
              reqcodes = set(imports)
              available = reqcodes & allcodes
              unavailable = reqcodes - allcodes
          else:
              self.log(logging.WARNING, "Importing all. Some currencies may be out-of-date (MTL) or spurious (XPD)")
              available = handler.get_allcurrencycodes()
              unavailable = None
  
          for code in available:
              obj, created = Currency._default_manager.get_or_create(code=code)
              name = handler.get_currencyname(code)
              description = "%r (%s)" % (name, code)
              if created or force:
                  kwargs = {}
                  if created:
                      kwargs['is_active'] = False
                      msg = "Creating %s"
                      obj.info.update( {'Created': timestamp} )
                  else:
                      msg = "Updating %s"
                  obj.info.update( {'Modified': timestamp} )
  
                  if name:
                      kwargs['name'] = name
  
                  symbol = handler.get_currencysymbol(code)
                  if symbol:
                      kwargs['symbol'] = symbol
  
                  try:
                      obj.info.update(handler.get_info(code))
                  except AttributeError:
                      pass
  
                  kwargs['info'] = obj.info
  
                  self.log(logging.INFO, msg, description)
                  Currency._default_manager.filter(pk=obj.pk).update(**kwargs)
              else:
                  msg = "Skipping %s"
                  self.log(logging.INFO, msg, description)
  
          if unavailable:
              raise ImproperlyConfigured("Currencies %s not found in %s source" % (unavailable, handler.name))