Source code for bag.web

"""The bag.web module contains code that helps web development generically.

Then there's a :py:mod:`bag.web.pyramid` module that integrates the
generic code into the Pyramid web framework (as can be done with other
frameworks).
"""

import hashlib
from urllib.parse import urlencode


[docs]def gravatar_image( email: str, default: str = "mm", size: int = 80, cacheable: bool = True, ) -> str: """Return a Gravatar image URL for this ``email``.""" base = ( "http://www.gravatar.com/avatar/" if cacheable else "https://secure.gravatar.com/avatar/" ) return ( base + hashlib.md5(email.encode("utf8").lower()).hexdigest() + "?" + urlencode({"d": default, "s": str(size)}) )