mň ,á¸Ec@s^dZdkZdkZdkZdkZdadad„Zd„Z d„Z d„Z dS(s)Extract Zope 2 version information $id$ NcCsdadadS(N(tNonet_version_stringt _zope_version(((t./data/zmath/zope/lib/python/App/version_txt.pyt _test_resetscCsktdjoZti}d|d|d|dtif}tii tii t i ƒdƒ}tidƒ}yt|ƒiƒiƒ}Wntj od}danŠXtid d |ƒ}|i|ƒiƒ}t|id ƒpdƒt|id ƒpdƒt|id ƒpdƒ|idƒpd t|idƒpdƒfad||fandS(Nspython %d.%d.%d, %siiis version.txts|(?P[A-Za-z0-9]+) +(?P[0-9]+)\.(?P[0-9]+)\.(?P[0-9]+)(?P[A-Za-z]+)?(?P[0-9]+)?sunreleased versioni˙˙˙˙ts \(.*?\)\?tmajortminortmicrotstatustreleases%s, %s(i˙˙˙˙i˙˙˙˙i˙˙˙˙Ri˙˙˙˙(RRtsyst version_infotvtplatformtpyvertostpathtjointdirnametZope2t__file__tfntretcompiletexprtopentreadtstriptstIOErrortssRtsubtmatcht groupdicttdicttinttget(RRRRR#R R((Rt_prep_version_datas  %$ }cCstƒdtS(Ns(%s)(R&R(((Rt version_txt9scCs tƒtS(sš Format of zope_version tuple: (major , minor , micro , status , release ) If unreleased, integers may be -1. N(R&R(((RtgetZopeVersion=s( t__doc__RR RRRRRRR&R'R((RRRR&R RR'R(((Rt?s