class_docstr: Provides 2 main methods that syllabify words given phonology of its language.
docstr: :param low_vowels: list of low vowels
  :param mid_vowels: list of middle vowels
  :param high_vowels: list of high vowels
  :param flaps:
  :param laterals: list of lateral consonants
  :param nasals: list of nasal consonants
  :param fricatives: list of frictative consonants
  :param plosives: list of plosive vowels
  :param language: chosen language
  :param break_geminants: if True, a geminant is split in two different consonants
  :param variant:
  :param sep: if set, returns a string whose separator of syllables as sep
docstr_tok: [":","param","low_vowels",":","list","of","low","vowels",":","param","mid_vowels",":","list","of","middle","vowels",":","param","high_vowels",":","list","of","high","vowels",":","param","flaps",":",":","param","laterals",":","list","of","lateral","consonants",":","param","nasals",":","list","of","nasal","consonants",":","param","fricatives",":","list","of","frictative","consonants",":","param","plosives",":","list","of","plosive","vowels",":","param","language",":","chosen","language",":","param","break_geminants",":","if","True",",","a","geminant","is","split","in","two","different","consonants",":","param","variant",":",":","param","sep",":","if","set",",","returns","a","string","whose","separator","of","syllables","as","sep"]
code: def __init__(
      self,
      low_vowels=None,
      mid_vowels=None,
      high_vowels=None,
      flaps=None,
      laterals=None,
      nasals=None,
      fricatives=None,
      plosives=None,
      language=None,
      break_geminants=False,
      variant=None,
      sep=None,
  ):
      """
  
      :param low_vowels: list of low vowels
      :param mid_vowels: list of middle vowels
      :param high_vowels: list of high vowels
      :param flaps:
      :param laterals: list of lateral consonants
      :param nasals: list of nasal consonants
      :param fricatives: list of frictative consonants
      :param plosives: list of plosive vowels
      :param language: chosen language
      :param break_geminants: if True, a geminant is split in two different consonants
      :param variant:
      :param sep: if set, returns a string whose separator of syllables as sep
      """
  
      self.break_geminants = break_geminants
      self.invalid_onsets = []
      self.invalid_ultima = []
      self.short_vowels = []
      self.diphthongs = []
      self.triphthongs = []
      self.sep = sep
  
      if language == "enm":
          self.set_hierarchy(enms.hierarchy)
          self.set_vowels(enms.hierarchy[0])
          self.set_short_vowels(enms.SHORT_VOWELS)
          self.set_consonants(enms.CONSONANTS)
  
          # self.invalid_ultima = ["a", "ae", "æ", "e", "ea", "eo", "i", "o", "u", "y", "w"]
  
      elif language == "ang":
          self.set_hierarchy(angs.hierarchy)
          self.set_vowels(angs.hierarchy[0])
  
      elif language == "gmh":
          self.set_hierarchy(gmhs.hierarchy)
          self.set_vowels(gmhs.SHORT_VOWELS + gmhs.LONG_VOWELS)
          self.set_diphthongs(gmhs.DIPHTHONGS)
          self.set_short_vowels(gmhs.SHORT_VOWELS)
          self.set_consonants(gmhs.CONSONANTS)
  
      elif language == "non" and variant == "ipa":
          self.set_hierarchy(nons.ipa_hierarchy)
          self.set_vowels(nons.ipa_hierarchy[0])
  
      elif language == "non":
          self.set_hierarchy(nons.hierarchy)
          self.set_vowels(nons.hierarchy[0])
  
      else:
          self.low_vowels = [] if low_vowels is None else low_vowels
          self.mid_vowels = [] if mid_vowels is None else mid_vowels
          self.high_vowels = [] if high_vowels is None else high_vowels
          self.vowels = (
              self.low_vowels + self.mid_vowels + self.high_vowels
          )
  
          self.flaps = [] if flaps is None else flaps
          self.laterals = [] if laterals is None else laterals
          self.nasals = [] if nasals is None else nasals
          self.fricatives = [] if fricatives is None else fricatives
          self.plosives = [] if plosives is None else plosives
          self.consonants = (
              self.flaps
              + self.laterals
              + self.fricatives
              + self.plosives
          )
  
          # Dictionary indicating sonority hierarchy
          self.hierarchy = {key: 0 for key in self.low_vowels}
          self.hierarchy.update({key: 1 for key in self.mid_vowels})
          self.hierarchy.update({key: 2 for key in self.high_vowels})
          self.hierarchy.update({key: 3 for key in self.flaps})
          self.hierarchy.update({key: 4 for key in self.laterals})
          self.hierarchy.update({key: 5 for key in self.nasals})
          self.hierarchy.update({key: 6 for key in self.fricatives})
          self.hierarchy.update({key: 7 for key in self.plosives})
  
imports: import logging
  import unicodedata
  from collections import defaultdict
  from typing import List, Union
  import cltk.phonology.ang.syllabifier
  import cltk.phonology.enm.syllabifier
  import cltk.phonology.gmh.syllabifier
  import cltk.phonology.non.syllabifier
  import cltk.phonology.non.utils
  from cltk.core.exceptions import CLTKException
label_desc: Use image node_id 1 to create a new Syllabifier object  with example: obj = Syllabifier(low_vowels, mid_vowels, high_vowels, flaps, laterals, nasals, fricatives, plosives, language, break_geminants, variant, sep)