wikitextparser/_template.py
def normal_name(
        self,
        rm_namespaces=('Template',),
        capital_links=False,
        _code: str = None,
        *,
        code: str = None,
        capitalize=False
    ) -> str:
        """Return normal form of self.name.

        - Remove comments.
        - Remove language code.
        - Remove namespace ("template:" or any of `localized_namespaces`.
        - Use space instead of underscore.
        - Remove consecutive spaces.
        - Use uppercase for the first letter if `capitalize`.
        - Remove #anchor.

        :param rm_namespaces: is used to provide additional localized
            namespaces for the template namespace. They will be removed from
            the result. Default is ('Template',).
        :param capitalize: If True, convert the first letter of the
            template's name to a capital letter. See
            [[mw:Manual:$wgCapitalLinks]] for more info.
        :param code: is the language code.
        :param capital_links: deprecated.
        :param _code: deprecated.

        Example:
            >>> Template(
            ...     '{{ eN : tEmPlAtE : <!-- c --> t_1 # b | a }}'
            ... ).normal_name(code='en')
            'T 1'
        """
        if capital_links:
            warn('`capital_links` argument is deprecated,'
                 ' use `capitalize` instead', DeprecationWarning)
            capitalize = capital_links
        if _code:
            warn('`positional_code` argument is deprecated,'
                 ' use `code` instead', DeprecationWarning)
            code = _code
        # Remove comments
        name = COMMENT_SUB('', self.name).strip(WS)
        # Remove code
        if code:
            head, sep, tail = name.partition(':')
            if not head and sep:
                name = tail.strip(' ')
                head, sep, tail = name.partition(':')
            if code.lower() == head.strip(' ').lower():
                name = tail.strip(' ')
        # Remove namespace
        head, sep, tail = name.partition(':')
        if not head and sep:
            name = tail.strip(' ')
            head, sep, tail = name.partition(':')
        if head:
            ns = head.strip(' ').lower()
            for namespace in rm_namespaces:
                if namespace.lower() == ns:
                    name = tail.strip(' ')
                    break
        # Use space instead of underscore
        name = name.replace('_', ' ')
        if capitalize:
            # Use uppercase for the first letter
            n0 = name[0]
            if n0.islower():
                name = n0.upper() + name[1:]
        # Remove #anchor
        name, sep, tail = name.partition('#')
        return ' '.join(name.split())
def normal_name(
        self,
        rm_namespaces=('Template',),
        capital_links=False,
        _code: str = None,
        *,
        code: str = None,
        capitalize=False
    ) -> str:
        if capital_links:
            warn('`capital_links` argument is deprecated,'
                 ' use `capitalize` instead', DeprecationWarning)
            capitalize = capital_links
        if _code:
            warn('`positional_code` argument is deprecated,'
                 ' use `code` instead', DeprecationWarning)
            code = _code
        # Remove comments
        name = COMMENT_SUB('', self.name).strip(WS)
        # Remove code
        if code:
            head, sep, tail = name.partition(':')
            if not head and sep:
                name = tail.strip(' ')
                head, sep, tail = name.partition(':')
            if code.lower() == head.strip(' ').lower():
                name = tail.strip(' ')
        # Remove namespace
        head, sep, tail = name.partition(':')
        if not head and sep:
            name = tail.strip(' ')
            head, sep, tail = name.partition(':')
        if head:
            ns = head.strip(' ').lower()
            for namespace in rm_namespaces:
                if namespace.lower() == ns:
                    name = tail.strip(' ')
                    break
        # Use space instead of underscore
        name = name.replace('_', ' ')
        if capitalize:
            # Use uppercase for the first letter
            n0 = name[0]
            if n0.islower():
                name = n0.upper() + name[1:]
        # Remove #anchor
        name, sep, tail = name.partition('#')
        return ' '.join(name.split())
def normal_name ( self , rm_namespaces = ( 'Template' , ) , capital_links = False , _code : str = None , * , code : str = None , capitalize = False ) -> str : if capital_links : warn ( '`capital_links` argument is deprecated,' ' use `capitalize` instead' , DeprecationWarning ) capitalize = capital_links if _code : warn ( '`positional_code` argument is deprecated,' ' use `code` instead' , DeprecationWarning ) code = _code # Remove comments name = COMMENT_SUB ( '' , self . name ) . strip ( WS ) # Remove code if code : head , sep , tail = name . partition ( ':' ) if not head and sep : name = tail . strip ( ' ' ) head , sep , tail = name . partition ( ':' ) if code . lower ( ) == head . strip ( ' ' ) . lower ( ) : name = tail . strip ( ' ' ) # Remove namespace head , sep , tail = name . partition ( ':' ) if not head and sep : name = tail . strip ( ' ' ) head , sep , tail = name . partition ( ':' ) if head : ns = head . strip ( ' ' ) . lower ( ) for namespace in rm_namespaces : if namespace . lower ( ) == ns : name = tail . strip ( ' ' ) break # Use space instead of underscore name = name . replace ( '_' , ' ' ) if capitalize : # Use uppercase for the first letter n0 = name [ 0 ] if n0 . islower ( ) : name = n0 . upper ( ) + name [ 1 : ] # Remove #anchor name , sep , tail = name . partition ( '#' ) return ' ' . join ( name . split ( ) )
Return normal form of self.name.

        - Remove comments.
        - Remove language code.
        - Remove namespace ("template:" or any of `localized_namespaces`.
        - Use space instead of underscore.
        - Remove consecutive spaces.
        - Use uppercase for the first letter if `capitalize`.
        - Remove #anchor.

        :param rm_namespaces: is used to provide additional localized
            namespaces for the template namespace. They will be removed from
            the result. Default is ('Template',).
        :param capitalize: If True, convert the first letter of the
            template's name to a capital letter. See
            [[mw:Manual:$wgCapitalLinks]] for more info.
        :param code: is the language code.
        :param capital_links: deprecated.
        :param _code: deprecated.

        Example:
            >>> Template(
            ...     '{{ eN : tEmPlAtE : <!-- c --> t_1 # b | a }}'
            ... ).normal_name(code='en')
            'T 1'
Return normal form of self . name .