from typing import List
from typing import Tuple


def dict_to_paired_list( in_dict: dict, sort: bool = False, reverse: bool = False ) -> List[ Tuple ]:
    """
    Simple method to take a dictionary of { key : value } and return a list of tuples of ( key, value ).
    
    If sort = True is passed, the list will attempt to be sorted by ascending value.  If reverse = True, the list will 
    be sorted by descending value.
    
    :param in_dict:
    :param sort: If True, will sort by the value of the dictionary
    :param reverse: Used in conjunction with sort, if True, sorts the value in descending order.
    :type in_dict: dict
    :type sort: bool
    :type reverse: bool
    :return: List of ( key, value ) tuple pairs
    :rtype: list
    """
    outlist = [ (k, v) for k, v in in_dict.items() ]
    if sort:
        outlist.sort( key=lambda x: x[ 1 ], reverse=reverse )
    return outlist