code: def cmdargs(mysqldump: str,
              username: str,
              password: str,
              database: str,
              verbose: bool,
              with_drop_create_database: bool,
              max_allowed_packet: str,
              hide_password: bool = False) -> List[str]:
      
      ca = [
          mysqldump,
          "-u", username,
          "-p{}".format("*****" if hide_password else password),
          "--max_allowed_packet={}".format(max_allowed_packet),
          "--hex-blob",  # preferable to raw binary in our .sql file
      ]
      if verbose:
          ca.append("--verbose")
      if with_drop_create_database:
          ca.extend([
              "--add-drop-database",
              "--databases",
              database
          ])
      else:
          ca.append(database)
          pass
      return ca
docs: Returns command arguments for a ``mysqldump`` call.
  
      Args:
          mysqldump: ``mysqldump`` executable filename
          username: user name
          password: password
          database: database name
          verbose: verbose output?
          with_drop_create_database: produce commands to ``DROP`` the database
              and recreate it?
          max_allowed_packet: passed to ``mysqldump``
          hide_password: obscure the password (will break the arguments but
              provide a safe version to show the user)?
  
      Returns:
          list of command-line arguments