+
    üÐjp  ã                   ó>   € R t ^ RIHt  ! R R4      t ! R R4      tR# )z6
Generic sentence handling tools: hopefully reusable.
)ÚSetc                   ól   a € ] tR t^	t o Rt]! 4       tR t]R 4       t	R t
V 3R lR ltV 3R ltRtV tR	# )
Ú_BaseSentenceaÙ  
A base sentence class for a particular protocol.

Using this base class, specific sentence classes can almost automatically
be created for a particular protocol.
To do this, fill the ALLOWED_ATTRIBUTES class attribute using
the C{getSentenceAttributes} class method of the producer::

    class FooSentence(BaseSentence):
        """
        A sentence for integalactic transmodulator sentences.

        @ivar transmogrificationConstant: The value used in the
            transmogrifier while producing this sentence, corrected for
            gravitational fields.
        @type transmogrificationConstant: C{Tummy}
        """
        ALLOWED_ATTRIBUTES = FooProtocol.getSentenceAttributes()

@ivar presentAttributes: An iterable containing the names of the
    attributes that are present in this sentence.
@type presentAttributes: iterable of C{str}

@cvar ALLOWED_ATTRIBUTES: A set of attributes that are allowed in this
    sentence.
@type ALLOWED_ATTRIBUTES: C{set} of C{str}
c                ó   € Wn         R# )z�
Initializes a sentence with parsed sentence data.

@param sentenceData: The parsed sentence data.
@type sentenceData: C{dict} (C{str} -> C{str} or L{None})
N©Ú_sentenceData)ÚselfÚsentenceDatas   &&Ú?/usr/lib/python3/dist-packages/twisted/positioning/_sentence.pyÚ__init__Ú_BaseSentence.__init__(   s
   € ð *Öó    c                ó,   € \        V P                  4      # )z©
An iterable containing the names of the attributes that are present in
this sentence.

@return: The iterable of names of present attributes.
@rtype: iterable of C{str}
)Úiterr   )r   s   &r
   ÚpresentAttributesÚ_BaseSentence.presentAttributes1   s   € ô �D×&Ñ&Ó'Ð'r   c                ó¬   € WP                   9   d   V P                  P                  VR4      # V P                  P                  pV RV R2p\        V4      h)z%
Gets an attribute of this sentence.
Nz sentences have no z attributes)ÚALLOWED_ATTRIBUTESr   ÚgetÚ	__class__Ú__name__ÚAttributeError)r   ÚnameÚ	classNameÚmsgs   &&  r
   Ú__getattr__Ú_BaseSentence.__getattr__<   sV   € ð ×*Ñ*Ô*Ø×%Ñ%×)Ñ)¨$°Ó5Ð5àŸ™×/Ñ/ˆIØ�KÐ2°4°&¸ÐDˆCÜ  Ó%Ð%r   c                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn)Ústr)ÚformatÚ__classdict__s   "€r
   Ú__annotate__Ú_BaseSentence.__annotate__G   s   ø€ ÷ <ñ <™#ñ <r   c                óJ  € V P                   P                  4       p\        V4       UUu. uF  w  r#VR8w  g   K  V RV 2NK  	  pppRP                  V4      pV P                   P	                  R4      ;'       g    RpV P
                  P                  pRV RV RV R2# u uppi )	zx
Returns a textual representation of this sentence.

@return: A textual representation of this sentence.
@rtype: C{str}
Útypez: z, zunknown typeÚ<z (z) {z}>)r   ÚitemsÚsortedÚjoinr   r   r   )r   r(   ÚkÚvÚdataÚdataReprÚtypeReprr   s   &       r
   Ú__repr__Ú_BaseSentence.__repr__G   sŸ   € ð ×"Ñ"×(Ñ(Ó*ˆÜ(.¨u¬ÔE©¡ ¸¸f¹”�1�#�R˜�s“©ˆÑEØ—9‘9˜T“?ˆà×%Ñ%×)Ñ)¨&Ó1×CÐC°^ˆØ—N‘N×+Ñ+ˆ	à�9�+˜R ˜z¨¨h¨Z°sÐ;Ð;ùó Fs
   ©B¹Bc                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r   r   )r   r    )r!   r"   s   "€r
   r#   r$   	   s   ø‡ ‚ ñ: ™C�Ñ(ò; r   r   N)r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úsetr   r   Úpropertyr   r   r0   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r"   s   @r
   r   r   	   sD   ø‡ € ññ8 $'£5Ðò*ð ñ(ó ð(ò	&÷<ð <÷} ƒ r   r   c                   ó4   a € ] tR t^Xt o Rt]R 4       tRtV tR# )Ú!_PositioningSentenceProducerMixina�  
A mixin for certain protocols that produce positioning sentences.

This mixin helps protocols that store the layout of sentences that they
consume in a C{_SENTENCE_CONTENTS} class variable provide all sentence
attributes that can ever occur. It does this by providing a class method,
C{getSentenceAttributes}, which iterates over all sentence types and
collects the possible sentence attributes.
c                óŽ   € R0pV P                   P                  4        F#  pV F  pVf   K	  VP                  V4       K  	  K%  	  V# )a  
Returns a set of all attributes that might be found in the sentences
produced by this protocol.

This is basically a set of all the attributes of all the sentences that
this protocol can produce.

@return: The set of all possible sentence attribute names.
@rtype: C{set} of C{str}
r&   )Ú_SENTENCE_CONTENTSÚvaluesÚadd)ÚclsÚ
attributesÚattributeListÚ	attributes   &   r
   ÚgetSentenceAttributesÚ7_PositioningSentenceProducerMixin.getSentenceAttributesc   sK   € ð �Xˆ
Ø ×3Ñ3×:Ñ:Ö<ˆMÛ*�	ØÒ$ÙØ—‘˜yÖ)ó +ñ =ð Ðr   © N)	r   r3   r4   r5   r6   ÚclassmethodrG   r:   r;   r<   s   @r
   r>   r>   X   s   ø‡ € ñð ñó ör   r>   N)r6   Útypingr   r   r>   rI   r   r
   Ú<module>rL      s&   ðñõ ÷L<ñ L<÷^ó r   