def help_list_filters(): import textwrap; from bibolamazi.core.bibfilter import factory def fmt_filter_helpline(f, fp): nlindentstr = "\n%16s"%(""); # newline, followed by 16 whitespaces return ( " %-13s " %(f) + nlindentstr.join(textwrap.wrap(factory.get_filter_class(f, filterpackage=fp) .getHelpDescription(), (80-16) # 80 line width, -16 indent chars )) ) full_filter_list = [] for (fp,fplist) in factory.detect_filter_package_listings().iteritems(): filter_list = [ fmt_filter_helpline(f, fp) for f in fplist ] full_filter_list.append( FILTER_HELP_INNER_PACKAGE_LIST % {'filterpackage': fp, 'filterlistcontents': "\n".join(filter_list)} ) return FILTERS_HELP % {'full_filter_list': "\n\n".join(full_filter_list)};
def get_filter_list(): filter_pkg_list = filters_factory.detect_filter_package_listings() filter_list = [] for (fpkg, flist) in filter_pkg_list.items(): if fpkg == 'bibolamazi.filters': # built-in, ignore the filter package prefix. filter_list += flist else: filter_list += [ fpkg+':'+f for f in flist ] return filter_list
def get_filter_list(filterpath=filters_factory.filterpath): logger.debug("filterinstanceeditor.get_filter_list()") filter_pkg_list = filters_factory.detect_filter_package_listings(filterpath=filterpath) logger.debug("filterinstanceeditor.get_filter_list(): filter_pkg_list=%r", filter_pkg_list) filter_list = [] for (fpkg, flist) in filter_pkg_list.items(): if fpkg == 'bibolamazi.filters': # built-in, ignore the filter package prefix. filter_list += [ finfo.filtername for finfo in flist] else: filter_list += [ fpkg+':'+finfo.filtername for finfo in flist ] logger.debug("filterinstanceeditor.get_filter_list(): filter_list=%r", filter_list) return filter_list
def _get_help_page_filters(pathitems, kwargs): if len(pathitems) != 0: raise HelpPageError("Invalid help path: /{}".format('/'.join(kwargs['basepathitems']+pathitems))) canonpath = '/filters' _get_help_canonpath_check(canonpath, kwargs) # first, make an inventory of filterpackages, filters and corresponding # description; store in a big list/dict fdata = [] from bibolamazi.core.bibfilter import factory as filters_factory filterpath = filters_factory.filterpath for (fp,fplist) in iteritems(filters_factory.detect_filter_package_listings(filterpath=filterpath)): fdata.append({ 'fp': fp, 'filterinfolist': sorted(fplist, key=lambda x: x.filtername) }) def gen_txt(d=fdata): def fmt_filter_helpline(finfo, fpkg): nlindentstr = "\n%16s"%("") # newline, followed by 16 whitespaces return ( " %-12s " %(finfo.filtername) + nlindentstr.join(textwrap.wrap(finfo.fclass.getHelpDescription(), (80-16) # 80 line width, -16 indent chars )) ) full_filter_list = [] for fd in d: fp = fd['fp'] finfolist = fd['filterinfolist'] filter_list = [ fmt_filter_helpline(f, fp) for f in finfolist ] full_filter_list.append( TMPL_FILTER_HELP_INNER_PACKAGE_LIST.format( filterpackage=fp, filterlistcontents="\n".join(filter_list) ) ) return TMPL_FILTERS_HELP.format(full_filter_list="\n\n".join(full_filter_list)) def gen_htmlfragment(d=fdata, kwargs=dict(kwargs)): html = "<h1>List of filters</h1>\n\n" for fd in d: fp = fd['fp'] finfolist = fd['filterinfolist'] html += "<h2>Filter package <b>{filterpackage}</b></h2>\n\n".format(filterpackage=fp) html += "<table>" for finfo in finfolist: html += ( "<tr><th><a href=\"help:/filter/{filtname}\">{filtname}</a></th></tr>"+ "<tr><td class=\"indent\" width=\""+str(kwargs.get('html_table_width_px', 550)) +"\">{filtdesc}</td></tr>\n" ).format( filtname=finfo.filtername, filtdesc=finfo.fclass.getHelpDescription() ) html += "</table>" html += ("<p style=\"margin-top: 2em\"><em>Filter packages are listed in the order " + "they are searched.</em></p>") return html return HelpTopicPage( {'txt': gen_txt, 'htmlfragment': gen_htmlfragment}, title="Filter List", canonpath=canonpath )