old_contents: from typing import List
  from collections import OrderedDict
  
  from ...pipeline import Lemmatizer
  from ...tokens import Token
  
  
  class MacedonianLemmatizer(Lemmatizer):
      def rule_lemmatize(self, token: Token) -> List[str]:
          string = token.text
          univ_pos = token.pos_.lower()
          morphology = token.morph.to_dict()
  
          if univ_pos in ("", "eol", "space"):
              return [string.lower()]
  
          if string[-3:] == "јќи":
              string = string[:-3]
              univ_pos = "verb"
  
          if callable(self.is_base_form) and self.is_base_form(univ_pos, morphology):
              return [string.lower()]
          index_table = self.lookups.get_table("lemma_index", {})
          exc_table = self.lookups.get_table("lemma_exc", {})
          rules_table = self.lookups.get_table("lemma_rules", {})
          if not any(
              (
                  index_table.get(univ_pos),
                  exc_table.get(univ_pos),
                  rules_table.get(univ_pos),
              )
          ):
              if univ_pos == "propn":
                  return [string]
              else:
                  return [string.lower()]
  
          index = index_table.get(univ_pos, {})
          exceptions = exc_table.get(univ_pos, {})
          rules = rules_table.get(univ_pos, [])
  
          orig = string
          string = string.lower()
          forms = []
  
          for old, new in rules:
              if string.endswith(old):
                  form = string[: len(string) - len(old)] + new
                  if not form:
                      continue
                  if form in index or not form.isalpha():
                      forms.append(form)
  
          forms = list(OrderedDict.fromkeys(forms))
          for form in exceptions.get(string, []):
              if form not in forms:
                  forms.insert(0, form)
          if not forms:
              forms.append(orig)
  
          return forms
  
new_contents: from typing import List
  from collections import OrderedDict
  
  from ...pipeline import Lemmatizer
  from ...tokens import Token
  
  
  class MacedonianLemmatizer(Lemmatizer):
      def rule_lemmatize(self, token: Token) -> List[str]:
          string = token.text
          univ_pos = token.pos_.lower()
          morphology = token.morph.to_dict()
  
          if univ_pos in ("", "eol", "space"):
              return [string.lower()]
  
          if string[-3:] == "јќи":
              string = string[:-3]
              univ_pos = "verb"
  
          index_table = self.lookups.get_table("lemma_index", {})
          exc_table = self.lookups.get_table("lemma_exc", {})
          rules_table = self.lookups.get_table("lemma_rules", {})
          if not any(
              (
                  index_table.get(univ_pos),
                  exc_table.get(univ_pos),
                  rules_table.get(univ_pos),
              )
          ):
              if univ_pos == "propn":
                  return [string]
              else:
                  return [string.lower()]
  
          index = index_table.get(univ_pos, {})
          exceptions = exc_table.get(univ_pos, {})
          rules = rules_table.get(univ_pos, [])
  
          orig = string
          string = string.lower()
          forms = []
  
          for old, new in rules:
              if string.endswith(old):
                  form = string[: len(string) - len(old)] + new
                  if not form:
                      continue
                  if form in index or not form.isalpha():
                      forms.append(form)
  
          forms = list(OrderedDict.fromkeys(forms))
          for form in exceptions.get(string, []):
              if form not in forms:
                  forms.insert(0, form)
          if not forms:
              forms.append(orig)
  
          return forms
  
subject: Remove unused is_base_form for mk lemmatizer (#6743)