Ñò †°Ic @s¶dZddkZddkZddkZddgZd„ZegZeeƒD]"Z ee i ƒe ee ƒfqS[ƒZ d„Z d„Zd„Zdefd „ƒYZdS( sã Extension to ``htmlfill`` that can parse out schema-defining statements. You can either pass ``SchemaBuilder`` to ``htmlfill.render`` (the ``listen`` argument), or call ``parse_schema`` to just parse out a ``Schema`` object. iÿÿÿÿNt parse_schemat SchemaBuildercCsHtiƒ}tidhd|ƒ}|itiƒ|iƒ|iƒS(s\ Given an HTML form, parse out the schema defined in it and return that schema. tdefaultstlistener( thtmlfill_schemabuilderRthtmlfillt FillingParsertfeedtselftformtclosetschema(R Rtp((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyRs    cCsD|phStg}|iiƒD]}|||fq#~ƒSdS(N(tdictt _messagestkeys(tclstmessaget_[1]tk((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyt get_messagesscCsF|iƒiƒ}|djotS|djotStd ƒ‚dS(Nttruetttyestytont1tfalsetftnotntofft0s,Not a boolean value: %r (use 'true'/'false')(RRRRRR(RRRRRR (tstriptlowertTruetFalset ValueError(tvalue((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pytto_bool$s   cCs;t|tƒo|St|tƒo t|ƒS|gSdS(sH Force single items into a list. This is useful for checkboxes. N(t isinstancetlistttuple(tv((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyt force_list-s  cBs/eZed„Zd„Zd„Zd„ZRS(cCs||_d|_dS(N(t validatorstNonet_schema(RR-((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyt__init__:s cCstiƒ|_dS(N(R tSchemaR/(R((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pytreset>scCs|iS(N(R/(R((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyR AscCsJ|i}||dƒ}|pdStitiƒƒ}d}|iƒdjo||dƒiƒiƒ}|djo|iiti ƒƒqâ|djo |iiti dt ƒƒqâ|djoti ƒ}qân||dƒ} t ||d d ƒƒ} | o,|iitid tti| ƒƒƒnt|id _|o|ii|ƒn||d dƒ} | o³| idƒ} | djo| | df} | | } nd} | iƒ} |ii| ƒ}|ptd| ƒ‚nht|| ƒd 6}|| |Ž}|ii|ƒn|ii||ƒdS(Ntnametinputttypetsubmittcheckboxt to_pythontfiles form:messages form:requiredRtmessagesis form:validatet:iÿÿÿÿisInvalid validation type: %r((tget_attrtcompoundtAllR-tIdentityR.R"R!tappendtBooltWrapperR,tFieldStorageUploadConverterR'tNotEmptyRR$t if_missingtfindtgetR%R/t add_field(RtparserttagtattrsR<R3R+t add_to_endt type_attrRtrequiredtv_typetpostargstv_classtkw_argstv_inst((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyt listen_inputDsN          (t__name__t __module__tdefault_validatorsR0R2R RU(((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyR8s   (t__doc__R-R R=t__all__RR RtdirR3R"tgetattrRXRR'R,tobjectR(((sE/usr/lib/python2.6/site-packages/formencode/htmlfill_schemabuilder.pyts$  8