;ς ΡfiAc@s‡ydklZdklZWniej o]dkZdkZeiideii eii e ƒei ƒƒdk lZ[[nXgZyeWnej odZdZnXdklZydklZWnej o eZnXdfd„ƒYZyd klZWnej od „ZnXd fd „ƒYZed ddddƒedddddƒgZdfZdS((s IValidator(saq_baseNii(sFileType(s FileUploadsMaxSizeValidatorcBs/tZdZeZdddd„Zd„ZRS(sνTests if an upload, file or something supporting len() is smaller than a given max size value If it's a upload or file like thing it is using seek(0, 2) which means go to the end of the file and tell() to get the size in bytes otherwise it is trying to use len() The maxsize can be acquired from the kwargs in a call, a getMaxSizeFor(fieldname) on the instance, a maxsize attribute on the field or a given maxsize at validator initialization. sicCs/||_|p||_||_||_dS(N(snamesselfstitles descriptionsmaxsize(sselfsnamestitles descriptionsmaxsize((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys__init__&s  c Os—|idtƒ}|idtƒ}|idƒo|idƒ}nVtt|ƒdƒo|i |i ƒƒ}n't|dƒo |i}n |i}| ot Sn“t |tƒp&t|ƒtjptt|ƒdƒo-|iddƒ|iƒ}|idƒn-yt|ƒ}Wntj o d}nXt|ƒ}|dd}||jo*d hd |i<d |<d |<Snt SdS( Nsinstancesfieldsmaxsizes getMaxSizeForstelliiisTValidation failed(%(name)s: Uploaded data is too large: %(size).3fMB (max %(max)fMB)snamessizesmax(skwargssgetsNonesinstancesfieldshas_keysmaxsizeshasattrsaq_bases getMaxSizeForsgetNamesselfsTrues isinstancesvalues FileUploadstypesFileTypesseekstellssizeslens TypeErrorsfloatssizeMBsname( sselfsvaluesargsskwargssfieldssizeMBsinstancesmaxsizessize((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys__call__,s0  9    *(s__name__s __module__s__doc__s IValidators__implements__s__init__s__call__(((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pysMaxSizeValidators (sDateTimecCstS(N(sNone(sdate((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pysWss DateValidatorcBs&tZeZddd„Zd„ZRS(NscCs&||_|p||_||_dS(N(snamesselfstitles description(sselfsnamestitles description((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys__init__]s cOsk| od|it|ƒfSnt|tƒ o/yt|ƒ}Wqcd|i|fSqcXntSdS(Ns+Validation failed(%s): value is empty (%s).s6Validation failed(%s): could not convert %s to a date.(svaluesselfsnamesreprs isinstancesDateTimesTrue(sselfsvaluesargsskwargs((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys__call__bs(s__name__s __module__s IValidators__implements__s__init__s__call__(((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys DateValidatorYss isMaxSizestitless descriptions isValidDates validatorList(s)Products.validation.interfaces.IValidators IValidators Acquisitionsaq_bases ImportErrorssyssosspathsinsertsjoinsdirnames__file__spardirsinterfaces.IValidators_markersTrues NameErrorsFalsestypessFileTypesZPublisher.HTTPRequests FileUploadsMaxSizeValidatorsDateTimes DateValidators validatorLists__all__(s_markers FileUploadsFalsesaq_bases__all__sMaxSizeValidatorsTruesDateTimessyss validatorLists DateValidatorsossFileTypes IValidator((sT/mnt/gmirror/ports/www/zope-validation/work/validation/validators/SupplValidators.pys?s4 1     ;0