code: def readability_score(text: str, cmudict_dict: dict = None) -> float:
      """Return a float representing the Flesch Reading-Ease score per text sample.
  
      In the Flesch reading-ease test, higher scores indicate material that is easier to read
      whereas lower numbers mark texts that are more difficult to read. For more information:
      https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests#Flesch_reading_ease
      """
      if pd.isna(text):
          return np.nan
      if cmudict_dict is None:
          if not nltk_download("cmudict", quiet=True):
              _warn_if_missing_nltk_dependencies(
                  "cmudict", "Reading Ease"
              )
              return np.nan
          cmudict_dict = corpus.cmudict.dict()
      text_sentences = _sample_for_property(
          text,
          mode="sentences",
          limit=DEFAULT_SENTENCE_SAMPLE_SIZE,
          return_as_list=True,
      )
      sentence_count = len(text_sentences)
      words = _split_to_words_with_cache(text)
      word_count = len(words)
      syllable_count = sum(
          [
              len(cmudict_dict[word])
              for word in words
              if word in cmudict_dict
          ]
      )
  
      if (
          word_count != 0
          and sentence_count != 0
          and syllable_count != 0
      ):
          avg_syllables_per_word = syllable_count / word_count
          avg_words_per_sentence = word_count / sentence_count
          flesch_reading_ease = (
              206.835
              - (1.015 * avg_words_per_sentence)
              - (84.6 * avg_syllables_per_word)
          )
          return round(flesch_reading_ease, 3)
      else:
          return np.nan
  
imports: import pathlib
  import pickle
  import re
  import string
  import warnings
  from collections import defaultdict
  from importlib.util import find_spec
  from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
  import numpy
  import pandas
  import textblob
  import torch.cuda
  from nltk import corpus
  from nltk import download
  from nltk import sent_tokenize, word_tokenize
  from tqdm import tqdm
  from typing_extensions import TypedDict
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.nlp.utils.text import cut_string, hash_text, normalize_text, remove_punctuation
  from deepchecks.nlp.utils.text_properties_models import get_cmudict_dict, get_fasttext_model, get_transformer_pipeline
  from deepchecks.utils.function import run_available_kwargs
  from deepchecks.utils.strings import SPECIAL_CHARACTERS, format_list
  from deepchecks.utils.validation import is_sequence_not_str
label_desc: Use image node_id 20 for calling a global function with example usage: readability_score(text, cmudict_dict) and returns: np, round, np, np