Ë
    `›¾jX^  ã                   ó|  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZ d dlZd dlmZ d dlmZ d dlmZmZmZ dd	lmZmZ dd
lmZ ddlm Z m!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(  e'jR                  d«       e%dddd¬«       e%dddd¬«       e&dddd¬«       e&ddddddd¬«       e&ddd d!¬«       e&dd"d#d$¬«       e&dd%d&d'¬«       e&d(d)d*d+¬«       e&dd,d-d.d/¬«       e&dd0d1d1d2¬«      f
d3ed4ed5e*d6ee   d7e+d8ee*   d9ee*   d:e*d;e+d<e+fd=„«       Z,dg ddddddddf
d3ed4ed6ee   d5ee   d8ee*   d9ee*   d7e+d>e+d?e+d<e+d;e+d@e+dAdfdB„Z-dAe+fdC„Z.dAe+fdD„Z/ ej`                  «       fdEedFee*   dAee*   fdG„Z1dHee*   dAee+e+f   fdI„Z2dJedKe*dAdfdL„Z3	 d_dMee*ef   dNee*e
f   d<e+dAee*e
f   fdO„Z4dNee*e
f   dPedAee*e
f   fdQ„Z5dRee*e
f   dAe*fdS„Z6dTe
dAe*fdU„Z7dVgfdTee*e
f   dFee*   dAe*fdW„Z8dTee*e
f   dAe*fdX„Z9dYe*dAe+fdZ„Z:d[jw                  «       Z<d\j{                  «       Z>d]jw                  «       Z?g d^¢Z@y)`é    N)Údefaultdict)ÚPath)ÚAnyÚDictÚListÚOptionalÚTupleÚUnionÚcast)ÚRegistryError)ÚConfig)ÚMarkdownRendererÚPrinterÚget_raw_inputé   )ÚaboutÚutil)Úimportlib_metadata)ÚModelMetaSchemaÚvalidateé   )ÚSDIST_SUFFIXÚWHEEL_SUFFIXÚArgÚOptÚappÚstring_to_listÚpackage.zDirectory with pipeline dataTF)ÚhelpÚexistsÚ	file_okayzOutput parent directoryÚ z--codez-cznComma-separated paths to Python file with additional code (registered functions) to be included in the package)r   z--meta-pathz--metaú-mzPath to meta.json)r   r    Údir_okayz--create-metaz-Cz$Create meta.json, even if one existsz--namez-nzPackage name to override metaz	--versionz-vz Package version to override metaÚsdistz--buildz-bz>Comma-separated formats to build: sdist and/or wheel, or none.z--forcez-fz-Fz3Force overwriting existing data in output directoryz$--require-parent/--no-require-parentz-Rz;Include the parent package (e.g. spacy) in the requirementsÚ	input_dirÚ
output_dirÚ
code_pathsÚ	meta_pathÚcreate_metaÚnameÚversionÚbuildÚforceÚrequire_parentc
                 óÈ   — t        t        |«      «      \  }
}t        |«      D �cg c]  }t        |j                  «       «      ‘Œ }}t	        | |||||||
|||	d¬«       yc c}w )a%  
    Generate an installable Python package for a pipeline. Includes binary data,
    meta and required installation files. A new directory will be created in the
    specified output directory, and the data will be copied over. If
    --create-meta is set and a meta.json already exists in the output directory,
    the existing values will be used as the defaults in the command-line prompt.
    After packaging, "python -m build --sdist" is run in the package directory,
    which will create a .tar.gz archive that can be installed via "pip install".

    If additional code files are provided (e.g. Python files containing custom
    registered functions like pipeline components), they are copied into the
    package and imported in the __init__.py.

    DOCS: https://spacy.io/api/cli#package
    F)
r)   r(   r+   r,   r*   Úcreate_sdistÚcreate_wheelr.   r/   ÚsilentN)Úget_build_formatsr   r   Ústripr   )r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r1   r2   Úps                ú[/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy/cli/package.pyÚpackage_clir8      sm   € ôL "3´>À%Ó3HÓ!IÑ€L�,Ü+9¸*Ó+EÖF a”$�q—w‘w“y•/ÐF€JÐFÜØØØØØØØØ!Ø!ØØ%Øöùò Gs   ¥ Ar1   r2   r3   Úreturnc                 ó¤  — t        || ¬«      }t        j                  | «      }t        j                  |«      }t        j                  |«      }|r*t        «       s t	        «       sd}|j                  |dd¬«       t	        «       s|j                  d«       |r|j                  «       s|j                  d|d¬«       |r|j                  «       s|j                  d|d¬«       |s|r6|rd	nd
|rdnd
g}|j                  ddj                  d„ |D «       «      › �«       |D ]F  }|j                  «       s|j                  d|d¬«       t        j                  |j                  |«       ŒH |r|j                  dt        |«      › d�«       |r$|j                  «       s|j                  d|d¬«       |xs | dz  }|j                  «       r|j                  «       s|j                  d|d¬«       t        j                   |«      }t#        | ||	¬«      }|d   r4|j                  dt        |d   «      › d�dj                  |d   «      «       |�P|j%                  «       s|j                  d|› d�dd¬«       t'        |«      s|j                  d|› d�dd¬«       ||d<   |�||d<   |s|j                  d|«       nt)        ||«      }t+        t,        |«      }|r@|j                  d «       t/        d!j                  |«      «       t1        j2                  d«       |d   }|j5                  |d"   d#z   «      s
|d"   › d#|› �}|d$z   |d   z   }||z  }||z  }|j                  «       r5|
rt7        j8                  t;        |«      «       n|j                  d%d&d¬«       t=        j>                  |d'¬(«       t7        j@                  t;        | «      t;        ||z  «      «       tB        D ]C  }||z  |z  }|j                  «       sŒt7        jD                  t;        |«      t;        |«      «       ŒE |d)z  }|j                  «       s;tG        |«      }tI        ||«       tI        ||z  d)z  |«       |j                  d*«       n|j                  d+«       g }|D ]E  }|jK                  |j                  «       t7        jD                  t;        |«      t;        |«      «       ŒG tI        |dz  t        jL                  |d,¬-«      «       tI        |d.z  tN        «       tI        |d/z  tP        «       tR        jU                  d!j                  d0„ |D «       «      ¬1«      }tI        |d2z  |«       |j                  d3|› d4�|«       |rÎt        jV                  |«      5  tY        jZ                  t0        j\                  d5d6d7d8gt^        j`                  jE                  «       ¬9«      }|jb                  d:k7  r9|j                  d;«       t        jd                  t0        j\                  d.d	gd<¬=«       d d d «       |d>z  |› tf        › �z  }|j                  d?|«       |råt        jV                  |«      5  tY        jZ                  t0        j\                  d5d6d7d@gt^        j`                  jE                  «       ¬9«      }|jb                  d:k7  r9|j                  dA«       t        jd                  t0        j\                  d.dBgd<¬=«       d d d «       ti        jj                  dCd#|«      } |d>z  | › tl        › �z  }!|j                  dD|!«       dE|v r|j                  d|› dF�«       y y # 1 sw Y   �Œ.xY w# 1 sw Y   ŒjxY w)GN)Úno_printÚprettyzJGenerating wheels requires 'build' or 'wheel' (deprecated) to be installedzpip install buildr   ©ÚexitszŒGenerating packages without the 'build' package is deprecated and will not be supported in the future. To install 'build': pip install buildzCan't locate pipeline datazOutput directory not foundr%   r"   ÚwheelzBuilding package artifacts: ú, c              3   ó&   K  — | ]	  }|sŒ|–— Œ y ­w)N© )Ú.0Úopts     r7   ú	<genexpr>zpackage.<locals>.<genexpr>�   s   è ø€ Ò9UÀ#ÒQT¼#Ñ9Uùs   ‚ŠzCan't find code filez
Including z" Python module(s) with custom codezCan't find pipeline meta.jsonz	meta.jsonzCan't load pipeline meta.json)r/   Úrequirementsz, package requirement(s) from meta and configzModel name ('zR') is not a valid module name. This is required so it can be imported as a module.z¤We recommend names that use ASCII A-Z, a-z, _ (underscore), and 0-9. For specific details see: https://docs.python.org/3/reference/lexical_analysis.html#identifiersza') is not a permitted package name. This is required to correctly load the model with spacy.load.z�We recommend names that use ASCII A-Z, a-z, _ (underscore), and 0-9. For specific details see: https://www.python.org/dev/peps/pep-0426/#namer+   r,   zLoaded meta.json from filezInvalid pipeline meta.jsonú
ÚlangÚ_ú-z Package directory already existszgPlease delete the directory and try again, or use the `--force` flag to overwrite existing directories.T)Úparentsú	README.mdz"Generated README.md from meta.jsonz0Using existing README.md from pipeline directoryr   )Úindentzsetup.pyzMANIFEST.inc              3   ó&   K  — | ]	  }d |› �–— Œ y­w)zfrom . import NrB   )rC   Úms     r7   rE   zpackage.<locals>.<genexpr>ì   s   è ø€ Ò@°1˜N¨1¨#Ô.Ñ@ùs   ‚)Úimportsz__init__.pyz(Successfully created package directory 'ú'r#   r-   ú.z--sdist)Úenvr   zgCreating sdist with 'python -m build' failed. Falling back to deprecated use of 'python setup.py sdist'F)ÚcaptureÚdistz*Successfully created zipped Python packagez--wheelzzCreating wheel with 'python -m build' failed. Falling back to deprecated use of 'wheel' with 'python setup.py bdist_wheel'Úbdist_wheelz_+z!Successfully created binary wheelÚ__ze') contains a run of underscores. Runs of underscores are not significant in installed package names.)7r   r   Úensure_pathÚ	has_wheelÚ	has_buildÚfailÚwarnr    ÚinfoÚjoinÚimport_fileÚstemÚgoodÚlenÚis_fileÚsrslyÚ	read_jsonÚget_metaÚisidentifierÚ_is_permitted_package_nameÚgenerate_metar   r   ÚprintÚsysÚexitÚ
startswithÚshutilÚrmtreeÚstrr   ÚmkdirÚcopytreeÚFILENAMES_DOCSÚcopyÚgenerate_readmeÚcreate_fileÚappendÚ
json_dumpsÚTEMPLATE_SETUPÚTEMPLATE_MANIFESTÚTEMPLATE_INITÚformatÚworking_dirÚ
subprocessÚrunÚ
executableÚosÚenvironÚ
returncodeÚrun_commandr   ÚreÚsubr   )"r&   r'   r)   r(   r+   r,   r*   r1   r2   r/   r.   r3   ÚmsgÚ
input_pathÚoutput_pathÚerrÚoptsÚ	code_pathÚmetaÚerrorsÚ
model_nameÚmodel_name_vÚ	main_pathÚpackage_pathÚ	file_nameÚ	file_pathÚreadme_pathÚreadmerP   Úinit_pyÚretÚzip_fileÚwheel_name_squashedr?   s"                                     r7   r   r   m   sí  € ô ˜6¨f¨*Ô
5€CÜ×!Ñ! )Ó,€JÜ×"Ñ" :Ó.€KÜ× Ñ  Ó+€IÙœIœK´	´àXð 	ð 	�‰�Ð)°ˆÔ3ÜŒ;Ø�‰ðô	
ñ
 ˜Z×.Ñ.Ô0Ø�‰Ð-¨zÀˆÔCÙ˜k×0Ñ0Ô2Ø�‰Ð-¨{À!ˆÔDÙ‘|Ù'‘¨R¹L±ÈbÐQˆØ�‰Ð/°·	±	Ñ9UÈÔ9UÓ0UÐ/VÐWÔXØò 4ˆ	Ø×ÑÔ!Ø�H‰HÐ+¨Y¸aˆHÔ@ô 	×Ñ˜Ÿ™¨Õ3ð4ñ Ø�‰�:œc *›oÐ.Ð.PÐQÔRÙ˜×)Ñ)Ô+Ø�‰Ð0°)À1ˆÔEØÒ4˜Y¨Ñ4€IØ×ÑÔ Y×%6Ñ%6Ô%8Ø�‰Ð0°)À1ˆÔEÜ�?‰?˜9Ó%€DÜ�I˜t°NÔC€DØˆNÒØ�‰Øœ˜T .Ñ1Ó2Ð3ð 4ð à�I‰I�d˜>Ñ*Ó+ô	
ð
 ÐØ× Ñ Ô"Ø�H‰HØ ˜vð &Fð Fðrð ð ô ô *¨$Ô/Ø�H‰HØ ˜vð &Pð Pð[ð ð ô ð ˆˆV‰ØÐØ!ˆˆY‰ÙØ�‰Ð-¨yÕ9ä˜T 3Ó'ˆÜ”o tÓ,€FÙØ�‰Ð-Ô.Üˆd�i‰i˜ÓÔ Ü�‰�ŒØ�f‘€JØ× Ñ   f¡°Ñ!3Ô4Ø˜V™�~ Q z lÐ3ˆ
Ø Ñ# d¨9¡oÑ5€LØ˜\Ñ)€IØ˜zÑ)€LØ×ÑÔÙÜ�M‰Mœ#˜lÓ+Õ,à�H‰HØ2ðDàð	 ô ô 	‡J�Jˆ| TÕ*Ü
‡O�O”C˜	“N¤C¨°|Ñ(CÓ$DÔEÜ#ò 8ˆ	Ø  <Ñ/°)Ñ;ˆ	Ø×ÑÕÜ�K‰Kœ˜I›¬¨I«Õ7ð8ð ˜kÑ)€KØ×ÑÔÜ  Ó&ˆÜ�K Ô(Ü�L <Ñ/°+Ñ=¸vÔFØ�‰Ð5Õ6à�‰ÐCÔDØ€GØò 7ˆ	Ø�‰�y—~‘~Ô&Ü�‰”C˜	“N¤C¨Ó$5Õ6ð7ô �	˜KÑ'¬×)9Ñ)9¸$ÀqÔ)IÔJä�	˜JÑ&¬Ô7Ü�	˜MÑ)Ô+<Ô=Ü×"Ñ"Ø—	‘	Ñ@¸Ô@Ó@ð #ó €Gô �˜}Ñ,¨gÔ6Ø‡H�HÐ7¸°~ÀQÐGÈÔSÙÜ×Ñ˜iÓ(ñ 	Wô —.‘.Ü—‘  w°°YÐ?Ü—J‘J—O‘OÓ%ôˆCð �~‰~ Ò"Ø—‘ðHôô × Ñ ¤#§.¡.°*¸gÐ!FÐPUÕV÷	Wð ˜vÑ%¨<¨.¼¸Ð(GÑGˆØ�‰Ð=ÀÔIÙÜ×Ñ˜iÓ(ñ 	ô —.‘.Ü—‘  w°°YÐ?Ü—J‘J—O‘OÓ%ôˆCð �~‰~ Ò"Ø—‘ð4ôô
 × Ñ Ü—^‘^ Z°Ð?Èõ÷	ô  !Ÿf™f T¨3°Ó=ÐØ˜FÑ"Ð(;Ð'<¼\¸NÐ%KÑKˆØ�‰Ð4°uÔ=ØˆzÑØ�‰Ø˜J˜<ð (Rð Rõ	
ð ÷G	Wñ 	Wú÷ 	ð 	ús   Õ>B\9ÙB]Ü9]Ý]c                  ó,   — 	 dd l } y# t        $ r Y yw xY w)Nr   TF)r?   ÚImportError)r?   s    r7   rY   rY     s   € ðÛàøÜò Ùðús   ‚ ‡	’c                  ób   — 	 t        j                  d«       y# t         j                  $ r Y yw xY w)Nr-   TF)r   r,   ÚPackageNotFoundErrorrB   ó    r7   rZ   rZ   $  s0   € ðÜ×"Ñ" 7Ô+ØøÜ×2Ñ2ò Ùðús   ‚ ˜.­.ÚconfigÚexcludec                 ó4  — d}t        j                  «       }t        t        «      }dD ]Q  }t        j                  | |   «      D ]4  \  }}|d   j                  d«      sŒ||d   dd    j                  |«       Œ6 ŒS | j                  di «      j                  «       D ]  }d|v sŒ|d	   j                  |d   «       Œ  t        «       }	| d
   d   }
|j                  «       D ]m  \  }}|D ]c  }	 t         j                  j                  ||
dz   |z   «      }|j                  d«      }|sŒ>|	j                  |d   j                  d«      d   «       Œe Œo g }|	D ]|  }|t        j                  k(  rŒ||v sŒ|j                  |«      }|sŒ0|d   }||v s||v rŒ>t        j                   |«      }t        j"                  |«      }|j%                  |› |› �«       Œ~ |S # t        $ r: 	 t         j                  j                  ||«      }n# t        $ r}|d‚d}~ww xY wY �Œw xY w)a¹  If the config includes references to registered functions that are
    provided by third-party packages (spacy-transformers, other libraries), we
    want to include them in meta["requirements"] so that the package specifies
    them as dependencies and the user won't have to do it manually.

    We do this by:
    - traversing the config to check for registered function (@ keys)
    - looking up the functions and getting their module
    - looking up the module version and generating an appropriate version range

    config (Config): The pipeline config.
    exclude (list): List of packages to exclude (e.g. that already exist in meta).
    RETURNS (list): The versioned requirements.
    )Úspacyzspacy-legacyzspacy-nightlyÚthincrd   )ÚnlpÚ
componentséÿÿÿÿú@r   Nr¦   ÚfactoryÚ	factoriesr¥   rH   rR   Úmoduler   )r   Úpackages_distributionsr   ÚsetÚ	walk_dictrm   ÚaddÚgetÚvaluesÚitemsÚregistryÚfindr   Úsplitr   Ú	__title__Úget_package_versionÚget_minor_version_rangerw   )r    r¡   Úown_packagesÚdistributionsÚfuncsÚsectionÚpathÚvalueÚ	componentÚmodulesrH   Úreg_nameÚ
func_namesÚ	func_nameÚ	func_infoÚregerrÚmodule_nameÚdependenciesrU   Úpkgr,   Úversion_ranges                         r7   Úget_third_party_dependenciesrÊ   /  s?  € ð" P€LÜ×/Ñ/Ó1€MÜœÓ€Eà(ò /ˆÜŸ>™>¨&°©/Ó:ò 	/‰KˆD�%Ø�B‰x×"Ñ" 3Õ'Ø�d˜2‘h˜q˜r�lÑ#×'Ñ'¨Õ.ñ	/ð/ð —Z‘Z ¨bÓ1×8Ñ8Ó:ò 9ˆ	Ø˜	Ò!Ø�+Ñ×"Ñ" 9¨YÑ#7Õ8ð9ô ‹e€GØ�%‰=˜Ñ €DØ %§¡£ò ?Ñˆ�*Ø#ò 	?ˆIð+Ü ŸM™M×.Ñ.¨x¸À¹ÀiÑ9OÓP�	ð $Ÿ-™-¨Ó1ˆKÚØ—‘˜I hÑ/×5Ñ5°cÓ:¸1Ñ=Õ>ñ	?ð?ð €LØò =ˆØœ%Ÿ/™/Ò)ØØ˜-Ò'Ø ×$Ñ$ [Ó1ˆDÚØ˜1‘g�Ø˜,Ñ&¨#°©.ØÜ×2Ñ2°3Ó7�Ü $× <Ñ <¸WÓ E�Ø×#Ñ# s e¨M¨?Ð$;Õ<ð=ð Ðøô- !ò +ð+Ü $§¡× 2Ñ 2°8¸YÓ G‘IøÜ$ò +à  dÐ*ûð+úò ð+ús6   Ã+&GÇ	HÇ G?Ç>HÇ?	H	ÈH	ÈH	ÈHÈHÚformatsc                 ó¨   — g d¢}| D ];  }||vsŒt        «       }d|› ddj                  |«      › �}|j                  |d¬«       Œ= | rd| v ryd	| v d
| v fS )N)r%   r?   ÚnonezUnknown build format: z. Supported: r@   r   r=   rÍ   )FFr%   r?   )r   r^   r[   )rË   Ú	supportedÚformr‡   rŠ   s        r7   r4   r4   k  su   € Ú*€IØò #ˆØ�yÒ Ü“)ˆCØ*¨4¨&°¸d¿i¹iÈ	Ó>RÐ=SÐTˆCØ�H‰H�S ˆHÕ"ð	#ñ
 �f Ñ'ØØ�wÐ ¨7Ð 2Ð3Ð3rŸ   r”   Úcontentsc                 óh   — | j                  «        | j                  dd¬«      j                  |«       y )NÚwzutf-8)Úencoding)ÚtouchÚopenÚwrite)r”   rÐ   s     r7   rv   rv   w  s'   € Ø‡O�OÔØ‡N�N�3 €NÓ)×/Ñ/°Õ9rŸ   Ú
model_pathÚexisting_metac           	      óˆ  — dddddddddœ}t        j                  t        | «      «      }|j                  |j                  «       t        j
                  t        j                  «      |d<   |j                  |«       |j                  j                  t        |j                  j                  «      |j                  j                  j                  |j                  j                  j                  dœ|d	<   t        j                  d
k7  rt        j                  |d<   |j                  dg «       |d   D �cg c]  }t        j                   |«      d   ‘Œ }}t#        |j$                  |¬«      }|d   j'                  |«       |r=t        j                  |d   vr(|d   j)                  t        j                  |d   z   «       |S c c}w )NÚenÚpipelineú0.0.0r"   ÚMIT)rH   r+   r,   ÚdescriptionÚauthorÚemailÚurlÚlicenseÚspacy_version)ÚwidthÚvectorsÚkeysr+   rå   r£   Úparent_packagerF   r   )r¡   )r   Úload_model_from_pathr   Úupdater�   r¸   r   Ú__version__ÚvocabÚvectors_lengthrb   rå   Ún_keysr+   r¶   Ú
setdefaultÚsplit_requirementrÊ   r    Úextendrw   )r×   rØ   r/   r�   r¥   ÚreqÚexisting_reqsÚreqss           r7   rf   rf   |  sv  € ð ØØØØØØØñ	€Dô ×
#Ñ
#¤D¨Ó$4Ó
5€CØ‡K�K�—‘ÔÜ ×8Ñ8¼×9JÑ9JÓK€DˆÑØ‡K�K�Ôà—‘×)Ñ)Ü�s—y‘y×(Ñ(Ó)Ø—	‘	×!Ñ!×(Ñ(Ø—	‘	×!Ñ!×&Ñ&ñ	€Dˆ�Oô ‡�˜'Ò!Ü!&§¡ˆÐÑØ‡O�O�N BÔ'à?CÀNÑ?SÖT¸”T×+Ñ+¨CÓ0°Ó3ÐT€MÐTÜ'¨¯
©
¸MÔJ€DØˆÑ×Ñ Ô%Ùœ%Ÿ/™/°°nÑ1EÑEØˆ^Ñ×#Ñ#¤E§O¡O°d¸?Ñ6KÑ$KÔLØ€Kùò Us   Ä2F?r‡   c                 óä  — | xs i }dd|j                  dd«      fdd|j                  dd«      fdd|j                  dd	«      fd
d|j                  d
d «      fdd|j                  dd «      fdd|j                  dd «      fdd|j                  dd «      fdd|j                  dd«      fg}|j                  d«       |j                  d«       |D ]   \  }}}t        ||«      }|dk(  r|r|n|||<   Œ" |S )NrH   zPipeline languagerÚ   r+   zPipeline namerÛ   r,   zPackage versionrÜ   rÞ   zPackage descriptionrß   ÚAuthorrà   zAuthor emailrá   zAuthor websiterâ   ÚLicenserÝ   zGenerating meta.jsonz€Enter the package settings for your pipeline. The following information will be read from your pipeline data: pipeline, vectors.r"   )r°   ÚdividerÚtextr   )rØ   r‡   r�   ÚsettingsÚsettingÚdescÚdefaultÚresponses           r7   ri   ri   ¡  s   € ØÒ˜B€Dà	Ð$ d§h¡h¨v°tÓ&<Ð=Ø	� $§(¡(¨6°:Ó">Ð?Ø	Ð% t§x¡x°	¸7Ó'CÐDØ	Ð-¨t¯x©x¸ÀtÓ/LÐMØ	�8˜TŸX™X h°Ó5Ð6Ø	�. $§(¡(¨7°DÓ"9Ð:Ø	Ð  $§(¡(¨5°$Ó"7Ð8Ø	�I˜tŸx™x¨	°5Ó9Ð:ð	€Hð ‡K�KÐ&Ô'Ø‡H�Hð	Côð #+ò LÑˆ��wÜ   wÓ/ˆØ#+¨r¢>±g™À8ˆˆWŠðLð €KrŸ   r�   c                 ó   — t        «       }| d   }|› d| d   › �}| d   }dj                  | j                  dg «      D �cg c]  }|j                  |«      ‘Œ c}«      }dj                  | j                  dg «      D �cg c]  }|j                  |«      ‘Œ c}«      }| j                  di «      }|j                  d	d
«      › d|j                  dd
«      › d|j                  dd
«      › d�}	| j                  d«      xs d}
| j                  dd«      }| j                  d«      }t	        | j                  d«      «      }| j                  d«      }t        t        t        t        t        f   | j                  d«      «      «      }t        t        t        t        t        f   | j                  d«      «      «      }|j                  d«      |j                  |«      f|j                  d«      |j                  |«      f|j                  d«      |j                  | d   «      f|j                  d«      |f|j                  d«      |f|j                  d«      |	f|j                  d«      |xs df|j                  d «      |r|j                  |«      ndf|j                  d!«      d"| v r|j                  |
| d"   «      n|
fg	}|r|j                  |«       |j                  |j                  |d#d$g«      «       |r2|j                  |j                  d%d&«      «       |j                  |«       |r2|j                  |j                  d%d'«      «       |j                  |«       |r|j                  |«       |j                   S c c}w c c}w )(z³
    Generate a Markdown-formatted README text from a model meta.json. Used
    within the GitHub release notes and as content for README.md file added
    to model packages.
    rH   rI   r+   r,   r@   rÛ   r¦   rå   ræ   r   z keys, z unique vectors (rä   z dimensions)rß   ún/aÚnotesr"   râ   ÚsourcesrÞ   ÚlabelsÚperformanceÚNameÚVersionÚspaCyrã   zDefault PipelineÚ
ComponentsÚVectorsÚSourcesrö   rõ   rá   ÚFeatureÚDescriptioné   zLabel SchemeÚAccuracy)r   r^   r°   ÚcodeÚ_format_sourcesÚ_format_label_schemer   r   rp   r   Ú_format_accuracyÚboldÚlinkr¯   ÚtableÚtitlerø   )r�   ÚmdrH   r+   r,   r6   rÛ   r¦   Úvecsrå   rß   r   Úlicense_namer  rÞ   Úlabel_schemeÚaccuracyÚ
table_datas                     r7   ru   ru   ¸  sõ  € ô 
Ó	€BØ�‰<€DØˆV�1�T˜&‘\�NÐ#€DØ�9‰o€GØ�y‰y¨d¯h©h°zÀ2Ó.FÖG¨˜"Ÿ'™' !�*ÒGÓH€HØ—‘°·±¸ÀrÓ0JÖK¨1˜BŸG™G A�JÒKÓL€JØ�8‰8�I˜rÓ"€DØ—‘˜& !Ó$Ð% W¨T¯X©X°iÀÓ-CÐ,DÐDUÐVZ×V^ÑV^Ð_fÐhiÓVjÐUkÐkwÐx€GØ�X‰X�hÓÒ( 5€FØ�H‰H�W˜bÓ!€EØ—8‘8˜IÓ&€LÜ˜dŸh™h yÓ1Ó2€GØ—(‘(˜=Ó)€KÜ'¬¬T´#´s°(©^¸T¿X¹XÀhÓ=OÓ(PÓQ€LÜ¤¤T¬#¬s¨(¡^°T·X±X¸mÓ5LÓ MÓN€Hà	�‰�‹˜"Ÿ'™' $›-Ð(Ø	�‰�Ó	˜RŸW™W WÓ-Ð.Ø	�‰�Ó	˜2Ÿ7™7 4¨Ñ#8Ó9Ð:Ø	�‰Ð#Ó	$ hÐ/Ø	�‰�Ó	 
Ð+Ø	�‰�Ó	˜WÐ%Ø	�‰�Ó	˜WÒ-¨Ð.Ø	�‰�Ó	±l˜RŸW™W \Ô2ÈÐNØ	�‰�Ó	¸EÀT¹M˜BŸG™G F¨D°©KÔ8ÈvÐVð
€Jñ Ø
�‰ˆ{ÔØ‡F�Fˆ2�8‰8�J ¨MÐ :Ó;Ô<ÙØ
�‰ˆr�x‰x˜˜>Ó*Ô+Ø
�‰ˆ|ÔÙØ
�‰ˆr�x‰x˜˜:Ó&Ô'Ø
�‰ˆxÔÙØ
�‰ˆuŒØ�7‰7€NùòE HùÚKs   ¾M6Á<M;Údatac                 ój  — | rt        | t        «      syg }| D ]‰  }t        |t        «      sd|i}|j                  d«      }|sŒ+|j                  d«      }|j                  d«      }|s|ndj	                  ||«      }|r|dj	                  |«      z  }|j                  |«       Œ‹ dj                  |«      S )Nrÿ   r+   rá   rß   z[{}]({})z ({})z<br>)Ú
isinstanceÚlistÚdictr°   r|   rw   r^   )r  r  Úsourcer+   rá   rß   Úresults          r7   r  r  ç  s²   € Ù”z $¬Ô-ØØ€GØò ˆÜ˜&¤$Ô'Ø˜fÐ%ˆFØ�z‰z˜&Ó!ˆÙØØ�j‰j˜ÓˆØ—‘˜HÓ%ˆÙ ‘ j×&7Ñ&7¸¸cÓ&BˆÙØ�g—n‘n VÓ,Ñ,ˆFØ�‰�vÕðð �;‰;�wÓÐrŸ   Úspeedc           	      ó€  — | syt        «       }| j                  «       D ��cg c]   \  }}t        |t        t        f«      sŒ||f‘Œ" }}}|D ��cg c]/  \  }}||vr&|j                  |j                  «       «      |dz  d›f‘Œ1 }}}|j                  |j                  |ddg«      «       |j                  S c c}}w c c}}w )Nr"   éd   z.2fÚTypeÚScore)
r   r²   r  ÚintÚfloatr  Úupperr¯   r  rø   )	r  r¡   r  ÚkÚvÚscalarsÚaccÚscoreÚscoress	            r7   r  r  ú  s¸   € ÙØÜ	Ó	€BØ"&§*¡*£,×N™$˜!˜Q´*¸QÄÄeÀÕ2M��1ŠvÐN€GÑNð "÷áˆC�Ø�gÑð 
�‰�—‘“Ó	 %¨#¡+¨cÐ!2Ò4ð€Fñ ð
 ‡F�Fˆ2�8‰8�F˜V WÐ-Ó.Ô/Ø�7‰7€Nùó Oùós   ¡B4Á B4Á4B:c                 óf  — | syt        «       }d}d}g }| j                  «       D ]•  \  }}|sŒ	|j                  |j                  |«      «      }dj	                  |D �cg c],  }|j                  t        |«      j                  dd«      «      ‘Œ. c}«      }	|j                  ||	f«       |t        |«      z  }|dz  }Œ— |syd|› d|› d	�}
|j                  d
«       |j                  d|
› d�«       |j                  |j                  |ddg«      «       |j                  d«       |j                  S c c}w )Nr"   r   r@   ú|z\|r   zView label scheme (z labels for z components)z	<details>z	<summary>z
</summary>Ú	ComponentÚLabelsz
</details>)r   r²   r  r  r^   rp   Úreplacerw   rb   r¯   r  rø   )r  r  Ún_labelsÚn_pipesÚ
label_dataÚpiper  Úcol1ÚlabelÚcol2Ú
label_infos              r7   r  r    s$  € ÙØÜ	Ó	€BØ€HØ€GØ€JØŸ
™
›ò ‰ˆˆfÙØØ�w‰w�r—w‘w˜t“}Ó%ˆØ�y‰yÈvÖVÀe˜"Ÿ'™'¤# e£*×"4Ñ"4°S¸%Ó"@ÕAÒVÓWˆØ×Ñ˜4 ˜,Ô'Ø”C˜“KÑˆØ�1‰‰ðñ ØØ& x j°¸W¸IÀ\ÐR€JØ‡F�Fˆ;ÔØ‡F�FˆY�z�l *Ð-Ô.Ø‡F�Fˆ2�8‰8�J ¨hÐ 7Ó8Ô9Ø‡F�Fˆ<ÔØ�7‰7€Nùò Ws   Á1D.
Úpackage_namec                 óT   — t        j                  d| t         j                  «      }|d uS )Nz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$)r…   ÚsearchÚ
IGNORECASE)r>  Úpermitted_matchs     r7   rh   rh   !  s(   € ä—i‘iØ4°lÄBÇMÁMó€Oð  $Ð&Ð&rŸ   a‡  
#!/usr/bin/env python
import io
import json
from os import path, walk
from shutil import copy
from setuptools import setup


def load_meta(fp):
    with io.open(fp, encoding='utf8') as f:
        return json.load(f)


def load_readme(fp):
    if path.exists(fp):
        with io.open(fp, encoding='utf8') as f:
            return f.read()
    return ""


def list_files(data_dir):
    output = []
    for root, _, filenames in walk(data_dir):
        for filename in filenames:
            if not filename.startswith('.'):
                output.append(path.join(root, filename))
    output = [path.relpath(p, path.dirname(data_dir)) for p in output]
    output.append('meta.json')
    return output


def list_requirements(meta):
    # Up to version 3.7, we included the parent package
    # in requirements by default. This behaviour is removed
    # in 3.8, with a setting to include the parent package in
    # the requirements list in the meta if desired.
    requirements = []
    if 'setup_requires' in meta:
        requirements += meta['setup_requires']
    if 'requirements' in meta:
        requirements += meta['requirements']
    return requirements


def setup_package():
    root = path.abspath(path.dirname(__file__))
    meta_path = path.join(root, 'meta.json')
    meta = load_meta(meta_path)
    readme_path = path.join(root, 'README.md')
    readme = load_readme(readme_path)
    model_name = str(meta['lang'] + '_' + meta['name'])
    model_dir = path.join(model_name, model_name + '-' + meta['version'])

    copy(meta_path, path.join(model_name))
    copy(meta_path, model_dir)

    setup(
        name=model_name,
        description=meta.get('description'),
        long_description=readme,
        author=meta.get('author'),
        author_email=meta.get('email'),
        url=meta.get('url'),
        version=meta['version'],
        license=meta.get('license'),
        packages=[model_name],
        package_data={model_name: list_files(model_dir)},
        install_requires=list_requirements(meta),
        zip_safe=False,
        entry_points={'spacy_models': ['{m} = {m}'.format(m=model_name)]}
    )


if __name__ == '__main__':
    setup_package()
zN
include meta.json
include LICENSE
include LICENSES_SOURCES
include README.md
z÷
from pathlib import Path
from spacy.util import load_model_from_init_py, get_model_meta

{imports}

__version__ = get_model_meta(Path(__file__).parent)['version']


def load(**overrides):
    return load_model_from_init_py(__file__, **overrides)
)ÚLICENSEÚLICENSES_SOURCESrL   )F)Ar�   r…   rn   r~   rk   Úcollectionsr   Úpathlibr   Útypingr   r   r   r   r	   r
   r   rd   Ú	cataloguer   Ú	thinc.apir   Úwasabir   r   r   r"   r   r   Úcompatr   Úschemasr   r   Ú_utilr   r   r   r   r   r   Úcommandrp   Úboolr8   r   rY   rZ   ÚSimpleFrozenListrÊ   r4   rv   rf   ri   ru   r  r  r  rh   Úlstripry   r5   rz   r{   rs   rB   rŸ   r7   ú<module>rR     sO  ðÛ 	Û 	Û Û Û 
Ý #Ý ß @× @Ñ @ã Ý #Ý ß ;Ñ ;ç Ý 'ß /ß L× Lð €‡�ˆYÓñ ØÐ0¸Èôñ ØÐ+°DÀEôñ Ø
ØØØ}ô	ñ !$ØØØØØ ØØô!ñ Øˆ Ð+Qôñ Øˆh˜Ð#Bôñ !Øˆk˜4Ð&Hôñ ØØØØMô	ñ ØØØØØBôñ ØØ.ØØØJôñ[TàðTð
 ðTð ðTð ˜‰~ðTð. ð/Tð4 �3‰-ð5Tð: �c‰]ð;Tð@ ðATðL ðMTðZ ò[Tó ðTðt !%ØØØ!ØØØØ ØØñk
Øðk
àðk
ð ˜‰~ðk
ð �T‘
ð	k
ð
 �3‰-ðk
ð �c‰]ðk
ð ðk
ð ðk
ð ðk
ð ðk
ð ðk
ð ðk
ð 
ók
ð\�4ó ð�4ó ð *?¨×)>Ñ)>Ó)@ñ9Øð9Ø! #™Yð9à	ˆ#�Yó9ðx	4˜t C™yð 	4¨U°4¸°:Ñ->ó 	4ð:˜4ð :¨3ð :°4ó :ð !ñ"Ø�c˜4�iÑ ð"à˜˜S˜‘>ð"ð ð"ð 
ˆ#ˆsˆ(�^ó	"ðJ  c¨3 h¡ð °gð À$ÀsÈCÀxÁ.ó ð.,˜$˜s C˜x™.ð ,¨Só ,ð^ ˜#ð   #ó  ð& BIÀ	ñ ˜4  S ™>ð °D¸±Ið Ècó ð˜t C¨ H™~ð °#ó ð2'¨Sð '°Tó 'ðL÷X �FƒHðY ð^÷
 
�EƒGð ð÷ �FƒHð ò >�rŸ   