Пример #1
0
def help():
    code_examples = {}
    from . import example
    from types import FunctionType
    code_examples = {
        name: highlight(inspect.getsource(func), PythonLexer(),
                        HtmlFormatter())
        for (name, func) in example.__dict__.items()
        if isinstance(func, FunctionType)
    }
    sems = sanitized_table('seminars')
    talks = sanitized_table('talks')
    ss = sorted(sems.search_cols)
    ts = sorted(talks.search_cols)
    so = sorted(col for col in db.seminars.search_cols if col not in ss)
    to = sorted(col for col in db.talks.search_cols if col not in ts)
    cols = {
        "series_sanitized": ss,
        "talks_sanitized": ts,
        "series_other": so,
        "talks_other": to
    }
    types = dict(sems.col_type)
    types.update(talks.col_type)
    return render_template(
        "api_help.html",
        title="API",
        section="Info",
        code_examples=code_examples,
        cols=cols,
        types=types,
    )
Пример #2
0
def seminars_search(*args, **kwds):
    """
    Replacement for db.seminars.search to account for versioning, return WebSeminar objects.

    Doesn't support split_ors or raw.  Always computes count.
    """
    objects = kwds.pop("objects", True)
    col_projection = (len(args) > 1 and isinstance(args[1], str)
                      or "projection" in kwds
                      and isinstance(kwds["projection"], str))
    if "organizer_dict" in kwds:
        organizer_dict = kwds.pop("organizer_dict")
    elif objects and not col_projection:
        organizer_dict = all_organizers()
    else:
        organizer_dict = {}  # unused in this case
    sanitized = kwds.pop("sanitized", False)
    if sanitized:
        table = sanitized_table("seminars")
    else:
        table = db.seminars
    more = kwds.get("more", False)
    return search_distinct(
        table, _selecter, _counter,
        _iterator(organizer_dict, objects=objects, more=more), *args, **kwds)
Пример #3
0
def talks_lucky(*args, **kwds):
    """
    Replacement for db.talks.lucky to account for versioning, return a WebTalk object or None.
    """
    seminar_dict = kwds.pop("seminar_dict", {})
    objects = kwds.pop("objects", True)
    sanitized = kwds.pop("sanitized", False)
    if sanitized:
        table = sanitized_table("talks")
    else:
        table = db.talks
    return lucky_distinct(table, _selecter, _construct(seminar_dict, objects=objects), *args, **kwds)
Пример #4
0
def seminars_lucky(*args, **kwds):
    """
    Replacement for db.seminars.lucky to account for versioning, return a WebSeminar object or None.
    """
    organizer_dict = kwds.pop("organizer_dict", {})
    institution_dict = kwds.pop("institution_dict", {})
    objects = kwds.pop("objects", True)
    sanitized = kwds.pop("sanitized", False)
    if sanitized:
        table = sanitized_table("seminars")
    else:
        table = db.seminars
    return lucky_distinct(table, _selecter, _construct(organizer_dict, institution_dict, objects=objects), *args, **kwds)
Пример #5
0
def talks_search(*args, **kwds):
    """
    Replacement for db.talks.search to account for versioning, return WebTalk objects.

    Doesn't support split_ors or raw.  Always computes count.
    """
    seminar_dict = kwds.pop("seminar_dict", {})
    objects = kwds.pop("objects", True)
    sanitized = kwds.pop("sanitized", False)
    if sanitized:
        table = sanitized_table("talks")
    else:
        table = db.talks
    more = kwds.get("more", False)
    return search_distinct(table, _selecter, _counter, _iterator(seminar_dict, objects=objects, more=more), *args, **kwds)