class_docstr: https://anhaidgroup.github.io/py_stringmatching/v0.3.x/Editex.html
  http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.3856&rep=rep1&type=pdf
  http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.2138&rep=rep1&type=pdf
  https://github.com/chrislit/blob/master/abydos/distance/_editex.py
  https://habr.com/ru/post/331174/ (RUS)
class_docstr_tok: ["https",":","\/\/anhaidgroup.github.io\/py_stringmatching\/v0.3.x\/Editex.html","http",":","\/\/citeseerx.ist.psu.edu\/viewdoc\/download","?","doi=10.1.1.14.3856","&","rep=rep1","&","type=pdf","http",":","\/\/citeseerx.ist.psu.edu\/viewdoc\/download","?","doi=10.1.1.18.2138","&","rep=rep1","&","type=pdf","https",":","\/\/github.com\/chrislit\/blob\/master\/abydos\/distance\/_editex.py","https",":","\/\/habr.com\/ru\/post\/331174\/","(","RUS",")"]
code: def __init__(
      self,
      local: bool = False,
      match_cost: int = 0,
      group_cost: int = 1,
      mismatch_cost: int = 2,
      groups: tuple[frozenset[str], ...] = None,
      ungrouped: frozenset[str] = None,
      external: bool = True,
  ) -> None:
      # Ensure that match_cost <= group_cost <= mismatch_cost
      self.match_cost = match_cost
      self.group_cost = max(group_cost, self.match_cost)
      self.mismatch_cost = max(mismatch_cost, self.group_cost)
      self.local = local
      self.external = external
  
      if groups is not None:
          if ungrouped is None:
              raise ValueError(
                  "`ungrouped` argument required with `groups`"
              )
          self.groups = groups
          self.ungrouped = ungrouped
      self.grouped = frozenset.union(*self.groups)
  
file_path: textdistance/textdistance/algorithms/phonetic.py
imports: from __future__ import annotations
  from collections import defaultdict
  from itertools import groupby, zip_longest
  from typing import Any, Iterator, Sequence, TypeVar
  from .base import Base, BaseSimilarity
label_desc: Use image node_id 1 to create a new Editex object from inherited base classes: _Base with example: obj = Editex(local, match_cost, group_cost, mismatch_cost, groups, ungrouped, external)