Ejemplo n.º 1
0
def serialize(value):
    if isinstance(value, datetime):
        return value.isoformat()
    if isinstance(value, date):
        return value.isoformat()
    if isinstance(value, time):
        return value.isoformat()
    if isinstance(value, Decimal):
        return text_type(value)
    if isinstance(value, uuid.UUID):
        return text_type(value)
    if hasattr(value, 'serialize'):
        return value.serialize()
    return value
Ejemplo n.º 2
0
def generate_random_string(length=12):
    """Generate a random ascii string of the requested length."""
    msg = hashlib.sha256()
    word = ''
    for _ in range(length):
        word += random.choice(string.ascii_letters)
    msg.update(word.encode('ascii'))
    return text_type(msg.hexdigest()[:length])
Ejemplo n.º 3
0
    def default(self, o):
        # for Enum Type
        if isinstance(o, enum.Enum):
            return o.value

        # for Enum Select Integer
        if isinstance(o, EnumInt):
            return o.key

        if isinstance(o, (datetime, date)):
            return o.isoformat()

        if isinstance(o, Decimal):
            return _number_str(o)

        if isinstance(o, uuid.UUID):
            return text_type(o)

        if isinstance(o, ObjectId):
            return text_type(o)

        return super(JSONEncoder, self).default(o)
Ejemplo n.º 4
0
def activation_email(request, user):
    """Return the data for an 'activate your account' email for the given user.

    :rtype: dict

    """
    link = request.route_url(
        'register_activate',
        code='-'.join(
            [text_type(user.pid),
             user.activation.code]))
    # link = '-'.join(['register.activate', text_type(user.pid), user.activation.code])
    emailtext = _("Please validate your email and activate your account by visiting: {link}")
    body = emailtext.format(link=link)
    return {
        "request": request,
        "subject": _("Please activate your account"),
        "recipients": [user.email],
        "body": body
    }
Ejemplo n.º 5
0
    def _hash_password(self, password):
        if not self.salt:
            self.salt = helper.generate_random_string(24)

        return text_type(CRYPT.encode(password + self.salt))
Ejemplo n.º 6
0
 def __repr__(self):
     return text_type(self.o)
Ejemplo n.º 7
0
 def err_func(context, request):
     if not isinstance(context, Exception):
         context = request.exception or context
     request.response.status = '509 {}'.format(text_type(context))
     # request.response.status_code = 500
     return target(context, request)