Files
cpp-garmin-img-to-osm/scripts/__pycache__/native_translate.cpython-312.pyc
T

133 lines
30 KiB
Plaintext
Raw Normal View History

2026-10-19 08:52:24 +00:00
Ë
’RÓjîKãóP—dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl m cm
ZddlmZmZd„Zd„Zd„Zd„Zd„Zd „Zd
„Zd „Zd „Zed
«Zej:d«Zd„Zd„Z dd„Z!dd„Z"dd„Z#dd„Z$d„Z%e&dk(re
jNe%««yy)z«v0.95: streaming IMG/OSM native-OsmAnd translation and honest QA.
Only user-editable controls: config/BGMountains-native-poi-mapping-v094.csv and config/line-mapping.csv.
éN)ÚescapeÚ quoteattrc#óK—tj|d¬«}t|«\}}|dk7s|jdk7r t d«‚d}|D]<\}}|dk(r|dz
}Œ|dk(r"|jdvr|–—|j «|dz}Œ>y ­w)
a1Bounded-memory XML pull iterator. ElementTree .clear() alone leaves one
empty Element per processed object in the root; clearing the root prevents
nationwide Garmin files from exhausting RAM during multi-pass conversion.
Callers must fully process each element before requesting the next.
)ÚstartÚend)ÚeventsrÚosmz Expected an OSM XML root elementéé)ÚnodeÚwayÚrelationN)ÚETÚ iterparseÚnextÚtagÚ
ValueErrorÚclear)ÚsourceÚcontextÚeventÚrootÚdepthÚelems úB/home/opthq/v095/cpp-garmin-img-to-osm/scripts/native_translate.pyÚtop_level_elementsrs—èø€ô
�L‰L˜ Ô 7€GÜ�W“
�K€Eˆ4Ø �Ò˜4Ÿ8™8 uÒ,ÜÐ;Ó<Ð<Ø
€EØò‰
ˆˆdØ �'Š>˜% ™(˜% 8Ø �!Š8˜Ÿ™Ð$=Ñ=ØŠJØ �J‰JŒLØ
ˆq‰‰ñ ùs‚B B cóŠ—|jd«D�cic]$}|jd«|jdd«“Œ&c}Scc}w)NrÚkÚvÚ)ÚfindallÚget)rÚxs rÚtagdictr$s5€¸D¿L¹LÈÓ<OÖP°q˜!Ÿ%™% ›* Q§U¡U¨3¨r£]Ñ2ÒPÐPùÒPs”)Ac óì—t|«D]#}|jdk(sŒ|j|«Œ%|j«D]0\}}|€Œ |dk7sŒt j
|d|t
|«¬«Œ2y)Nrr )rr)ÚlistrÚremoveÚitemsrÚ
SubElementÚstr)rÚdÚchildrrs rÚset_tagsr-sg€Ü�d“ò/ˆØ �9‰9�eÓ ˜DŸK™K¨Õ.ð/à�w‰w‹yòJ‰ˆˆ!Ø ‰=˜Q ›U¤2§=¡=°°e¸aÄ#ÀaÃ&Ö#IñJóc#ó¢K—t|dd¬«5}d„|D«}tj|«Ed{–—†ddd«y7Œ
#1swYyxYw­w)Nz utf-8-sigr ©ÚencodingÚnewlinec3óDK—|]}|jd«rŒ|–—Œy­w)ú#N)Ú
startswith)Ú.0Úlines rú <genexpr>zread_csv.<locals>.<genexpr>"sèø€Ò>˜¨¯©¸Õ)=ŒtÑ>ùs‚ ™ )ÚopenÚcsvÚ
DictReader)ÚpÚfÚliness rÚread_csvr? sMèø€Ü
ˆa˜¨RÔ 0ð)°AÙ> Ô>ˆÜ—>‘> %Ó(×(Ð(÷)ð)à(ø÷)ð)üs+‚A‘"A³A´A¸ AÁAÁA ÁAcóH—tt|d««j«S©Nr)ÚhexÚintÚlower)Úvalues rÚcoderF$s€”sœ3˜u Q›<Ó(×.Ñ.Ó0Ð0r.c
ó^—i}g}tt|«d¬«D]È\}}t|d«}t |«}||d<|j
d«xsd j«j«}|d
vrt d |›d|›d|›�«‚t|j
d d
««|j
dd
«r|j|«Œ¬||vrt d|›d|›d|›�«‚|||<ŒÊ|D]}|d|vsŒ t d|d›�«‚||fS#t$r}t d|›d|›d|›�«|‚d}~wwxYw)zÖRead one canonical POI config: unique base rule per code and optional
ordered name_contains rules (a v0.94 feature previously lost in Python).
The v0.93/0.94 15-column files remain backward-compatible.
r )rrFzInvalid POI code at ú:ú: NÚactionÚreplace©rKÚappendÚrawÚdropzInvalid action at Úosm_tagsr Ú
name_containszDuplicate POI base mapping z at zConditional rule has no base: ) Ú enumerater?rFÚ ExceptionrÚdictr"ÚstriprDÚtags_from_stringrM)ÚpathÚbasesÚ conditionalÚline_noÚrowÚcÚexÚacts rÚread_poi_configurationr_%sn€ð
€E˜"ˆkÜ ¤¨$£°aÔ8ò ‰ ˆ�Ü�3�v‘;ÓˆAä �‹Iˆ !�c˜&‘kØ
�W‰W�XÓ
Ò
+ )× 2Ñ 2Ó 4× :Ñ :Ó <ˆØ Ð7Ñ 7ÜÐ1°$°°q¸¸ ÀÀCÀ5ÐIÓJÐ JܘŸ™ ¨BÓ/Ô0Ø �7‰7�? 2Ô &Ø × Ñ ˜sÕ #à�E‰z¤
Ð-HÈÈÈ4ÐPTÈvÐUVÐW^ÐV_Ð+`Ó aÐa؈E�!ŠHð ðòeˆØ ˆv‰;˜eÒ #¬*Ð7UÐVYÐZ`ÑVaÐUbÐ5cÓ*dÐ$dðeà �Ð ÐøôÒg¤ZÐ2FÀtÀfÈAÈgÈYÐVXÐY\ÐX]Ð0^Ó%_ÐegÐgûÐgús¡D Ä D,ÄD'Ä'D,có—t|«dS)zFBase POI map; conditional rules are applied by the C++ override stage.r)r_)rWs rÚmappingra<s€ä ! $Ó '¨Ñ *Ð*r.cóê—i}t|«D]*}t|d«}||vrtd|›d|›�«‚|||<Œ,|S#t$r,}tdt |«zdzt |«z«|‚d}~wwxYw)NrFzInvalid line code in rIzDuplicate line code z in )r?rFrSrr*)rWÚretr[r\r]s rÚ line_mappingrd@sŽ€Ø
€Cܘ‹~òˆÜ�3�v‘;ÓˆAà �‰8œ*Ð';¸A¸3¸dÀ4À&Ð%IÓJÐJ؈ˆAŠð ð
€JøôÒh¤ZÐ0GÌÈDË Ñ0QÐRVÑ0VÔWZÐ[^ÓW_Ñ0_Ó%`ÐfhÐhûÐhús‘=½ A2Á'A-Á-A2cóÜ—i}|jd«D]U}|sŒd|vrtd|›�«‚|jdd«\}}|r|std|›�«‚|dvrtd|z«‚|||<ŒW|S)Nú;ú=zInvalid OSM tag r
)Únameú garmin:typeúgarmin:featureú
garmin:mapsetúbgm:generated_namezReserved mapping key: )Úsplitr)rr+r#rÚvals rrVrVIs�€Ø€AØ
�W‰W�S‹\òˆÙ�Ø �a‰<œjÐ+;¸A¸5Ð)AÓBÐBØ�g‰g�c˜!‹n‰ˆˆ#Ù™¤*Ð/?À¸uÐ-EÓ"FÐFØ Ð\Ñ \ÜÐ5°aÑ7Ó8Ð 8Ø
ˆˆ!Šðð
€Hr.)ÚamenityÚtourismÚ emergencyÚnaturalÚman_madeÚplaceÚhistoricÚshopÚleisureÚbuildingÚwaterwayÚrailwayÚpowerÚaerowayÚhighwayÚhazardÚfordÚwaterÚ water_sourceÚlanduseÚbarrierÚ aerialwayÚcraftÚmilitaryÚ
geologicalÚpublic_transportÚsportz - ([A-Z0-9]{7,16})$c ó—|jdd«}|jd«dk(rtj|«nd}|r|jd«Sdj |jdd«|jdd«|jd d«|jd
d«f«}t j tj|jd «d ¬
«j««j«jd«ddS)Nrhr rlÚyesr
ú|rkriÚlatÚlonúutf-8é)Ú digest_sizergé )
r"ÚGENERATED_SUFFIXÚsearchÚgroupÚjoinÚbase64Ú b32encodeÚhashlibÚblake2sÚencodeÚdigestÚdecodeÚrstrip)rÚtagsrhÚmÚseeds rÚstable_unknown_hashr¢^sÛ€Ø
�‰�&˜Ó €DØ'+§x¡xÐ0DÓ'EÈÒ'NÔ×јdÔ#ÐTX€AÙ�—‘˜“
Ð Ø �‰�4—8‘8˜O¨BÓ/°·±¸ÀrÓ0JØ—8‘8˜E "Ó% d§h¡h¨u°RÓ&8ð:ó
;€Dä × Ñ œGŸO™O¨D¯K©K¸Ó,@ÈQÔO×VÑVÓXÓ Y× `Ñ `Ó b× iÑ iÐjmÓ nÐorÐprÐ sÐsr.c󬇗tˆfd„tD««ry‰jd«dk(sd‰vry|r2|jdd«j«j «dk(ryd ‰d
<d ‰d <d
‰d<‰jdd«j«}|r%‰jd«dk(s|j d«rdt
|‰«z‰d<d‰d<y)zEOnly unclassified POIs. Named POIs retain their genuine source names.c3ó&•K—|]}|‰v–—Œ
y­w©N©)r6rrŸs €rr8z.add_native_unknown_fallback.<locals>.<genexpr>hsøèø€Ò
,˜ˆ1�Œ9Ñ
,ùóƒFriÚ0x6600ÚelerJr rOÚlocalityrtÚplace_localityúbgm:synthetic_fallbackÚ
unverifiedzbgm:classificationrhrlr‹õGarmin обект uÐ�еуточнено - T)ÚanyÚ
SEMANTIC_KEYSr"rUrDr5r¢)rrŸÚrulerhs ` rÚadd_native_unknown_fallbackr²fsÒø€ä
Ó
,œmÔ
,Ô,°EØ ‡x�x�
Ó (Ò*¨e°t©mØÙ �—‘˜ "Ó%×+Ñ+Ó-×3Ñ3Ó5°vÒ=ÀUØ€Dˆ�MØ#3€DÐ !Ñ"Ø+€DÐ ÑØ
�‰�&˜Ó × "Ñ "Ó $€DÙ �4—8‘8Ð0Ó1°5Ò8¸D¿O¹OÐL`Ô<aØ.Ô/BÀ4ÈÓ/MÑMˆˆV‰ Ø#(ˆÐ
!Ñ"Ø r.cóz—t|ddd¬«5}t|ddd¬«5}tj|«}|jgd¢«tj|«}|jddg«t |j «d„¬ «D]Ò\}} | j
d
d «j«j«}
|
d vrtd
|z«‚t| j
dd««} |
dk(rd }
i} |
dk(ri} |j|d|
djd„| j «D««dg«| j
d«sŒ½|j|| dg«ŒÔ|D]¬} | d}| j
d
«xsd j«j«}
t| j
dd««} |
dk(rd}
i} |j|| d|
djd„| j «D««d| j
dd«zg«Œ® ddd«ddd«y#1swYŒxYw#1swYyxYw)zJC++ v0.9 uses these internal stage files; they are NOT user control files.Úwr�r r0)rFrQÚmoderŸÚnoterFÚlabel_bgcó —t|dd«SrA)rC)Úts rú<lambda>z make_cpp_rules.<locals>.<lambda>zs€´c¸!¸A¹$¸q³k€r.)ÚkeyrJrKrLzInvalid action for rPrNrOrfc3ó2K—|]\}}|dz|z–—Œy­w©rgNr¦©r6rrs rr8z!make_cpp_rules.<locals>.<genexpr>€sèø€Ò,M¹¸¸1¨Q¨s©U°1­WÑ,Mùó‚z#v0.92 compiled from poi-mapping.csvÚkeep_rawrQc3ó2K—|]\}}|dz|z–—Œy­wr½r¦r¾s rr8z!make_cpp_rules.<locals>.<genexpr>‰sèø€Ò9¡S Q q˜˜3™˜q�Ñ9ùr¿zv0.95 name-specific rule: r¶N) r9r:ÚwriterÚwriterowÚsortedr(r"rUrDrrVr–) ÚpoisÚoutÚlabelsrYr=Úgr´Úlr\r[rJÚvalss rÚmake_cpp_rulesrËus€ä
ˆc�#˜w¨rÔ 2ðB°a¼¸VÀCÐQXÐacÔ8dðBÐhiÜ
�*‰*�Q‹-ˆ˜Ÿ
™
Ò#PÔQÜ
�*‰*�Q‹-ˆ˜Ÿ
™
 F¨:Ð#6Ô7ܘDŸJ™J›LÑ-AÔBò C‰EˆAˆcØ—7‘7˜8 IÓ.×4Ñ4Ó6×<Ñ<Ó>ˆFØÐ>Ñ>ÄZÐPeÐfgÑPgÓEhÐ?hÜ! #§'¡'¨*°RÓ"8Ó9ˆDØ�uŠ} I˜V°2¨dØ�vŠ~ 2˜dØ
�J‰J˜˜"˜V C§H¡HÑ,MÀÇ
Á
à Ô,MÓ$MÐNsÐtÔ uØ�w‰w�zÕ" 1§:¡:¨q°°Z±Ð.AÕ#Bð Cðò BˆCØ�&‰kˆA #§'¡'¨(Ó"3Ò"@°y×!GÑ!GÓ!I×!OÑ!OÓ!Q˜&Ü! #§'¡'¨*°RÓ"8Ó9ˆDØ�uŠ} J˜V°B¨tØ
�J‰J˜˜#˜oÑ.¨vØ—‘Ñ9¨D¯J©J«LÔ9Ó9Ø,¨S¯W©W°V¸BÓ-?Ñ?ðAõ
Bñ  B÷B÷B÷BñBú÷BðBús*�H1 D)H%Å
C H%ÈH1È%H. È*H1È1H:c󬇗tj«}tj«}tj«}tj«}tj«} tj«}
i} tj«} d}
t|d«5}t|«D�]®}|jdk(�r@t |«Š‰j
d«dk(�rk|
dz
}
‰j
dd«}||xxdz
cc<||vr
| |xxdz
cc<‰j
d «d
k(r
||xxdz
cc<|d k(rd ‰vr|d
xxdz
cc<n!tˆfd„dD««s
||xxdz
cc<t| j
|g««dkrR| j|g«j|j
d«|j
d«‰j
dd«g«dD]}|‰vsŒ| |›d‰|›�xxdz
cc<ŒnK|jdk(r<t |«Š‰j
d«dk(r|