I changed ID to 1, but still  got the same exception. I think the exception is 
raised because of the spcecial key ( not value)"workunitid". Please read the 
following code in file py/Boinc/db_base, and we can see that the exception is 
caused by the non-zero length of 'indict' after some 'del' operations on the 
dictionary.

376     def dict2database_fields(self, indict):
377         indict = indict.copy()
378         dict = {}
379         if 'id' in indict:
380             dict['id'] = indict['id']
381             del indict['id']
382         for key in self._valid_query_keys():
383             if key.endswith('id'):
384                 xkey = key[:-2]
385                 if xkey in indict:
386                     obj = indict[xkey]
387                     dict[key] = obj and obj.id
388                     del indict[xkey]
389             else:
390                 if key in indict:
391                     dict[key] = indict[key]
392                     del indict[key]
393         if len(indict):
394             raise ValueError('Invalid key(s): %s'%indict)
395         return dict

Cheers,
Jie


At 2012-08-06 09:14:51,"David Anderson" <[email protected]> wrote:
>0 is not a valid database ID.
>There will never be a workunit with ID=0.
>-- David
>
>On 05-Aug-2012 3:53 PM, Jai wrote:
>>   hi,
>>
>> I am using BOINC python API in the server to do some databse operations, but 
>> got an exception. I think it is a bug, I ran python like the following:
>>
>>      >>> sys.path.insert(0,'/home/boinc/projects/cppmce/py/Boinc')
>>      >>> import database
>>      >>> database.Results.find(workunitid=0)
>> Traceback (most recent call last):
>>    File "<stdin>", line 1, in <module>
>>    File "/home/boinc/projects/cppmce/py/Boinc/db_base.py", line 294, in find
>>      kwargs = self.dict2database_fields(kwargs)
>>    File "/home/boinc/projects/cppmce/py/Boinc/db_base.py", line 394, in 
>> dict2database_fields
>>      raise ValueError('Invalid key(s): %s'%indict)
>> ValueError: Invalid key(s): {'workunitid': 0}
>>
>> Cheers,
>>
>> Jie
>>
>>
>>
>> _______________________________________________
>> boinc_dev mailing list
>> [email protected]
>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>> To unsubscribe, visit the above URL and
>> (near bottom of page) enter your email address.
>>
>_______________________________________________
>boinc_dev mailing list
>[email protected]
>http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>To unsubscribe, visit the above URL and
>(near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to