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.