>> When using a PickleCol with default={ } the behaviour is not exactly >> what I would expect: >> >> ###################################################################### >> from sqlobject import * >> sqlhub.processConnection = connectionForURI( 'sqlite:///:memory:', >> debug=True ) >> class t( SQLObject ): >> x = PickleCol( default={} ) >> t.createTable( ) >> row = t( ) >> print row.x # this will print None >> ###################################################################### >> >> Having a non-empty dict works as expected though. I had a feeling it >> was related to mutable keyword argument values and the associated >> problems, but the same problem is there with an empty tuple which is >> certainly unmutable. >> >> Is this a bug or a feature? > > Seems like a bug related to boolean testing of objects. I.e., somewhere > there is a code that does > > if object:... > > instead of > > if object is None:... > > But a quick glance at PickleCol code didn't reveal a clue.
I thought the same first, but StringCol( default='' ) works as expected, although the empty string also evaluates to False as boolean. And I'd think this part of the code (testing for default) is the same for every col type. So I'm sufficiently confused, I'll keep looking at the code. Cheers, Daniel -- Psss, psss, put it down! - http://www.cafepress.com/putitdown ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss