On 05/08/07, Drew Smathers <[EMAIL PROTECTED]> wrote:
> For Bool-type columns in a class it looks as if this directly maps to
> the equivalent boolean type (surprise) for the underlying database.
> My problem is with tables where the boolean type is not used and
> instead a single character (either '0'/'1', or 'Y'/'N') is used used
> for this. It seems like the only way to achieve this now with storm
> is to write a custom property/variable like so:
>
> YesNoBoolVariable(Variable):
> @staticmethod
> def _parse_set(value, from_db):
> ...
> return ('N', 'Y')[bool(value)]
>
> YesNoBool(SimpleProperty):
> variable_class = YesNoBoolVariable
>
> class Foo:
> ...
> ready = YesNoBool()
>
> Is the above the only way to do this?
You could probably use the Enum() column type. Something like this:
class Foo:
ready = Enum(map={False: 'N', True: 'Y'})
This should handle getting values from the database as booleans as
well as setting them. You could potentially use a helper function or
class if you have many columns that encode the data like this.
James.
--
storm mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/storm