Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/Doc/tools/extensions/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/Doc/tools/extensions/__pycache__/pyspecific.cpython-35.pyc



��Yf�7�M@s'dZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZdd	lmZmZdd
lmZddlmZddlmZdd
lmZddlmZmZddlmZddlm 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*ej+Z,dd�Z-dd�Z.e-e_)e.e_+igdd�Z/igd d!�Z0Gd"d#�d#e�Z1Gd$d%�d%e2�Z3Gd&d'�d'e3e �Z4Gd(d)�d)e3e!�Z5Gd*d+�d+e2�Z6Gd,d-�d-e6e �Z7Gd.d/�d/e6e!�Z8Gd0d1�d1e!�Z9Gd2d3�d3e�Z:ej;d4�Z<ej;d5�Z=Gd6d7�d7e�Z>d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�gMZ?Gd�d��d�e�Z@ej;d��ZAd�d��ZBej;d��ZCd�d��ZDd�d��ZEdS)�z�
    pyspecific.py
    ~~~~~~~~~~~~~

    Sphinx extension with Python doc-specific markup.

    :copyright: 2008-2014 by Georg Brandl.
    :license: Python license.
�N)�path)�asctime)�pformat)�StringOutput)�	Directive)�new_document)�nodes�utils)�addnodes)�Builder)�split_explicit_title)�HTMLTranslator)�
TextWriter�TextTranslator)�LaTeXTranslator)�
PyModulelevel�
PyClassmemberzhttps://bugs.python.org/issue%sz-https://github.com/python/cpython/tree/3.5/%s)�BodycCsdS)N�)�xrr�D/opt/alt/python35/lib64/python3.5/Doc/tools/extensions/pyspecific.py�<lambda>,srZ
loweralphaZ
upperalphaZ
lowerromanZ
upperromancCsb|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_block4sr#cCsc|jjj|jd}|jj}d|kr>d|j_zt||�Wd||j_XdS)N�rF���)rrrZcurfilestackrr�orig_depart_literal_block)rr r!r"rrr�new_depart_literal_block?sr'c	CsBtj|�}d|}tj||dt|�}|ggfS)Nzbpo-�refuri)r	�unescaper�	reference�	ISSUE_URI)	�typ�rawtext�text�lineno�inliner�options�content�issue�refnoderrr�
issue_rolePs
r5cCs\t|�\}}}	tj|�}tj|	�}	tj||dt|	�}
|
ggfS)Nr()rr	r)rr*�
SOURCE_URI)r,r-r.r/r0r1r2Zhas_t�title�targetr4rrr�source_roleYs
r9c@s4eZdZdZdZdZdZdd�ZdS)�ImplementationDetailTrr$cCstjddg�}|j}tjdd�}|jr~|jj|jd|j�\}}|jtj	dd||��|jj
||j|�|jr�t
|dtj	�r�|djd|�|djdtjd��n|jdtj	dd|��|gS)N�classeszimpl-detailzCPython implementation detail:r�r$� )r�compoundr2�strong�	arguments�state�inline_textr/�append�	paragraph�nested_parse�content_offset�children�
isinstance�insertZText)rZpnoder2Zadd_text�n�mrrr�runjs				%  zImplementationDetail.runN)�__name__�
__module__�__qualname__�has_content�required_arguments�optional_arguments�final_argument_whitespacerLrrrrr:cs
r:cs.eZdZ�fdd�Zdd�Z�S)�PyDecoratorMixincs;tt|�j||�}|jdtjdd��|S)Nr�@)�superrT�handle_signaturerIr
�desc_addname)r�sig�signode�ret)�	__class__rrrW~sz!PyDecoratorMixin.handle_signaturecCsdS)NFr)rrrr�
needs_arglist�szPyDecoratorMixin.needs_arglist)rMrNrOrWr]rr)r\rrT}srTc@seZdZdd�ZdS)�PyDecoratorFunctioncCsd|_tj|�S)Nzpy:function)�namerrL)rrrrrL�s	zPyDecoratorFunction.runN)rMrNrOrLrrrrr^�sr^c@seZdZdd�ZdS)�PyDecoratorMethodcCsd|_tj|�S)Nz	py:method)r_rrL)rrrrrL�s	zPyDecoratorMethod.runN)rMrNrOrLrrrrr`�sr`cs"eZdZ�fdd�Z�S)�PyCoroutineMixincs;tt|�j||�}|jdtjdd��|S)Nrz
coroutine )rVrarWrIr
�desc_annotation)rrYrZr[)r\rrrW�sz!PyCoroutineMixin.handle_signature)rMrNrOrWrr)r\rra�srac@seZdZdd�ZdS)�PyCoroutineFunctioncCsd|_tj|�S)Nzpy:function)r_rrL)rrrrrL�s	zPyCoroutineFunction.runN)rMrNrOrLrrrrrc�srcc@seZdZdd�ZdS)�PyCoroutineMethodcCsd|_tj|�S)Nz	py:method)r_rrL)rrrrrL�s	zPyCoroutineMethod.runN)rMrNrOrLrrrrrd�srdcs.eZdZ�fdd�Zdd�Z�S)�PyAbstractMethodcs;tt|�j||�}|jdtjdd��|S)Nrzabstractmethod )rVrerWrIr
rb)rrYrZr[)r\rrrW�s
z!PyAbstractMethod.handle_signaturecCsd|_tj|�S)Nz	py:method)r_rrL)rrrrrL�s	zPyAbstractMethod.run)rMrNrOrWrLrr)r\rre�srec@s@eZdZdZdZdZdZiZdZdd�Z	dS)�DeprecatedRemovedT�r$z:Deprecated since version %s, will be removed in version %sc	Cs,tj�}|jj|_d|d<|jd|jdf}||d<|j|}t|j�dkr�|jj|jd|jd�\}}t	j
|jdd|�}|j|�ng}|jr�|jj
|j|j|�t|�r�t|dt	j
�r�|djr�t	j|djd	d
�}|dj|_|dj|_||dj7}|djt	j
dd|��|djdt	jdd|dd
g��n;t	j
ddt	jdd|dd
g��}|j|�|jjjj}|jd|d||j�|g|S)Nzdeprecated-removed�typerr$�version�rgr<ZtranslatableTz%s: r;�versionmodifiedz%s.Z
deprecated)r
rkrA�documentr@�_label�lenrBr/rrDrCr2rErFrHZ	rawsourceZinline�source�linerGZreplace_selfrI�settingsrZnote_versionchange)	rr rir.ZinodesZmessagesZparar2rrrrrL�s<


	#  
zDeprecatedRemoved.runN)
rMrNrOrPrQrRrS�option_specrmrLrrrrrf�srfz(?:[Ii]ssue #|bpo-)([0-9]+)z(?im)^what's new in (.*?)\??$c@s:eZdZdZdZdZdZiZdd�ZdS)�MiscNewsFr$rc
Cs<|jd}|jjj|j|jjd�}tjtj|��}tj	||�}|j
jjj
j|�y7tj|dd�}z|j�}Wd|j�XWn1tk
r�d}tj||�}|gSYnXtjd|�}tjd|�}dd	g|j�d
d�}	|jj|	|�gS)Nrr$�encodingzutf-8zThe NEWS file is not available.z,`bpo-\1 <https://bugs.python.org/issue\1>`__z\1z.. default-role:: objr<rj)r@Z
state_machineZinput_linesror/Zinput_offsetr�dirname�abspath�joinrArlrqZrecord_dependencies�add�codecs�open�read�close�	Exceptionrr?�issue_re�sub�whatsnew_re�
splitlinesZinsert_input)
rZfnameroZ
source_dirZfpath�fpr2r.r �linesrrrrL�s*

		 zMiscNews.runN)	rMrNrOrPrQrRrSrrrLrrrrrs�srs�assertZ
assignmentzatom-identifiersz
atom-literalszattribute-accesszattribute-referencesZ	augassignZbinaryZbitwisezbltin-code-objectszbltin-ellipsis-objectzbltin-null-objectzbltin-type-objectsZbooleans�breakzcallable-typesZcalls�classZcomparisonsr>zcontext-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�Zddd�Zd	d
�Z	dd�Z
dS)
�PydocTopicsBuilderzpydoc-topicscCsi|_i|_dS)N)�topicsZ
secnumbers)rrrr�init#s	zPydocTopicsBuilder.initcCsdS)Nzall pydoc topicsr)rrrr�get_outdated_docs'sz$PydocTopicsBuilder.get_outdated_docsNcCsdS)Nr<r)r�docnamer,rrr�get_target_uri*sz!PydocTopicsBuilder.get_target_uricGsyddlm}Wntk
r1|j}YnXt|�}x�|tddtt��D]�}||jjddkr�|jd|�qZ|jjdd|\}}}|jj	||�}t
d�}	|	j|j|�t
d	d
�}
|j|	|
�|j|j|<qZWdS)Nr)�status_iteratorzbuilding topics... ZlengthZstdZlabelszlabel %r not in documentationz<section node>rtzutf-8)Zsphinx.utilr��ImportErrorr�pydoc_topic_labelsrnrZ
domaindata�warnZget_and_resolve_doctreerrCZidsr�write�outputr�)rZignoredr��writerZlabelr�ZlabelidZsectnameZdoctreerlZdestinationrrrr�-s$
	!zPydocTopicsBuilder.writec
Cs�ttj|jd�d�}z^|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 = �
)
rzrrwZoutdirr��encoderrr�r|)r�frrr�finishAs+zPydocTopicsBuilder.finish)rMrNrOr_rZdefault_translator_classr�r�r�r�r�rrrrr�sr�z(\w+(?:\+\d)?)(?:\s*\((.*)\))?cCs�tj|�}|dkr!t�|j�\}}|tj||�7}|dk	r�tj�}||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)rrYrZrK�opnameZarglistZ	paramlistrrr�parse_opcode_signaturePs
r�z([a-z()!]+)\s*(.*)cCs�tj|�}|dkr!t�|j�\}}|jdd�jdd�}|tj||�7}|r�|tjd|d|�7}|S)z1Transform a pdb command signature into RST nodes.N�(r<�)r=)�
pdbcmd_sig_rer�r�r��replacer
r�rX)rrYrZrKr_�args�fullnamerrr�parse_pdb_commandjs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�ddddiS)Nr3rozimpl-detailzdeprecated-removedZopcodez%s (opcode)Z
pdbcommandZpdbcmdz%s (pdb command)Z	2to3fixerz%s (2to3 fixer)�pyZ	decoratorZdecoratormethodZcoroutinefunctionZcoroutinemethod�abstractmethodZmiscnewsriz1.0Zparallel_read_safeT)Zadd_roler5r9Z
add_directiver:rfZadd_builderr��
suspiciousZCheckSuspiciousMarkupBuilderZadd_description_unitr�r�Zadd_directive_to_domainr^r`rcrdrers)Zapprrr�setupws$
r�)F�__doc__�rery�osrZtimer�pprintrZdocutils.iorZdocutils.parsers.rstrZdocutils.utilsrZdocutilsrr	Zsphinxr
Zsphinx.buildersrZsphinx.util.nodesrZsphinx.writers.htmlr
Zsphinx.writers.textrrZsphinx.writers.latexrZsphinx.domains.pythonrrr�r+r6Zdocutils.parsers.rst.statesrZenumZ
convertersZvisit_literal_blockrZdepart_literal_blockr&r#r'r5r9r:�objectrTr^r`rarcrdrerf�compiler~r�rsr�r�r�r�r�r�r�rrrr�<module>
s|@					

.$		/