I'm trying to build a custom type [1] to manage the bcrypt hashes [2]. --------------- from bcrypt_wrap import password from sqlalchemy import types
class Bcrypt(types.TypeDecorator): """Stores a bcrypt hash of a password.""" impl = types.String #(60) hasher = password.Password() def process_bind_param(self, value, dialect): return hasher.create(value) --------------- And I've any doubts: 1) Since that the hash length is always 60, is there that use the next? impl = types.String(60) 2) The bcryptWrap API [3] (line 53) lets call to 'create' with arguments 'cost' and 'admin' (boolean). Then, a) I would that the cost could be passed from the column definition, i.e. password = sqlalchemy.Column(types.Bcrypt, cost=12) or password = sqlalchemy.Column(types.Bcrypt(cost=12)) b) This would be more hard, but I would to pass the 'admin' argument when an object is created u = model.User() u.login = u'foo' u.password = u'bar' u.admin = True And sou could be call: return hasher.create(value, admin=True) [1] http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/types.html#custom-types [2] http://pypi.python.org/pypi/bcryptWrap/ [3] http://www.bitbucket.org/ares/bcryptwrap/src/tip/lib/bcrypt_wrap/password.py --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---