[docs]classRestructuredTextFormatter(BaseStringFormatter):""" Format a requirements analyze to a RestructuredText report. """
[docs]defbuild_analyzed_table(self,items):""" Build the information table for properly analyzed requirements. Arguments: items (list): List of requirement dict as returned from Analyzer. All given items should have a status "analyzed" else it would lead to unexpected results or even errors. Returns: string: An ASCII table built from given items. """rows=[[item["key"],item["name"],item["lateness"],item["resolved_version"],item["latest_release"],]foriteminsuper().build_analyzed_table(items)]head="Analyzed"+"\n"+("*"*len("Analyzed"))+"\n"returnhead+str(tabulate(rows,tablefmt="grid",headers=["#","Name","Lateness","Required","Latest release",],colalign=("left","left","center","right","right"),))
[docs]defbuild_errors_table(self,items):""" Build the information table for failed requirements analyze. Arguments: items (list): List of requirement dict as returned from Analyzer. Given items could have any status despite not very useful for properly analyzed items. Returns: string: An ASCII table built from given items. """rows=[[item["key"],item["source"],item["status"],item["resume"],]foriteminsuper().build_errors_table(items)]ifnotrows:return""head="\nFailures"+"\n"+("*"*len("Failures"))+"\n"returnhead+str(tabulate(rows,tablefmt="grid",headers=["#","Source","Status","Resume",],colalign=("left","left","center","left"),))