Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/__pycache__/c_annotations.cpython-33.pyc

�
��fGc@s�dZddlmZddlmZddlmZddlmZddl	m
Z
Gdd�d�ZGd	d
�d
e�Z
dd�Zd
d�ZdS(u�
    c_annotations.py
    ~~~~~~~~~~~~~~~~

    Supports annotations for C API elements:

    * reference count annotations for C API functions.  Based on
      refcount.py and anno-api.py in the old Python documentation tools.

    * stable API annotations

    Usage: Set the `refcount_file` config value to the path to the reference
    count data file.

    :copyright: Copyright 2007-2013 by Georg Brandl.
    :license: Python license.
i(upath(unodes(u
directives(uaddnodes(uCObjectcBs |EeZdZdd�ZdS(uRCEntrycCs(||_g|_d|_d|_dS(Nu(unameuargsuresult_typeuNoneuresult_refs(uselfuname((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyu__init__s			uRCEntry.__init__N(u__name__u
__module__u__qualname__u__init__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyuRCEntrysuRCEntrycBs2|EeZdZedd��Zdd�ZdS(uAnnotationscCsF|�}t|d�}zx|D]
}|j�}|dd�d
krPq"n|jdd�}t|�dkr�td|��n|\}}}}	}
y||}Wn&tk
r�t|�}||<YnX|	s�|	d	kr�d}	nt|	�}	|r|j	j
|||	f�q"||_|	|_q"WWd|j
�X|S(Nuriuu#u:iiuWrong field count in %runull(uu#(uopenustripusplitulenu
ValueErroruKeyErroruRCEntryuNoneuintuargsuappenduresult_typeuresult_refsuclose(uclsufilenameudufpulineupartsufunctionutypeuargurefcountucommentuentry((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyufromfile%s0	

		uAnnotations.fromfilec	CsBx;|jtj�D]'}|j}|ddkr8qn|drj|jdtjddddg��n|ddkr�qn|djd	�s|dd	r�qn|j|dd	d�}|s�qn|j	dkr�qn|j
dkr�d}n|j
rd
}nd}|jdtj||ddg��qWdS(Nudomainucu	stableabiiu Part of the stable ABI.uclassesuobjtypeufunctionunamesu	PyObject*uPyVarObject*uReturn value: Always NULL.uReturn value: New reference.u!Return value: Borrowed reference.urefcount(u	PyObject*uPyVarObject*(utraverseuaddnodesudesc_contentuparentuinsertunodesuemphasisuhas_keyugeturesult_typeuresult_refsuNone(uselfuappudoctreeunodeuparuentryurc((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyuadd_annotationsGs.	
#			uAnnotations.add_annotationsN(u__name__u
__module__u__qualname__uclassmethodufromfileuadd_annotations(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyuAnnotations$s"uAnnotationscCs;tjtj|j|jj��}|jd|j�dS(Nudoctree-read(	uAnnotationsufromfileupathujoinusrcdiruconfigu
refcount_fileuconnectuadd_annotations(uappu	refcounts((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyuinit_annotationsbsuinit_annotationscsh|jddd�|jdt�itjd6tjd6t_tj��fdd�}|t_dS(	Nu
refcount_fileuubuilder-initedunoindexu	stableabics&d|jk|jd<�|||�S(Nu	stableabi(uoptionsuparent(uselfusigusignode(uold_handle_signature(uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyunew_handle_signaturersu#setup.<locals>.new_handle_signatureT(	uadd_config_valueuTrueuconnectuinit_annotationsu
directivesuflaguCObjectuoption_specuhandle_signature(uappunew_handle_signature((uold_handle_signatureuF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyusetuphs
	usetupN(u__doc__uosupathudocutilsunodesudocutils.parsers.rstu
directivesusphinxuaddnodesusphinx.domains.cuCObjectuRCEntryudictuAnnotationsuinit_annotationsusetup(((uF/opt/alt/python33/lib64/python3.3/Doc/tools/sphinxext/c_annotations.pyu<module>s>