Ok, Will do my best to explain this but reply if your confused :)

I have written a validator that checks the contents of an uploaded
file. It needs the contents of the file itself and the bind arguments
( kw.get("blah") ) to validate the file.

Problem is that I can only seem to get the contents of the file and I
cant see any way to access the bind arguments.

Here is my code for the validator: (I tacked kw=None onto the
functions arguments to show what I need it to do)
def valid_source_file(node, value, kw=None): # Fix Me
    """ checks to make sure uploaded file is a valid zip """
    # I cannot find kw anywhere and I need the file object that value returns
    # List of files and folders that the zip should contain
    req_file_folder = kw.get("req_file_folder")
    try:
        z = zipfile.ZipFile(value['fp'])
        count = 0
        namelist = z.namelist()
        # Loop through files in required files and folders.
        for item in req_file_folder:
            # Make sure they are in the zip
            if item in namelist:
                count += 1
        # If they are not all there, then...
        if not count == len(req_file_folder):
            # Make a list of files and folders for the Invalid exception
            filelist = ""
            for item in req_file_folder:
                filelist += "%s, " % item
            filelist = filelist[:-2]
            raise Invalid(node,
                'The zip must have the following files: %s' % filelist)
    except zipfile.BadZipfile:
        raise Invalid(node, 'The uploaded file is not a zip.')

Its passing through the file object but I just see no way of getting
the kw / bind arguments.

Sorry if its a little ugly, I plan on cleaning up later :)

-- 
Thanks, Richie Ward

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to