class documentation

class CombineReturnsAndExceptions(visitors.Visitor): (source)

View In Hierarchy

Group function signatures that only differ in exceptions or return values. For example, this transforms def f(x: int) -> float: raise OverflowError() def f(x: int) -> int: raise IndexError() to def f(x: int) -> Union[float, int]: raise IndexError() raise OverflowError()

Method VisitFunction Merge signatures of a function.
Method _GroupByArguments Groups signatures by arguments.

Inherited from Visitor:

Method __init__ Undocumented
Method Enter Undocumented
Method Leave Undocumented
Method Visit Undocumented
Class Variable old_node Undocumented
Class Variable unchecked_node_names Undocumented
Class Variable visits_all_node_types Undocumented
Instance Variable enter_functions Undocumented
Instance Variable leave_functions Undocumented
Instance Variable visit_class_names Undocumented
Instance Variable visit_functions Undocumented
Class Variable _visitor_functions_cache Undocumented
def VisitFunction(self, f): (source)

Merge signatures of a function. This groups signatures by arguments and then for each group creates a single signature that joins the return values / exceptions using "or". Arguments: f: A pytd.Function instance Returns: Function with simplified / combined signatures.

def _GroupByArguments(self, signatures): (source)

Groups signatures by arguments. Arguments: signatures: A list of function signatures (Signature instances). Returns: A dictionary mapping signatures (without return and exceptions) to a tuple of return values and exceptions.