Source code for almir.lib.utils

import os
import time
from docutils.core import publish_parts

import pytz
from pyramid.threadlocal import get_current_registry
from pyramid.config import Configurator


[docs]def convert_timezone(datetime): """Converts datetime to timezone aware datetime. Retrieving timezone: - get `timezone` from .ini settings - default to system timezone """ if datetime is None: return None timezone = get_current_registry().settings.get('timezone', None) if not timezone: timezone = time.tzname[0] return pytz.timezone(timezone).localize(datetime)
[docs]def timedelta_to_seconds(td): """""" # http://docs.python.org/library/datetime.html?highlight=total_seconds#datetime.timedelta.total_seconds # to keep python2.6 support return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6) / 10 ** 6
[docs]def render_rst_section(filename): """Finds filename in documentation directory and renders it to html.""" path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'docs', 'source', filename) with open(path) as f: parts = publish_parts(f.read(), writer_name="html", settings_overrides={'initial_header_level': 2, 'doctitle_xform': False}) return parts['html_body']
[docs]def yesno(text): return 'Yes' if text else 'No'
[docs]def nl2br(text): return text.replace('\n', '<br />')
[docs]def get_jinja_macro(macro): """Return actual function from a jinja2 template""" config = Configurator(get_current_registry()) template = config.get_jinja2_environment().get_template('templates/macros.jinja2') return getattr(template.module, macro)

Project Versions

This Page