403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/site-packages/sphinx/search/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/site-packages/sphinx/search/__pycache__/__init__.cpython-39.pyc
a

�abE�@sPUdZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZddlmZmZddlmZmZdd	lmZdd
lmZddlmZGdd
�d
�Z ddl!m"Z"e#ee#d�dd�Z$dde"ddddddddddddd d!d"�Z%ee#e
fe&d#<Gd$d%�d%�Z'e'�Z(Gd&d'�d'ej)�Z*Gd(d)�d)�Z+dS)*z�
    sphinx.search
    ~~~~~~~~~~~~~

    Create a full-text search index for offline search.

    :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�
import_module)�path)	�IO�Any�Dict�Iterable�List�Optional�Set�Tuple�Type)�nodes)�Element�Node)�addnodes�package_dir)�BuildEnvironment)�
splitter_code)�jsdumpc@s�eZdZUdZdZeed<dZeed<e�Z	e
eed<dZeed<dZeed<dZ
e�d	�Zedd
�dd�Zedd
�d
d�Zeeed�dd�Zeed�dd�Zeed�dd�ZdS)�SearchLanguagea<
    This class is the base class for search natural language preprocessors.  If
    you want to add support for a new language, you should override the methods
    of this class.

    You should override `lang` class property too (e.g. 'en', 'fr' and so on).

    .. attribute:: stopwords

       This is a set of stop words of the target language.  Default `stopwords`
       is empty.  This word is used for building index and embedded in JS.

    .. attribute:: js_splitter_code

       Return splitter function of JavaScript version.  The function should be
       named as ``splitQuery``.  And it should take a string and return list of
       strings.

       .. versionadded:: 3.0

    .. attribute:: js_stemmer_code

       Return stemmer class of JavaScript version.  This class' name should be
       ``Stemmer`` and this class must have ``stemWord`` method.  This string is
       embedded as-is in searchtools.js.

       This class is used to preprocess search word which Sphinx HTML readers
       type, before searching index. Default implementation does nothing.
    N�lang�
language_name�	stopwords�js_splitter_code�js_stemmer_rawcodez�
/**
 * Dummy stemmer for languages without stemming rules.
 */
var Stemmer = function() {
  this.stemWord = function(w) {
    return w;
  }
}
z(?u)\w+)�options�returncCs||_|�|�dS�N)r�init��selfr�r!�:/usr/lib/python3.9/site-packages/sphinx/search/__init__.py�__init__JszSearchLanguage.__init__cCsdS)zK
        Initialize the class with the options the user has given.
        Nr!rr!r!r"rNszSearchLanguage.init)�inputrcCs|j�|�S)z�
        This method splits a sentence into words.  Default splitter splits input
        at white spaces, which should be enough for most languages except CJK
        languages.
        )�_word_re�findall)r r$r!r!r"�splitSszSearchLanguage.split��wordrcCs|S)a�
        This method implements stemming algorithm of the Python version.

        Default implementation does nothing.  You should implement this if the
        language has any stemming rules.

        This class is used to preprocess search words before registering them in
        the search index.  The stemming of the Python version and the JS version
        (given in the js_stemmer_code attribute) must be compatible.
        r!�r r)r!r!r"�stem[szSearchLanguage.stemcCsTt|�dkpRt|�dkr8dt|d�ko2dknpPt|d�dkoP||jvS)z�
        Return true if the target word should be registered in the search index.
        This method is called after stemming.
        r�iA0i�0�)�len�ordrr*r!r!r"�word_filterhs,��zSearchLanguage.word_filter)�__name__�
__module__�__qualname__�__doc__r�str�__annotations__r�setrr
rr�js_stemmer_code�re�compiler%rr#rrr'r+�boolr0r!r!r!r"rs


r)�
SearchEnglish)�sourcercCs4t�}|��D] }|�d�d}|�|���q|S)zs
    Parse snowball style word list like this:

    * http://snowball.tartarus.org/algorithms/finnish/stop.txt
    �|r)r7�
splitlinesr'�update)r=�result�liner!r!r"�parse_stop_wordys
rCzsphinx.search.da.SearchDanishzsphinx.search.de.SearchGermanzsphinx.search.es.SearchSpanishzsphinx.search.fi.SearchFinnishzsphinx.search.fr.SearchFrenchz sphinx.search.hu.SearchHungarianzsphinx.search.it.SearchItalianzsphinx.search.ja.SearchJapanesezsphinx.search.nl.SearchDutchz sphinx.search.no.SearchNorwegianz!sphinx.search.pt.SearchPortuguesezsphinx.search.ro.SearchRomanianzsphinx.search.ru.SearchRussianzsphinx.search.sv.SearchSwedishzsphinx.search.tr.SearchTurkishzsphinx.search.zh.SearchChinese)�da�de�en�es�fi�fr�hu�it�ja�nl�no�pt�ro�ru�sv�tr�zh�	languagesc@sZeZdZdZdZdZeed�dd�Zeed�dd	�Z	ee
d
d�dd
�Ze
ed�dd�Zd
S)�_JavaScriptIndexz�
    The search index as JavaScript file that calls a function
    on the documentation search object to register the index.
    zSearch.setIndex(�))�datarcCs|jt�|�|jSr)�PREFIXr�dumps�SUFFIX)r rXr!r!r"rZ�sz_JavaScriptIndex.dumps)�srcCsH|t|j�t|j��}|r6|�|j�r6|�|j�s>td��t�|�S)Nzinvalid data)r.rYr[�
startswith�endswith�
ValueErrorr�loads)r r\rXr!r!r"r`�s
�z_JavaScriptIndex.loadsN)rX�frcCs|�|�|��dSr)�writerZ)r rXrar!r!r"�dump�sz_JavaScriptIndex.dump)rarcCs|�|���Sr)r`�read)r rar!r!r"�load�sz_JavaScriptIndex.load)
r1r2r3r4rYr[rr5rZr`rrcrer!r!r!r"rV�srVcsLeZdZdZejedd��fdd�Zee	d�dd�Z
edd�d	d
�Z�Z
S)�
WordCollectorzG
    A special visitor that collects words for the `IndexBuilder`.
    N)�documentrrcs"t��|�g|_g|_||_dSr)�superr#�found_words�found_title_wordsr)r rgr��	__class__r!r"r#�szWordCollector.__init__)�nodercCsJt|tjtjf�rF|�d�dkrF|�d�}|dur6dS||jjkrFdSdS)N�name�keywordsrTF)�
isinstancer�metaZ
docutils_meta�getr)r rmZ	meta_langr!r!r"�is_meta_keywords�s�
zWordCollector.is_meta_keywordscCst|tj�rtj�n�t|tj�r~d|�dd���vrvt�dd|�	��}t�dd|�}t�dd|�}|j
�|j�|��tj�n�t|tj
�r�|j
�|j�|�	���nft|tj�r�|j�|j�|�	���n@t|t��r
|�|��r
|d}dd	�|�d
�D�}|j
�|�dS)N�html�format�z(?is)<style.*?</style>z(?is)<script.*?</script>z<[^<]+?>ZcontentcSsg|]}|���qSr!)�strip)�.0�keywordr!r!r"�
<listcomp>��z0WordCollector.dispatch_visit.<locals>.<listcomp>�,)rpr
ZcommentZSkipNode�rawrrr'r9�subZastextri�extendr�Text�titlerjrrs)r rmZnodetextror!r!r"�dispatch_visit�s"zWordCollector.dispatch_visit)r1r2r3r4r
rgrr#rr;rsrr��
__classcell__r!r!rkr"rf�srfc
@sNeZdZdZeed�Zeee	edd�dd�Z
eedd�dd	�Z
eedd�d
d�Ze	eefe	eeeeeeeeffd�d
d�Ze	ee	eeefe	eeeffd�dd�Ze	eefd�dd�Zed�dd�Zeedd�dd�Zeeeejdd�dd�Ze	eefd�dd�Zeed�dd�Zeed�d d!�Zed�d"d#�ZdS)$�IndexBuilderzi
    Helper class that creates a search index based on the doctrees
    passed to the `feed` method.
    )r�pickleN)�envrr�scoringrc	Cs�||_i|_i|_i|_i|_i|_i|_i|_t�	|�}|dur^d|vr^t�	|�
d�d�}|durrt|�|_n>t
|t�r�|�dd�\}}tt|�|�}||�|_n
||�|_|r�t|d��}|����|_Wd�q�1s�0Ynd|_t|_dS)N�_r�.��rbrv)r��_titles�
_filenames�_mapping�_title_mapping�_stem_cache�	_objtypes�	_objnamesrUrrr'r<rrpr5�rsplit�getattrr�openrd�decode�js_scorer_coderr)	r r�rrr�Z
lang_class�moduleZ	classname�fpr!r!r"r#�s.


.zIndexBuilder.__init__)�streamrurcs�t|t�r|j|}|�|�}t|t�r:|�d�|jjkrBtd��|d�tt	�|d��|_
tt	�|d��|_ttt
fttttfd��fdd�}||d	�|_||d
�|_dS)zReconstruct from frozen data.�
envversionz
old format�docnames�	filenames�titles)�mappingrcsJi}|��D]8\}}t|t�r.�|h||<q�fdd�|D�||<q|S)Ncsh|]}�|�qSr!r!)rx�i�Zindex2fnr!r"�	<setcomp>&r{z8IndexBuilder.load.<locals>.load_terms.<locals>.<setcomp>)�itemsrp�int)r��rv�k�vr�r!r"�
load_terms s
z%IndexBuilder.load.<locals>.load_terms�terms�
titletermsN)rpr5�formatsre�dictrrr��versionr_�zipr�r�rrr
r�r�)r r�ru�frozenr�r!r�r"res



�(	zIndexBuilder.loadcCs(t|t�r|j|}|�|��|�dS)z"Dump the frozen index to a stream.N)rpr5r�rc�freeze)r r�rur!r!r"rc-s

zIndexBuilder.dump)�fn2indexrcCsHi}|j}|j}t|jj���D�] \}}t|���D�]\}}}	}
}}|
|vrRq6|dkr\q6t�|�}t�|�}|�	d�\}
}}|�
|
g�}z|||	f}Wn^ty�t|�}||||	f<|j
�|	�}|r�||	t|�|��f||<n||	|	f||<Yn0||k�rd}n||	d|k�r$d}n|}|�||
||||f�q6q |S)Nrr�rv�-)r�r��sortedr�Zdomainsr��get_objectsrt�escape�
rpartition�
setdefault�KeyErrorr.Zobject_typesrrr5Z
get_type_name�append)r r�r�ZotypesZonamesZ
domainname�domain�fullnameZdispname�type�docname�anchorZprio�prefixr�rnZplistZ	typeindexZotypeZshortanchorr!r!r"r�3s@
�

�

zIndexBuilder.get_objectscs|iif}t||j|jf�D]\\}}|��D]J\}}t|�dkrZ|\}|�vrt�|||<q*t�fdd�|D��||<q*q|S)Nr�csg|]}|�vr�|�qSr!r!)rx�fn�r�r!r"rzar{z*IndexBuilder.get_terms.<locals>.<listcomp>)r�r�r�r�r.r�)r r�Zrvsr�r�r�r�r�r!r�r"�	get_termsXszIndexBuilder.get_terms)rc
s�tt�j����\}}�fdd�|D�}dd�t|�D�}��|�\}}��|�}dd��j��D�}�j}	t	|||||||	|�j
jd�	S)z/Create a usable data structure for serializing.csg|]}�j�|��qSr!)r�rr)rxr��r r!r"rzgr{z'IndexBuilder.freeze.<locals>.<listcomp>cSsi|]\}}||�qSr!r!)rxr�rar!r!r"�
<dictcomp>hr{z'IndexBuilder.freeze.<locals>.<dictcomp>cSs&i|]\}}||dd|d�qS)r�:r�r!)rxr�r�r!r!r"r�lr{)	r�r�r�r��objects�objtypes�objnamesr�r�)r�r�r�r��	enumerater�r�r�r�r�r�r�)
r r�r�r�r�r�Ztitle_termsr�r�r�r!r�r"r�ds

�zIndexBuilder.freezecCsd|jj|jjfS)Nz
%s (code: %s))rrr�r!r!r"�labelrszIndexBuilder.label)r�rcCs|i}i}|D]*}||jvr|j|||<|j|||<q||_||_|j��D]}|�|�qN|j��D]}|�|�qhdS)z-Remove data for all docnames not in the list.N)r�r�r��values�intersection_updater�)r r�Z
new_titlesZ
new_filenamesr�Z	wordnamesr!r!r"�pruneus
zIndexBuilder.prune)r��filenamer��doctreercs�|�j|<|�j|<t|�j�}|�|�ttd��fdd�}�jj}|jD]J}||�}	||	�rx�j�	|	t
���|�qL||�rL�j�	|t
���|�qL|jD]V}||�}	||	�s�||�r�|}	|�j�
|	t
��v}
||	�r�|
s��j�	|	t
���|�q�dS)zFeed a doctree to the index.r(csDz�j|WSty>�j�|����j|<�j|YS0dSr)r�r�rr+�lower)r)r�r!r"r+�s
zIndexBuilder.feed.<locals>.stemN)r�r�rfr�walkr5r0rjr�r�r7�addrirrr�)r r�r�r�r�Zvisitorr+�_filterr)Zstemmed_wordZalready_indexedr!r�r"�feed�s&




zIndexBuilder.feedcCs:|jjr|jj}n|j}|��t�t|jj��|j|d�S)N)Zsearch_language_stemming_codeZsearch_language_stop_wordsZsearch_scorer_toolZsearch_word_splitter_code)rr�get_js_stemmer_coderrZr�rr�)r rr!r!r"�context_for_searchtool�s
�z#IndexBuilder.context_for_searchtoolcCs&|jjrdd�d|jjfD�SgSdS)z8Returns a list of non-minified stemmer JS files to copy.cSsg|]}t�tdd|��qS)�searchznon-minified-js)r�joinr)rxZfnamer!r!r"rz�s�z8IndexBuilder.get_js_stemmer_rawcodes.<locals>.<listcomp>�base-stemmer.jsN)rrr�r!r!r"�get_js_stemmer_rawcodes�s

�z$IndexBuilder.get_js_stemmer_rawcodescCsdSrr!r�r!r!r"�get_js_stemmer_rawcode�sz#IndexBuilder.get_js_stemmer_rawcodecCs�|jjr�t�tdd�}tt�|d���}|��}Wd�n1sD0Ytt�||jj���}|��}Wd�n1s�0Yd|||jjfS|jjSdS)z<Returns JS code that will be inserted into language_data.js.r�zminified-jsr�Nz%s
%s
Stemmer = %sStemmer;)	rrrr�rr�rdrr8)r Zjs_dirZjs_fileZbase_jsZlanguage_jsr!r!r"r��s&&�z IndexBuilder.get_js_stemmer_code) r1r2r3r4rr�r�rr5rr#rrrercr�rrr�r�r�r�rr�r
rgr�r�r�r	r�r�r!r!r!r"r��s&�#
�%0!

r�),r4rtr�r9�	importlibr�osr�typingrrrrrr	r
rrZdocutilsr
Zdocutils.nodesrrZsphinxrrZsphinx.environmentrZsphinx.search.jssplitterrZsphinx.utilrrZsphinx.search.enr<r5rCrUr6rVZjs_indexZNodeVisitorrfr�r!r!r!r"�<module>sJ	,\�-

Youez - 2016 - github.com/yon3zu
LinuXploit