+
    ÖÇÜh|   ã                   óH   € ^ RI t ^ RIHt ^ RIHt ^ RIHt  ! R R]4      tR# )é    N)Úwarn)ÚElementTree)ÚCorpusReaderc                   ól   a a€ ] tR t^t oRtV 3R ltR tR tR tR t	R t
R tR	 tR
 tR tRtVtV ;t# )ÚBCP47CorpusReaderuV  
Parse BCP-47 composite language tags

Supports all the main subtags, and the 'u-sd' extension:

>>> from nltk.corpus import bcp47
>>> bcp47.name('oc-gascon-u-sd-fr64')
'Occitan (post 1500): Gascon: PyrÃ©nÃ©es-Atlantiques'

Can load a conversion table to Wikidata Q-codes:
>>> bcp47.load_wiki_q()
>>> bcp47.wiki_q['en-GI-spanglis']
'Q79388'

c                ó   <€ \         SV `  W4       / V n        V P                  R4      ;_uu_ 4       pV P	                  VP                  4       P                  R4      4      V n        RRR4       V P                  R4      ;_uu_ 4       pV P                  \        P                  ! V4      P                  R4      4      V n        RRR4       V P                  4        R#   + '       g   i     L}; i  + '       g   i     L5; i)zRead the BCP-47 databasez!iana/language-subtag-registry.txtz%%
Nzcldr/common-subdivisions-en.xmlz+localeDisplayNames/subdivisions/subdivision)ÚsuperÚ__init__ÚlangcodeÚopenÚ	data_dictÚreadÚsplitÚdbÚsubdiv_dictÚetÚparseÚiterfindÚsubdivÚ
morphology)ÚselfÚrootÚfileidsÚfpÚ	__class__s   &&& €Ú:/usr/lib/python3/dist-packages/nltk/corpus/reader/bcp47.pyr
   ÚBCP47CorpusReader.__init__    s©   ø€ ä‰Ñ˜Ô'ØˆŒØ�Y‰YÐ:×;Ô;¸rØ—n‘n R§W¡W£Y§_¡_°VÓ%<Ó=ˆDŒG÷ <à�Y‰YÐ8×9Ô9¸RØ×*Ñ*Ü—’˜“×%Ñ%Ð&SÓTóˆDŒK÷ :ð 	�‰Ö÷ <×;úç9×9ús   ±4CÂ:C-ÃC*	Ã-C=	c                ó  € V P                  R4      ;_uu_ 4       pV P                  VP                  4       P                  4       P	                  R4      R,          4      V n        RRR4       R#   + '       g   i     R# ; i)z:Load conversion table to Wikidata Q-codes (only if needed)z-cldr/tools-cldr-rdf-external-entityToCode.tsvÚ
ºé   NNN)r   Ú	wiki_dictr   Ústripr   Úwiki_q)r   r   s   & r   Úload_wiki_qÚBCP47CorpusReader.load_wiki_q,   sQ   € à�Y‰YÐF×GÔGÈ2ØŸ.™.¨¯©«¯©Ó):×)@Ñ)@ÀÓ)FÀrÕ)JÓKˆDŒK÷ H×G×GÒGús   šA	A-Á-A>	c                óÜ   € V Uu. uF!  q"P                  4       P                  R4      NK#  	  up Uu/ uF*  pV^,          V^ ,          P                  R4      R,          bK,  	  up# u upi u upi )z7Convert Wikidata list of Q-codes to a BCP-47 dictionaryÚ	Ú/éÿÿÿÿ)r#   r   )r   ÚlinesÚlineÚpairs   &&  r   r"   ÚBCP47CorpusReader.wiki_dict1   sf   € ñ ?DÓD¹e°dŸ™›×+Ñ+¨DÖ1¹eÒDó
áD�ð ��G�T˜!•W—]‘] 3Ó'¨Õ+Ò+ÙDñ
ð 	
ùâDùò
s
   …'A$±0A)c                óf   € V Uu/ uF   q"P                   R,          VP                  bK"  	  up# u upi )z2Convert the CLDR subdivisions list to a dictionaryÚtype)ÚattribÚtext)r   ÚsubdivsÚsubs   && r   r   ÚBCP47CorpusReader.subdiv_dict8   s*   € á8?Ó@¹°—
‘
˜6Õ" C§H¡HÒ,¹Ñ@Ð@ùÒ@s   …&.c                ór  € R \         P                  R\         P                  R\         P                  R\         P                  R\         P                  /V n        RpRpRpRpR \
        P                  ! V^,           R	24      R\
        P                  ! V^,           4      R\
        P                  ! V V^,           24      R\
        P                  ! R
V^,           RV^,           R24      R\
        P                  ! V^,           VR	,           ^,           24      R\
        P                  ! V 4      /V n        R# )ÚlanguageÚextlangÚscriptÚregionÚvariantz[0-9]z[a-z]z[A-Z]z[a-zA-Z0-9]Ú?Ú(z)|(Ú)Ú	singletonN)ÚstrÚlowerÚtitleÚupperÚcasingÚreÚcompileÚformat)r   ÚdigÚlowÚupÚalnums   &    r   r   ÚBCP47CorpusReader.morphology<   sõ   € àœŸ	™	Ø”s—y‘yØ”c—i‘iØ”c—i‘iØ”s—y‘yð
ˆŒð ˆØˆØˆØˆàœŸ
š
 c¨!¥e W¨A ;Ó/Ø”r—z’z S¨¥U GÓ-Ø”b—j’j B 4¨¨A­ w Ó0Ø”b—j’j 1 R¨¥T F¨#¨c°!­e¨W°AÐ!6Ó7Ø”r—z’z U¨1¥W I¨u°S­y¸!­m¨_Ð"=Ó>ØœŸš s eÓ-ð
ˆŽó    c                ó²  € V^ ,          P                  RR4      P                  4       V n        / p/ VR&   R F  p/ VR,          V&   K  	  VR,           EF{  pVP                  4       P                  R4       Uu. uF  qUP                  R4      NK  	  ppV^ ,          ^,          pV^,          ^,          pWr9  d   / W'&   / p	VR,           F©  p\	        V4      ^8X  d)   Vw  r«W©9  d   V.Wš&   MPWš,          P                  V4       M8V	X
,          R;;,          R	V^ ,          P                  4       ,           ,          uu&   R
V9  g   K|  VR8X  g   K…  V
R8X  g   KŽ  W€P                  Wš,          R,          &   K«  	  V	 F,  p
\	        Wš,          4      ^8X  g   K  Wš,          ^ ,          Wš&   K.  	  R
V9   d   W’R,          V,          V&   EKp  W’V,          V&   EK~  	  V# u upi )z;Convert the BCP-47 language subtag registry to a dictionaryz
File-Date:Ú Ú
deprecatedr7   r    r   ú: :é   NNÚ Ú
DeprecatedÚDescription)r7   r8   r9   r:   r;   Ú	redundantÚgrandfatheredr*   )Úreplacer#   Úversionr   ÚlenÚappendr   )r   ÚrecordsÚdicÚlabelÚrecordÚfieldÚfieldsÚtypÚtagÚ	subfieldsÚkeyÚvals   &&          r   r   ÚBCP47CorpusReader.data_dictQ   s§  € à˜q•z×)Ñ)¨,¸Ó;×AÑAÓCˆŒØˆØˆˆLÑó
ˆEð (*ˆC�Õ˜eÓ$ñ
ð ˜b—k‘kˆFØ5;·\±\³^×5IÑ5IÈ$Ô5OÓPÑ5O¨E—k‘k $Ö'Ñ5OˆFÐPØ˜•)˜A•,ˆCØ˜•)˜A•,ˆCØŒ~Ø�‘ØˆIØ Ÿ˜�Ü�u“: ”?Ø!&‘J�SØÔ+Ø*-¨˜	šà!�×-Ñ-¨cÕ2à˜c•N 2×&¨#°°aµ·±Ó0@Õ*@Õ@Ó&à ¨Ö.Ø˜zÖ)Ø˜}Ö,à8;—M‘M )¥.°Õ"4Ó5ñ $ó !�Ü�y•~Ó&¨!Ö+Ø%.¥^°AÕ%6�I“Nñ !ð ˜vÔ%Ø.7�LÕ! #Õ& sÔ+à )�C•˜”ñ9 "ð: ˆ
ùò9 Qs   Á7Gc                ó@   € \        V4      \        8X  d
   V^ ,          pV# )zReturn only first value)r0   Úlist)r   rf   s   &&r   Úval2strÚBCP47CorpusReader.val2str   s   € ä�‹9œÔà�a•&ˆCØˆ
rM   c                ó`   € VR,           pR F  pW19   g   K  VRW,           2,          pK  	  V# )zConcatenate subtag valuesr7   rQ   )r8   r9   r:   r;   Ú	extension© )r   Ú	lg_recordÚnamer^   s   &&  r   Úlang2strÚBCP47CorpusReader.lang2str†   s<   € à˜JÕ'Ð(ˆÛLˆEØÖ!Ø˜"˜YÕ-Ð.Ð/Õ/’ñ Mð ˆrM   c                ó†  € VP                  R4      p/ p. ROpV'       Edœ   V'       Ed“   VP                  ^ 4      pRpV'       Ed§   VP                  ^ 4      pV P                  V,          ! V4      pV P                  V,          P	                  V4      '       g   K]  WPP
                  V,          9   da   RpV P                  V P
                  V,          V,          R,          4      pVR8X  d#   Ws9   d   W7;;,          RV,           ,          uu&   MWƒV&   MÛWPP
                  R,          V,          9   g   Kô  RpRV: R	V R
2p	RV P
                  R,          V,          V,          9   dE   V P
                  R,          V,          V,          R,          p
V	RV P                  V
4       R2,          p	V P                  V P
                  R,          V,          V,          R,          4      W7&   \        V	4        V'       d   EKß  VR8X  dC   V^ ,          R8X  d5   V^,          pW°P                  9   d   V P                  V,          pMzRX R2pMsT RP                  V Uu. uF  pRV,           NK  	  up4       2P                  4       pV P                  R,          P	                  V4      '       g   RV R2p\        V4       WÃR&   . pEK¤  V# u upi )z8Convert a BCP-47 tag to a dictionary of labelled subtagsÚ-r;   FTrU   rQ   rP   úThe rS   z code is deprecatedúPreferred-Valuez', prefer 'Ú'ÚuÚsdz<Unknown subdivision: Ú>rO   r?   z<Invalid extension: rm   )r7   r8   r9   r:   r;   r;   )r   ÚpoprD   rG   Ú	fullmatchr   rj   r   r   ÚjoinrA   )r   rc   ÚsubtagsÚlangÚlabelsÚsubtagÚfoundr^   ÚvalstrÚnoteÚpreferry   Úexts   &&           r   Ú	parse_tagÚBCP47CorpusReader.parse_tagŽ   sM  € à—)‘)˜C“.ˆØˆÚRˆßˆgŸ&˜&Ø—[‘[ “^ˆFØˆEß�&ØŸ
™
 1›�ØŸ™ UÖ+¨FÓ3�Ø—;‘;˜uÕ%×/Ñ/°×7Ô7Ø§¡¨¥Ô/Ø $˜Ø!%§¡¨d¯g©g°e­n¸VÕ.DÀ]Õ.SÓ!T˜Ø  IÔ-°%´-Ø ŸK¨4°&­=Õ8œKà*0 ™KØØ§7¡7¨<Õ#8¸Õ#?Ö?Ø $˜Ø!% f¡Z¨q°°Ð7JÐK˜Ø,°·±¸Õ0EÀeÕ0LÈVÕ0TÔTØ%)§W¡W¨\Õ%:¸5Õ%AÀ&Õ%IØ 1õ&˜Fð ! k°$·,±,¸vÓ2FÐ1GÀqÐ$IÕI˜DØ&*§l¡lØ ŸG™G LÕ1°%Õ8¸Õ@ÀÕOó'˜™ô ˜Tœ
Øß’5Ø˜S”= W¨Q¥Z°4Ô%7Ø  ��BØŸ[™[Ô(Ø"Ÿk™k¨"�o™à 6°s°e¸1Ð=™à#˜H R§W¡WÁÓ-IÁ¸#¨c°#¯g¨gÁÑ-IÓ%JÐ$KÐL×RÑRÓT�CØŸ;™; {Õ3×=Ñ=¸f×EÒEØ 4°S°E¸Ð;˜Ü˜Sœ	Ø$'�[Ñ!Ø“Øˆùò .Js   ÉJ>
c                ó¸  € R EF  pRpWP                   V,          9   d-   V P                   V,          V,          R,           pRV: RV 2pM»WP                   R,          V,          9   dž   V P                   R,          V,          V,          R,           pRV: RV R2pRV P                   R,          V,          V,          9   dE   V P                   R,          V,          V,          R,          pVRV P                  V4      : 2,          pV'       g   EK  \        X4       Vu # 	   V P                  V P	                  V4      4      #    \        R	T: R
24        R# ; i)z¯
Convert a BCP-47 tag to a colon-separated string of subtag names

>>> from nltk.corpus import bcp47
>>> bcp47.name('ca-Latn-ES-valencia')
'Catalan: Latin: Spain: Valencian'

NrU   ru   z	 code is rP   z and deprecatedrv   z	, prefer zTag z was not recognized)rV   rW   )r   rj   r   rq   r‡   )r   rc   r^   rf   r„   r…   s   &&    r   rp   ÚBCP47CorpusReader.name¿   s3  € ô 4ˆEØˆCØ—g‘g˜e•nÔ$ØŸ™ �¨Õ,¨]Õ;Ð<�Ø˜c™W I¨e¨WÐ5‘ØŸ™ Õ-¨eÕ4Ô4ØŸ™ Õ.¨uÕ5°cÕ:¸=ÕIÐJ�Ø˜c™W I¨e¨W°OÐD�Ø$¨¯©°Õ(=¸eÕ(DÀSÕ(IÔIØ!ŸW™W \Õ2°5Õ9¸#Õ>Ð?PÕQ�FØ˜i¨¯©°VÓ(<Ñ'?Ð@Õ@�DßŠsÜ�T”
Ø’
ñ 4ð	Ø—=‘= §¡°Ó!4Ó5Ð5øð	Ü�4˜‘wÐ1Ð2Ô3Úús   Ä$E ÅE)rD   r   rG   r   r   rY   r$   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   r%   r"   r   r   r   rj   rq   r‡   rp   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      sE   ù‡ € ñõ 
òLò

òAò
ò*,ò\òò/÷bò rM   r   )	rE   Úwarningsr   Ú	xml.etreer   r   Únltk.corpus.readerr   r   rn   rM   r   Ú<module>r—      s!   ðó 
Ý Ý 'å +ôK˜ö KrM   