class_docstr: Transform each text in a sequence of texts into a sequence of character ngram tokens
  as strings, where ngrams for multiple "n"s are concatenated together for each text.
  
  Args:
      ns: Number of contiguous characters to include in each token.
          If an int, only ``ns`` n-grams are included as tokens; if a Collection[int],
          then n-grams for each n in ``ns`` are concatenated together per text.
      pad: If True, pad texts by adding ``n - 1`` underscore characters to each side;
          if False, leave text as-is.
      normalize: Optional callable or string alias for a callable that processes
          each text before transforming it into a sequence of character ngrams.
          If None, text is left as-is; if "lower", text is lowercased; otherwise,
          the callable is applied directly to each text.
class_docstr_tok: ["Transform","each","text","in","a","sequence","of","texts","into","a","sequence","of","character","ngram","tokens","as","strings",",","where","ngrams","for","multiple","``","n","''","s","are","concatenated","together","for","each","text",".","Args",":","ns",":","Number","of","contiguous","characters","to","include","in","each","token",".","If","an","int",",","only","``","ns","``","n-grams","are","included","as","tokens",";","if","a","Collection","[","int","]",",","then","n-grams","for","each","n","in","``","ns","``","are","concatenated","together","per","text",".","pad",":","If","True",",","pad","texts","by","adding","``","n","-","1","``","underscore","characters","to","each","side",";","if","False",",","leave","text","as-is",".","normalize",":","Optional","callable","or","string","alias","for","a","callable","that","processes","each","text","before","transforming","it","into","a","sequence","of","character","ngrams",".","If","None",",","text","is","left","as-is",";","if","``","lower","''",",","text","is","lowercased",";","otherwise",",","the","callable","is","applied","directly","to","each","text","."]
code: def _init_normalize(
      self, normalize: Optional[str | Callable[[str], str]]
  ) -> Optional[Callable[[str], str]]:
      if normalize is None:
          return None
      elif callable(normalize):
          return normalize
      elif normalize == "lower":
          return lambda text: text.lower()
      else:
          raise ValueError()
  
file_path: textacy/src/textacy/tokenizers/char_ngrams.py
imports: from __future__ import annotations
  from typing import Callable, Collection, Iterable, List, Optional, Tuple, Union
  from spacy.tokens import Doc, Span
  from ..None import errors, types, utils
label_desc: Use image node_id 3 for calling the CharNgramsTokenizer obj's underlying member method code with example usage: obj._init_normalize(normalize) and returns: None, normalize, function