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, )
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)
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)
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)
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)