mò `eĜGc@sSdZdZdZdZdklZdkTdklZdefd„ƒYZ d S( s.$Id: rss.py 988 2008-03-12 18:22:48Z sa3ruby $sOSam Ruby and Mark Pilgrim s$Revision: 988 $s,Copyright (c) 2002 Sam Ruby and Mark Pilgrim(s validatorBase(t*(s noduplicatestrsscBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCsdkl}|ƒtƒfS(N(s rss20Channel(tchannelt rss20Channelt noduplicates(tselfR((t</web/script/rubys/feedvalidator.org/src/feedvalidator/rss.pyt do_channels cCsdkl}|ƒtƒfS(N(saccess_restriction(t extensiontaccess_restrictionR(RR ((Rtdo_access_restrictions cCsdgS(Nuversion(Nuversion(tNone(R((RtgetExpectedAttrNamesscCsq|itƒd|_d |iiƒjo;|ithd|i i <d|i <dd<ƒƒng}|i i D]!}|itjo ||qxqx~oc|id |_|id djo;|ithd|i i <d|i <dd<ƒƒqmnh|id |_|idddgjo>|ithd|i i <d|i <d|i<ƒƒndS( Ns2.0tversiontparenttelementtattrs0.91s0.92tvalue(Nsversion(Nsversion(Nsversion(Nsversion(Rt setFeedTypet TYPE_RSS2R R tattrstgetNamestlogtMissingAttributeRtnamet_[1]t dispatchert loggedEventstet __class__t ValidDoctypetInvalidDoctypetInvalidRSSVersion(RRR((Rt prevalidates  ;<?cCs@d|ijo,|ithd|i<dd<ƒƒndS(NRRR(RtchildrenRtMissingElementR(R((Rtvalidate)s(t__name__t __module__RR R R!R$(((RRs     N( t__doc__t __author__t __version__t __copyright__tbaset validatorBasetloggingt validatorsRR(R*RR(R)R,R((Rt?s