# Path: sanskrit_parser/util/normalization.py
# def normalize(s):
# def replace_ending_visarga_s(s):
# def replace_ending_visarga_r(s):
# def denormalize(s):


from indic_transliteration import sanscript
from indic_transliteration import detect
from sanskrit_parser.util import normalization
from contextlib import contextmanager
import logging
import six
    import argparse

    def __len__(self):
        return len(self.canonical())


class SanskritImmutableString(SanskritString):
    """ Immutable version of SanskritString
    """
    def __init__(self, thing=None, encoding=None, unicode_encoding='utf-8'):
        super().__init__(thing, encoding, unicode_encoding)

    def __hash__(self):
        return hash(str(self))

    def __eq__(self, other):
        return str(self) == str(other)

    def __ne__(self, other):
        return str(self) != str(other)


class SanskritNormalizedString(SanskritString):
    """ SanskritString plus Normalization of input
    """
    def __init__(self, thing=None, encoding=None, unicode_encoding='utf-8',
                 strict_io=True, replace_ending_visarga='s'):
        super().__init__(thing, encoding, unicode_encoding)
        if not strict_io:
            # Normalize
            logger.debug("Before normalization: %s", self.thing)

# Path: sanskrit_parser/util/normalization.py
# def normalize(s):
# def replace_ending_visarga_s(s):
# def replace_ending_visarga_r(s):
# def denormalize(s):


# Path: sanskrit_parser/base/sanskrit_base.py
from indic_transliteration import sanscript
from indic_transliteration import detect
from sanskrit_parser.util import normalization
from contextlib import contextmanager
import logging
import six
    import argparse


    def __len__(self):
        return len(self.canonical())


class SanskritImmutableString(SanskritString):
    """ Immutable version of SanskritString
    """
    def __init__(self, thing=None, encoding=None, unicode_encoding='utf-8'):
        super().__init__(thing, encoding, unicode_encoding)

    def __hash__(self):
        return hash(str(self))

    def __eq__(self, other):
        return str(self) == str(other)

    def __ne__(self, other):
        return str(self) != str(other)


class SanskritNormalizedString(SanskritString):
    """ SanskritString plus Normalization of input
    """
    def __init__(self, thing=None, encoding=None, unicode_encoding='utf-8',
                 strict_io=True, replace_ending_visarga='s'):
        super().__init__(thing, encoding, unicode_encoding)
        if not strict_io:
            # Normalize
            logger.debug("Before normalization: %s", self.thing)

            tmp = normalization.normalize(self.thing)