text: #!/usr/bin/env python
  
  """
  Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
  See the file 'LICENSE' for copying permission
  """
  
  try:
      import mimerpy
  except:
      pass
  
  import logging
  
  from lib.core.common import getSafeExString
  from lib.core.data import conf
  from lib.core.data import logger
  from lib.core.exception import SqlmapConnectionException
  from plugins.generic.connector import Connector as GenericConnector
  
  class Connector(GenericConnector):
      """
      Homepage: https://github.com/mimersql/MimerPy
      User guide: https://github.com/mimersql/MimerPy/blob/master/README.rst
      API: https://www.python.org/dev/peps/pep-0249/
      License: MIT
      """
  
      def connect(self):
          self.initConnection()
  
          try:
              self.connector = mimerpy.connect(hostname=self.hostname, username=self.user, password=self.password, database=self.db, port=self.port, connect_timeout=conf.timeout)
          except mimerpy.OperationalError as ex:
              raise SqlmapConnectionException(getSafeExString(ex))
  
          self.initCursor()
          self.printConnected()
  
      def fetchall(self):
          try:
              return self.cursor.fetchall()
          except mimerpy.ProgrammingError as ex:
              logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
              return None
  
      def execute(self, query):
          try:
              self.cursor.execute(query)
          except (mimerpy.OperationalError, mimerpy.ProgrammingError) as ex:
              logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
          except mimerpy.InternalError as ex:
              raise SqlmapConnectionException(getSafeExString(ex))
  
          self.connector.commit()
  
      def select(self, query):
          self.execute(query)
          return self.fetchall()
  