code: def art(artname, number=1, text=""):
      
      if isinstance(artname, str) is False:
          raise artError(ART_TYPE_ERROR)
      artname = artname.lower()
      arts = sorted(art_dic.keys())
      if artname == "random" or artname == "rand" or artname == "rnd":
          filtered_arts = list(set(arts) - set(RANDOM_FILTERED_ARTS))
          artname = random.choice(filtered_arts)
      elif artname not in art_dic.keys():
          distance_list = list(map(lambda x: distance_calc(artname, x),
                                   arts))
          min_distance = min(distance_list)
          selected_art = arts[distance_list.index(min_distance)]
          threshold = max(len(artname), len(selected_art)) / 2
          if min_distance < threshold:
              artname = selected_art
          else:
              raise artError(ART_NAME_ERROR)
      art_value = art_dic[artname]
      if isinstance(number, int) is False:
          raise artError(NUMBER_TYPE_ERROR)
      if isinstance(art_value, str):
          return (art_value + " ") * number
      if isinstance(text, str) is False:
          raise artError(TEXT_TYPE_ERROR)
      return (art_value[0] + text + art_value[1] + " ") * number
docs: Return 1-line art.
  
      :param artname: artname
      :type artname : str
      :return: ascii art as str