Files
INTUIA/Programa final/spacy/cli/__pycache__/package.cpython-312.pyc
T

240 lines
30 KiB
Plaintext
Raw Normal View History

2026-03-15 13:27:50 +00:00
Ë
=û g¤_ãó|ddlZddlZddlZddlZddlZddlmZddlmZddl m
Z
m Z m Z m
Z
mZmZmZddlZddlmZddlmZddlmZmZmZdd lmZmZdd
lmZdd lm Z m!Z!d d
l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(e'jRd«e%dddd¬«e%dddd¬«e&dddd¬«e&ddddddd¬«e&ddd d!¬«e&dd"d#d$¬«e&dd%d&d'¬«e&d(d)d*d+¬«e&dd,d-d.d/¬«e&dd0d1d1d2¬«f
d3ed4ed5e*d6e
ed7e+d8e
e*d9e
e*d:e*d;e+d<e+fd=„«Z,dgddddddddf
d3ed4ed6e
ed5e ed8e
e*d9e
e*d7e+d>e+d?e+d<e+d;e+d@e+dAdfdB„Z-dAe+fdC„Z.dAe+fdD„Z/ej`«fdEedFe e*dAe e*fdG„Z1dHe e*dAee+e+ffdI„Z2dJedKe*dAdfdL„Z3 d_dMee*efdNe e*e
fd<e+dAe e*e
ffdO„Z4dNe e*e
fdPedAe e*e
ffdQ„Z5dRe e*e
fdAe*fdS„Z6dTe
dAe*fdU„Z7dVgfdTe e*e
fdFe e*dAe*fdW„Z8dTe e*e
fdAe*fdX„Z9dYe*dAe+fdZ„Z:d[jw«Z<d\j{«Z>d]jw«Z?gd^¢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.zDirectory with pipeline dataTF)ÚhelpÚexistsÚ file_okayzOutput parent directoryÚz--codez-cznComma-separated paths to Python file with additional code (registered functions) to be included in the package)rz --meta-pathz--metaú-mzPath to meta.json)rr Údir_okayz
--create-metaz-Cz$Create meta.json, even if one existsz--namez-nzPackage 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
óÈtt|««\}
} t|«D cgc]} t| j««Œ}} t ||||||||
| || d¬« ycc} 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_formatsrrÚstripr)
r&r'r(r)r*r+r,r-r.r/r1r2Úps
úRC:\Users\garci\AppData\Roaming\Python\Python312\site-packages\spacy/cli/package.pyÚ package_clir8soô<"3´>À%Ó3HÓ!IÑ€L,Ü+9¸*Ô+EÓFÑ+E a”$q—ww“y•/Ð+E€JÐ ØØØØØ
ØØØØö
ùòGs¥ Ar1r2r3Úreturnc ó¤t| | ¬«} tj|«}
tj|«}tj|«}|r*t«s t «sd}| j |dd¬«t «s| j
d«|
r|
j«s| j d|
d¬«|r|j«s| j d|d¬«|s|r6|rd nd
|rd nd
g}| jd d
jd|D«««|D]F}|j«s| j d|d¬«tj|j|«ŒH|r| jdt|«d«|r$|j«s| j d|d¬«|xs|dz }|j«r|j«s| j d|d¬«tj |«}t#||| ¬«}|dr4| jdt|d«dd
j|d««|P|j%«s| j d|ddd¬«t'|«s| j d|ddd¬«||d<|||d<|s| jd|«n t)|| «}t+t,|«}|r@| j d «t/d!j|««t1j2d«|d}|j5|d"d#z«s
|d"d#|}|d$z|dz}||z }||z }|j«r5|
rt7j8t;|««n| j d%d&d¬«t=j>|d'¬(«t7j@t;|«t;||z ««tBD]C}||z |z }|j«sŒt7jDt;|«t;|««ŒE|d)z }|j«s;tG|«}tI||«tI||z d)z |«| jd*«n| jd+«g}|D]E}|jK|j«t7jDt;|«t;|««ŒGtI|dz tjL|d,¬-««tI|d.z tN«tI|d/z tP«tRjUd!jd0„|D««¬1«}tI|d2z |«| jd3|d4|«|rÎtjV|«5tYjZt0j\d5d6d7d8gt^j`jE«¬9«}|jbd:k7r9| j
d;«tjdt0j\d.d gd<¬=«ddd«|d>z |tfz }| jd?|«|råtjV|«5tYjZt0j\d5d6d7d@gt^j`jE«¬9«}|jbd:k7r9| j
dA«tjdt0j\d.dBgd<¬=«ddd«tijjdCd#|«} |d>z | tlz }!| jdD|!«dE|vr| j
d|dF«yy#1swYŒ.xYw#1swYŒjxYw)GN)Úno_printÚprettyzJGenerating wheels requires 'build' or 'wheel' (deprecated) to be installedzpip install buildr©ÚexitszŒGenerating packages without the 'build' package is deprecated and will not be supported in the future. To install 'build': pip install buildzCan't locate pipeline datazOutput directory not foundr%r"ÚwheelzBuilding package artifacts: ú, c3ó&K|] }|sŒ|Œ y­w))Ú.0Úopts r7ú <genexpr>zpackage.<locals>.<genexpr>hsèø€Ð9UÉÀ#ÒQT¼#ÉùsŠzCan't find code filez
Including z" Python module(s) with custom codezCan't find pipeline meta.jsonz meta.jsonzCan'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.zWe 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,zLoaded meta.json from filezInvalid 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)Úindentzsetup.pyz MANIFEST.inc3ó&K|] }d|Œ y­w)zfrom . import NrB)rCÚms r7rEzpackage.<locals>.<genexpr>Äsèø€Ð°1˜N¨1¨#Ôùs)Úimportsz __init__.pyz(Successfully created package directory 'ú'r#r-ú.z--sdist)ÚenvrzgCreating 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.)7rrÚ 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_metarrÚ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*r1r2r/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" r7rrEô ˜6¨f¨*Ô
5€CÜ×! ,€JÜ×" .€KÜ× Ñ  Ó+€IÙœIœK´ ´ à  ð ÐˆÔ Œ;Ø ð
ô
ñ
˜Z× Ð-¨zÀˆÔ ˜k× Ð-¨{À!ˆÔ‘|Ù'‘¨R¹L±ÈbÐØ з ± Ñ9UÉÓ9UÓ0UÐ/VЈ Ø×ÑÔ H‰HÐ+¨Y¸aˆHÔ 
×јŸ¨Õ  ñ Ø :œc *›oÐ.Ð.PÐ˜× Ð0°)À1ˆÔÒ4˜Y¨Ñ4€IØ × Ñ Ô  Y×%6Ñ%6Ô%8Ø Ð0°)À1ˆÔ ?‰?˜9Ó %€DÜ I˜t°NÔ C€DØ ˆNÒØ Øœ˜T .Ñ4ð
à I‰Id˜ 
ð
 ÐØ× Ñ Ô H‰HØ ˜&FðFðrðð
ô
ô*¨$Ô H‰HØ ˜&PðPð[ðð
ô
ðˆˆV‰ ØÐ؈Y‰Ù Ø Ð-¨yÕ˜T 'ˆÜ
”o 
,€FÙ
Ø Ð
ˆdi‰i˜ÓÔ Ü Œ Øf‘€JØ × Ñ   f¡°Ñ!3Ô ˜V™ ~ Q z 3ˆ
Ø Ñ# d¨9¡oÑ5€Lؘ\Ñ)€IؘzÑ)€LØ×ÑÔÙ Ü M‰Mœ#˜lÓ H‰HØDàð
ô
ô  ‡JJˆ| 
‡OO”C˜ “N¤C¨ °|Ñ(CÓ$DÔ#ˆ Ø  /°)Ñ;ˆ Ø × Ñ Õ Ü K‰Kœ˜I›¬¨I«Õ ˜kÑ)€KØ × Ñ Ô Ü  Ó&ˆÜK ÔL /°+Ñ=¸ РЀGÛˆ Øy—~‘~Ô ”C˜ “N¤C¨ Ó$5Õ ô ˜×)9Ñ)9¸$ÀqÔ)IÔ ˜Ô ˜)Ô+<Ô× ÑÓ€Gô ˜}Ñ,¨gÔ‡H °~ÀQÐ
ÔÜ
×
Ñ
˜
—.‘.Ü  w°°YЗJ‘J—O‘OÓˆ~‰~ ÒðHôô× Ñ ¤#§.¡.°*¸gÐ!FÐPUÕ˜%¨<¨.¼¸Ð(GÑØ ÐÔÜ
×
Ñ
˜
—.‘.Ü  w°°YЗJ‘J—O‘OÓˆ~‰~ Òðô
× Ñ Ü—^‘^ Z°Ðõ÷!Ÿf™f T¨3° ÓØ˜"Ð(;Ð'<¼\¸NÐ%KÑKˆØ Ð4°uÔ ˆzÑØ ؘJ˜<ð(Rð
Rõ
ð÷G
(ú÷ 
(úsÕ>B\9ÙB]Ü9]Ý]có, ddl}y#t$rYywxYw)NrTF)r?Ú ImportError)r?s r7rYrYósðÛàøÜ òÙðús cób tjd«y#tj$rYywxYw)Nr-TF)rr,ÚPackageNotFoundErrorrBór7rZrZüs0ðÜ×" øÜ × Ùðús ˜.­.ÚconfigÚexcludecó4d}tj«}tt«}dD]Q}tj||«D]4\}}|dj d«sŒ||dddj
|«Œ6ŒS|jdi«j«D]}d|vsŒ|d j
|d«Œ t«} |d
d }
|j«D]m\} } | D]c}
tjj| |
d z|
z«}|jd
«}|sŒ>| j
|d
jd «d«ŒeŒog}| D]|}|tjk(rŒ||vsŒ|j|«}|sŒ0|d}||vs||vrŒ>tj |«}tj"|«}|j%||«Œ~|S#t$r: tjj| |
«}n#t$r}|dd}~wwxYwYŒwxYw)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éÿÿÿÿú@rNr¦ÚfactoryÚ factoriesr¥rHrRÚmoduler)rÚpackages_distributionsrÚsetÚ walk_dictrmÚaddÚgetÚvaluesÚitemsÚregistryÚfindr ÚsplitrÚ __title__Úget_package_versionÚget_minor_version_rangerw)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ˆDB‰x×" d˜2h˜q˜r#×Õ—Z‘Z  ¨bÓ:ˆ Ø ˜ Ò  × " 9¨YÑ#7Õ ‹e€GØ %‰=˜Ñ €DØ %§ ¡ ¦
ш#ˆ
 ŸM™M×.¨x¸À¹ÀiÑ9OÓP ð$Ÿ-™-¨Ó1ˆKÚØ ˜I hÑ5°cÓ:¸!.ð€LÛˆ Ø œ%Ÿ/™/Ò Ø ˜-Ò  ×$ 1ˆØ˜1gؘ,Ñ&¨#°©.ØÜ×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ó¨gd¢}|D];}||vsŒt«}d|ddj|«}|j|d¬«Œ=|rd|vryd |vd
|vfS) N)r%r?ÚnonezUnknown build format: z
. Supported: r@rr=)FFr%r?)rr^r[)Ú supportedÚformr‡s r7r4r4CspÚ*€IÛˆØ  Ü“)ˆCØ*¨4¨&°
¸d¿i¹iÈ Ó>RÐ=SÐTˆ H‰HS ˆ ñ
f ÑØ   ¨7Ð 2Ð 3rŸr”Úcontentscóh|j«|jdd¬«j|«y)wzutf-8)Úencoding)ÚtouchÚopenÚwrite)r”s r7rvrvOs'Ø
‡OØ
‡NN3 €NÓ)×Õ9rŸÚ
model_pathÚ
existing_metac óˆdddddddddœ}tjt|««}|j|j«tj
t j«|d<|j|«|jjt|jj«|jjj|jjjdœ|d <t jd
k7rt j|d <|jd g«|d Dcgc]}tj |«d
Œ}}t#|j$|¬«}|d j'|«|r=t j|d vr(|d j)t j|dz«|Scc}w)enÚpipelineú0.0.0r"ÚMIT)rHr+r,Ú descriptionÚauthorÚemailÚurlÚlicenseÚ
spacy_version)ÚwidthÚvectorsÚkeysr+Úparent_packagerFr))rÚload_model_from_pathrÚupdaterr¸rÚ __version__ÚvocabÚvectors_lengthrbÚn_keysr+Ú
setdefaultÚsplit_requirementrÊr Úextendrw)r×r/rÚreqÚ
existing_reqsÚreqss r7rfrfTsyð ØØØØØØØñ €Dô ×
#¤D¨Ó$4Ó
5€C؇KKÔÜ ××9JÑ9JÓK€DˆÑ؇KK
Ôà×s—y‘y×— ‘ × ×!×€Dˆ 
˜!Ü!&§¡ˆÐ
ÑØ‡OON 'à?CÀNÒ?SÓTÑ?S¸”T×+¨CÓÓ3Ð?S€MÐ ¯
©
¸MÔ J€D؈Ñ×Ñ Ôœ%Ÿ/™/°°nÑ1EÑ ˆ^Ñ×#¤E§O¡O°d¸?Ñ6KÑ$KÔ €Kùò UsÄ2F?r‡c
óä|xsi}dd|jdd«fdd|jdd«fdd|jdd «fd
d |jd
d«fd d
|jd d«fdd|jdd«fdd|jdd«fdd|jdd«fg}|jd«|jd«|D] \}}}t||«}|dk(r|r|n|||<Œ"|S)NrHzPipeline languagerÚr+z
Pipeline namerÛr,zPackage versionrÜzPackage descriptionrßÚAuthorràz Author emailrázAuthor websiterâÚLicenserÝzGenerating meta.jsonz€Enter the package settings for your pipeline. The following information will be read from your pipeline data: pipeline, vectors.r")ÚdividerÚtextr)r‡rÚsettingsÚsettingÚdescÚdefaultÚresponses r7ririysØ Ò ˜B€Dà Ð$ d§h¡h¨v°tÓ&<Р$§(¡(¨6°:Ó">ÐÐ% t§x¡x° ¸7Ó'CÐÐ-¨t¯x©x¸
ÀtÓ/LÐ8˜TŸX™X Ó. $§(¡(¨7°DÓ"9ÐÐ  $§(¡(¨5°$Ó"7ÐI˜tŸx™x¨ °5Ó €Hð‡K‡H Côó#+ш   /ˆØ#+¨r¢>±g™À8ˆˆ
ð#+ð €KrŸrcót«}|d}|d|d}|d}dj|jdg«Dcgc]}|j|«Œc}«}dj|jdg«Dcgc]}|j|«Œc}«}|jdi«}|jd d
«d |jdd
«d |jd
d
«d} |jd«xsd}
|jdd«} |jd«} t |jd««}
|jd«}t t
tttf|jd«««}tt
tttf|jd«««}|jd«|j|«f|jd«|j|«f|jd«|j|d«f|jd«|f|jd«|f|jd«| f|jd«|
xsdf|jd «| r|j| «ndf|jd!«d"|vr|j|
|d"«n|
fg }|r|j|«|j|j|d#d$g««|r2|j|jd%d&««|j|«|r2|j|jd%d'««|j|«| r|j| «|j Scc}wcc}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.
rHrIr+r,r@rz keys, z unique vectors (räz dimensions)rßún/aÚnotesr"ÚsourcesrÞÚlabelsÚ performanceÚNameÚVersionÚspaCyrãzDefault PipelineÚ
ComponentsÚVectorsÚSourcesröÚFeatureÚ Descriptionéz Label SchemeÚAccuracy)rr^ÚcodeÚ_format_sourcesÚ_format_label_schemer rrprÚ_format_accuracyÚboldÚlinkr¯ÚtableÚtitlerø)rÚmdrHr+r,r6ÚvecsrårÚ license_namerÚ label_schemeÚaccuracyÚ
table_datas r7rurusô
Ó €BØ ‰<€D؈V1T˜&\ #€DØ9‰o€GØy‰y¨d¯h©h°zÀ2Ô.FÓGÑ.F¨˜"Ÿ'™' !*Ð.FÑH€Hذ·±¸ÀrÔ0JÓKÑ0J¨1˜BŸG™G AJÐ0JÑL€JØ 8‰8I˜ "€Dؘ& % W¨T¯X©X°iÀÓ-CÐ,DÐDUÐW[×W_ÑW_Ð`gÐijÓWkÐUlÐlxÐy€GØ
X‰X
Ò
( 5€FØ H‰HW˜ !€EØ—88˜&€LܘdŸh™h 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Ó Ð#Ó $  Ó  
Ð Ó ˜WÐ Ó ˜WÒÐ Ó ±l˜RŸW™W \ÔÐ Ó ¸EÀT¹M˜BŸG™G F¨D°©KÔ8ÈvÐ
€JñØ
ˆ{ÔØ‡FFˆ28‰8J ¨MÐ :Ó Ø
ˆrx‰x˜˜
ˆÙØ
ˆrx‰x˜˜
ˆÙ Ø
ˆ
Ø
7‰7€NùòEHùÚKs ¾M6Á<M;Údatacój|rt|t«syg}|D]‰}t|t«sd|i}|jd«}|sŒ+|jd«}|jd«}|s|ndj ||«}|r|dj |«z
}|j |«Œ‹dj
|«S)Nrÿr+z[{}]({})z ({})z<br>)Ú
isinstanceÚlistÚdictr°r|rwr^)rrÚsourcer+Úresults r7rr¿s­Ù ”z $¬ÔØ€Gۈܘ&¤$Ô˜%ˆz‰z˜ÙØ Øj‰j˜ÓˆØ˜HÓÙ  j×&7Ñ&7¸¸cÓ&BˆÙ Ø g—nn  ,ˆFØðð ;‰; ÐÚspeedc ó€|syt«}|j«Dcgc] \}}t|ttf«sŒ||fŒ"}}}|Dcgc]/\}}||vr&|j |j
««|dzdfŒ1}}}|j|j|ddg««|jScc}}wcc}}w)Nr"édz.2fÚTypeÚScore)
rrÚintÚfloatrÚupperr¯r) rrÚscalarsÚaccÚscoreÚscoress r7rrÒÙ ØÜ Ó €BØ"&§*¡*¤,ÔN¡,™$˜!˜Q´*¸ÄeÀ Õ2M1Šv ,€GÑá!‰JˆCØ  ð
Ó  %¨¡)¨C Ò ñð
‡FFˆ28‰8F˜V  
7‰7€NùóOùós¡B4ÁB4Á4B:c óf|syt«}d}d}g}|j«D]•\}}|sŒ |j|j|««}dj |Dcgc],}|jt |«j
dd««Œ.c}«} |j|| f«|t|«z
}|dz
}Œ—|syd|d|d }
|jd
«|jd |
d «|j|j|d
dg««|jd«|jScc}w)Nr"rr@ú|z\|rzView label scheme (z labels for z components)z <details>z <summary>z
</summary>Ú ComponentÚLabelsz
</details>) rrrr^rpÚreplacerwrbr) rrÚn_labelsÚn_pipesÚ
label_dataÚpiperÚcol1ÚlabelÚcol2Ú
label_infos r7rràs(Ù ØÜ Ó €BØ€HØ€GØ€JØŸ
ž ˆˆfÙØ Øw‰wr—w‘w˜t“}Ó%ˆØy‰yÙBHÓ IÁ&¸ˆRW‰W”S˜“ZרUÓ
4À&Ñ 
ˆð ×ј4 ˜,Ô”C˜“KшØ1‰ ð ØØ& x  ¸W¸IÀ\ÐR€J؇FFˆØ‡FFˆYzl  ‡FFˆ28‰8J ¨hÐ 7Ó ‡FFˆØ
7‰7€Nùò
JsÁ1D.
Ú package_namecóTtjd|tj«}|duS)Nz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$)r…ÚsearchÚ
IGNORECASE)r>Úpermitted_matchs r7rhrhûs(ä—i‘iØ4°lÄBÇMÁMó€Oð   &rŸa‡
#!/usr/bin/env python
import io
import json
from os import path, walk