File: //usr/lib/python3/dist-packages/sphinx/search/__pycache__/ja.cpython-310.pyc
o
�$�a3z � @ s d Z ddlZddlZddlZddlmZmZmZ zddlZdZ W n e
y+ dZ Y nw zddlZdZ
W n e
y? dZ
Y nw ddlmZmZ ddlmZ ddlmZ G d d
� d
�ZG dd� de�ZeZG d
d� de�ZG dd� de�ZeZG dd� de�ZdS )z�
sphinx.search.ja
~~~~~~~~~~~~~~~~
Japanese search language: includes routine to split words.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Any�Dict�ListTF)�ExtensionError�SphinxError)�SearchLanguage)�
import_objectc @ s4 e Zd Zdeddfdd�Zdedee fdd�ZdS ) �BaseSplitter�options�returnNc C s
|| _ d S �N)r
��selfr
� r �2/usr/lib/python3/dist-packages/sphinx/search/ja.py�__init__* s
zBaseSplitter.__init__�inputc C s t �)zN
:param str input:
:return:
:rtype: list[str]
)�NotImplementedError�r r r r r �split- s zBaseSplitter.split)�__name__�
__module__�__qualname__r r �strr r r r r r r ) s r c sj e Zd Zdeddf� fdd�Zdedee fdd�Zdeddfd d
�Zdeddfdd�Z dd
d�Z
� ZS )�
MecabSplitterr
r Nc sD t � �|� d | _d | _ts| �|� n| �|� |�dd�| _d S )N�dic_enczutf-8) �superr �ctypes_libmecab�ctypes_mecab�
native_module�init_ctypes�init_native�get�dict_encoder
�� __class__r r r 7 s
zMecabSplitter.__init__r c C s4 t r | j�|�}n| j�| j|�| j��}|�d�S )N� ) r �native�parser �mecab_sparse_tostrr �encoder# r �r r �resultr r r r A s �
zMecabSplitter.splitc C s. d}|� d�}|r|d| 7 }t�|�| _d S )Nz-Owakati�dict� -d %s)r"