Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/Doc/tools/extensions/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/Doc/tools/extensions/__pycache__/pyspecific.cpython-36.pyc

3

� f1:�M@sdZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZmZddl m!Z!ddl"m#Z#m$Z$ddl%Z%dZ&dZ'ddl(m)Z)dd�e)j*j+d<e)j*j+d<e)j*j+d<e)j*j+d<ej,Z-e!j.Z/dd�Z0dd�Z1e0e_,e1e!_.igfdd �Z2igfd!d"�Z3Gd#d$�d$e
�Z4Gd%d&�d&e5�Z6Gd'd(�d(e6e#�Z7Gd)d*�d*e6e$�Z8Gd+d,�d,e5�Z9Gd-d.�d.e9e#�Z:Gd/d0�d0e9e$�Z;Gd1d2�d2e$�Z<Gd3d4�d4e
�Z=ej>d5�Z?ej>d6�Z@Gd7d8�d8e
�ZAd9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�gMZBGd�d��d�e�ZCej>d��ZDd�d��ZEej>d��ZFd�d��ZGd�d��ZHdS)�z�
    pyspecific.py
    ~~~~~~~~~~~~~

    Sphinx extension with Python doc-specific markup.

    :copyright: 2008-2014 by Georg Brandl.
    :license: Python license.
�N)�getenv�path)�asctime)�pformat)�StringOutput)�	Directive)�new_document)�nodes�utils)�addnodes)�Builder)�translators)�split_explicit_title)�HTMLTranslator)�
TextWriter�TextTranslator)�LaTeXTranslator)�
PyModulelevel�
PyClassmemberzhttps://bugs.python.org/issue%sz-https://github.com/python/cpython/tree/3.6/%s)�BodycCsdS)N�)�xrr�D/opt/alt/python36/lib64/python3.6/Doc/tools/extensions/pyspecific.py�<lambda>-srZ
loweralphaZ
upperalphaZ
lowerromanZ
upperromancCsH|jjj|jj}|jj}d|kr*d|j_zt||�Wd||j_XdS)N�keepdoctestF)�builder�env�metadataZcurrent_docname�highlighter�trim_doctest_flags�orig_visit_literal_block)�self�node�meta�old_trim_doctest_flagsrrr�new_visit_literal_block5sr%cCsJ|jjj|jd}|jj}d|kr,d|j_zt||�Wd||j_XdS)N�rF���)rrrZcurfilestackrr�orig_depart_literal_block)r!r"r#r$rrr�new_depart_literal_block@sr)c	Cs0tj|�}d|}tj||t|d�}|ggfS)Nzbpo-)�refuri)r
�unescaper	�	reference�	ISSUE_URI)	�typ�rawtext�text�lineno�inliner�options�content�issue�refnoderrr�
issue_roleQs
r7cCs@t|�\}}}	tj|�}tj|	�}	tj||t|	d�}
|
ggfS)N)r*)rr
r+r	r,�
SOURCE_URI)r.r/r0r1r2r3r4Zhas_t�title�targetr6rrr�source_roleZs


r;c@s(eZdZdZdZdZdZdZdd�ZdS)�ImplementationDetailTrr&zCPython implementation detail:cCs,tjdgd�}tdj|j�}|j}tj||�}|jrh|jj	|jd|j
�\}}|jtjd||���|jj
||j|�|jo�t|dtj��rtj|djdd�}|dj|_|dj|_||dj7}|djtjdd|dd��|djd|�|djd	tjd
��n|jdtjdd|��|gS)Nzimpl-detail)�classes�sphinxr�T)�translatableFr&� )r?r?)r	�compoundr
�gettext�
label_textr4�strong�	arguments�state�inline_textr1�append�	paragraph�nested_parse�content_offset�children�
isinstance�inline�	rawsource�source�line�replace_self�insertZText)r!Zpnode�labelr4Zadd_text�n�mrrr�runns&
zImplementationDetail.runN)	�__name__�
__module__�__qualname__�has_content�required_arguments�optional_arguments�final_argument_whitespacerDrXrrrrr<dsr<cs$eZdZ�fdd�Zdd�Z�ZS)�PyDecoratorMixincs*tt|�j||�}|jdtjdd��|S)Nr�@)�superr`�handle_signaturerTr�desc_addname)r!�sig�signode�ret)�	__class__rrrc�sz!PyDecoratorMixin.handle_signaturecCsdS)NFr)r!rrr�
needs_arglist�szPyDecoratorMixin.needs_arglist)rYrZr[rcri�
__classcell__rr)rhrr`�sr`c@seZdZdd�ZdS)�PyDecoratorFunctioncCsd|_tj|�S)Nzpy:function)�namerrX)r!rrrrX�szPyDecoratorFunction.runN)rYrZr[rXrrrrrk�srkc@seZdZdd�ZdS)�PyDecoratorMethodcCsd|_tj|�S)Nz	py:method)rlrrX)r!rrrrX�szPyDecoratorMethod.runN)rYrZr[rXrrrrrm�srmcseZdZ�fdd�Z�ZS)�PyCoroutineMixincs*tt|�j||�}|jdtjdd��|S)Nrz
coroutine )rbrnrcrTr�desc_annotation)r!rerfrg)rhrrrc�sz!PyCoroutineMixin.handle_signature)rYrZr[rcrjrr)rhrrn�srnc@seZdZdd�ZdS)�PyCoroutineFunctioncCsd|_tj|�S)Nzpy:function)rlrrX)r!rrrrX�szPyCoroutineFunction.runN)rYrZr[rXrrrrrp�srpc@seZdZdd�ZdS)�PyCoroutineMethodcCsd|_tj|�S)Nz	py:method)rlrrX)r!rrrrX�szPyCoroutineMethod.runN)rYrZr[rXrrrrrq�srqcs$eZdZ�fdd�Zdd�Z�ZS)�PyAbstractMethodcs*tt|�j||�}|jdtjdd��|S)Nrzabstractmethod )rbrrrcrTrro)r!rerfrg)rhrrrc�sz!PyAbstractMethod.handle_signaturecCsd|_tj|�S)Nz	py:method)rlrrX)r!rrrrX�szPyAbstractMethod.run)rYrZr[rcrXrjrr)rhrrr�srrc@s,eZdZdZdZdZdZiZdZdd�Z	dS)�DeprecatedRemovedT�r&zKDeprecated since version {deprecated}, will be removed in version {removed}c
Cs�tj�}|jj|_d|d<|jd|jdf}||d<tdj|j�}|j|jd|jdd�}t	|j�dkr�|jj
|jd	|jd�\}}tj
|jd	d
f|�ddi�}|j|�ng}|jr�|jj|j|j|�t	|��rtt|dtj
�o�|dj�rPtj|djd
d�}|dj|_|dj|_||dj7}|djtj
d
d
|dd��|djdtjd
d|dgd��n.tj
d
d
tjd
d|dgd�dd�}|j|�|jjjj}	|	jd|d||j�|g|S)Nzdeprecated-removed�typerr&�versionr>)�
deprecatedZremoved�rtr?r@FT)r@z%s: �versionmodified)r=z%s.rw)rryrG�documentrFr
rC�_label�format�lenrHr1r	rJrIr4rKrLrNrPrOrQrRrMrSrT�settingsrZnote_versionchange)
r!r"rvrUr0ZinodesZmessagesZparar4rrrrrX�s@


zDeprecatedRemoved.runN)
rYrZr[r\r]r^r_�option_specr{rXrrrrrs�srsz(?:[Ii]ssue #|bpo-)([0-9]+)z(?im)^what's new in (.*?)\??$c@s(eZdZdZdZdZdZiZdd�ZdS)�MiscNewsFr&rc
Cs�|jd}|jjj|j|jjd�}td�}|sBtjtj	|��}tj
||�}|jjj
jj|�y*tj|dd�}z|j�}Wd|j�XWn&tk
r�d}tj||�}|gSXtjd|�}tjd|�}d	d
g|j�dd�}	|jj|	|�gS)Nrr&ZPY_MISC_NEWS_DIRzutf-8)�encodingzThe NEWS file is not available.z,`bpo-\1 <https://bugs.python.org/issue\1>`__z\1z.. default-role:: objr?rx)rFZ
state_machineZinput_linesrQr1Zinput_offsetrr�dirname�abspath�joinrGrzr~Zrecord_dependencies�add�codecs�open�read�close�	Exceptionr	rE�issue_re�sub�whatsnew_re�
splitlinesZinsert_input)
r!ZfnamerQZ
source_dirZfpath�fpr4r0r"�linesrrrrX�s.
zMiscNews.runN)	rYrZr[r\r]r^r_rrXrrrrr��sr��assertZ
assignmentzatom-identifiersz
atom-literalszattribute-accesszattribute-referencesZ	augassignZbinaryZbitwisezbltin-code-objectszbltin-ellipsis-objectzbltin-null-objectzbltin-type-objectsZbooleans�breakzcallable-typesZcalls�classZcomparisonsrBzcontext-managers�continueZconversionsZ
customizationZdebugger�del�dictzdynamic-features�else�
exceptionsZ	execmodelZ	exprlistsZfloating�forZ
formatstringsZfunction�globalz
id-classesZidentifiers�ifZ	imaginary�import�inZintegers�lambdaZlistsZnaming�nonlocalZnumbersz
numeric-typesZobjectszoperator-summary�passZpower�raise�returnzsequence-typesZshiftingZslicingsZspecialattrsZspecialnameszstring-methodsZstringsZ
subscriptions�truth�try�typesZtypesfunctionsZtypesmappingZtypesmethodsZtypesmodulesZtypesseqztypesseq-mutableZunary�while�with�yieldc@s>eZdZdZeZdd�Zdd�Zd
dd�Zd	d
�Z	dd�Z
dS)�PydocTopicsBuilderzpydoc-topicscCsi|_i|_dS)N)�topicsZ
secnumbers)r!rrr�init1szPydocTopicsBuilder.initcCsdS)Nzall pydoc topicsr)r!rrr�get_outdated_docs5sz$PydocTopicsBuilder.get_outdated_docsNcCsdS)Nr?r)r!�docnamer.rrr�get_target_uri8sz!PydocTopicsBuilder.get_target_uric
Gs�yddlm}Wntk
r*|j}YnXt|�}x�|tdtt�d�D]�}||jjddkrp|jd|�qH|jjdd|\}}}|jj	||�}t
d�}	|	j|j|�t
d	d
�}
|j|	|
�|j|j|<qHWdS)Nr)�status_iteratorzbuilding topics... )ZlengthZstdZlabelszlabel %r not in documentationz<section node>zutf-8)r�)Zsphinx.utilr��ImportErrorr�pydoc_topic_labelsr}rZ
domaindata�warnZget_and_resolve_doctreerrIZidsr�write�outputr�)r!Zignoredr��writerrUr�ZlabelidZsectnameZdoctreerzZdestinationrrrr�;s$
zPydocTopicsBuilder.writec
Cslttj|jd�d�}zH|jdjd��|jdt�jd��|jdt|j�djd��Wd|j	�XdS)Nz	topics.py�wbz# -*- coding: utf-8 -*-
zutf-8z # Autogenerated by Sphinx on %s
z	topics = �
)
r�rr�Zoutdirr��encoderrr�r�)r!�frrr�finishPs"zPydocTopicsBuilder.finish)N)rYrZr[rlrZdefault_translator_classr�r�r�r�r�rrrrr�,s
r�z(\w+(?:\+\d)?)(?:\s*\((.*)\))?cCsbtj|�}|dkrt�|j�\}}|tj||�7}|dk	rZtj�}||7}|tj||�7}|j�S)z-Transform an opcode signature into RST nodes.N)	�
opcode_sig_re�match�
ValueError�groupsr�	desc_nameZdesc_parameterlistZdesc_parameter�strip)rrerfrW�opnameZarglistZ	paramlistrrr�parse_opcode_signature_s
r�z([a-z()!]+)\s*(.*)cCsftj|�}|dkrt�|j�\}}|jdd�jdd�}|tj||�7}|rb|tjd|d|�7}|S)z1Transform a pdb command signature into RST nodes.N�(r?�)rA)�
pdbcmd_sig_rer�r�r��replacerr�rd)rrerfrWrl�args�fullnamerrr�parse_pdb_commandys
r�cCs�|jdt�|jdt�|jdt�|jdt�|jt�|jtj	�|j
dddt�|j
ddd	t�|j
d
d
d�|j
dd
t�|j
ddt�|j
ddt�|j
ddt�|j
ddt�|jdt�ddd�S)Nr5rQzimpl-detailzdeprecated-removedZopcodez%s (opcode)Z
pdbcommandZpdbcmdz%s (pdb command)Z	2to3fixerz%s (2to3 fixer)�pyZ	decoratorZdecoratormethodZcoroutinefunctionZcoroutinemethod�abstractmethodZmiscnewsz1.0T)rvZparallel_read_safe)Zadd_roler7r;Z
add_directiver<rsZadd_builderr��
suspiciousZCheckSuspiciousMarkupBuilderZadd_object_typer�r�Zadd_directive_to_domainrkrmrprqrrr�)Zapprrr�setup�s 
r�)I�__doc__�rer��osrrZtimer�pprintrZdocutils.iorZdocutils.parsers.rstrZdocutils.utilsrZdocutilsr	r
r>rZsphinx.buildersrZ
sphinx.localer
Zsphinx.util.nodesrZsphinx.writers.htmlrZsphinx.writers.textrrZsphinx.writers.latexrZsphinx.domains.pythonrrr�r-r8Zdocutils.parsers.rst.statesr�enumZ
convertersZvisit_literal_blockr Zdepart_literal_blockr(r%r)r7r;r<�objectr`rkrmrnrprqrrrs�compiler�r�r�r�r�r�r�r�r�r�rrrr�<module>
s~4	
#
0

&

0