def post_address_subcommand(search_terms, vcard_list, parsable):
    """Print a contact table. with all postal / mailing addresses

    :param search_terms: used as search term to filter the contacts before
        printing
    :type search_terms: str
    :param vcard_list: the vcards to search for matching entries which should
        be printed
    :type vcard_list: list of carddav_object.CarddavObject
    :param parsable: machine readable output: columns devided by tabulator (\t)
    :type parsable: bool
    :returns: None
    :rtype: None

    """
    all_post_address_list = []
    matching_post_address_list = []
    for vcard in vcard_list:
        # vcard name
        if config.display_by_name() == "first_name":
            name = vcard.get_first_name_last_name()
        else:
            name = vcard.get_last_name_first_name()
        # create post address line list
        post_address_line_list = []
        if parsable:
            for type, post_address_list in sorted(vcard.get_post_addresses().items(),
                                           key=lambda k: k[0].lower()):
                for post_address in post_address_list:
                    post_address_line_list.append(
                            "\t".join([str(post_address), name, type]))
        else:
            for type, post_address_list in sorted(vcard.get_formatted_post_addresses().items(),
                                           key=lambda k: k[0].lower()):
                for post_address in sorted(post_address_list):
                    post_address_line_list.append(
                            "\t".join([name, type, post_address]))
        # add to matching and all post address lists
        for post_address_line in post_address_line_list:
            if re.search(search_terms,
                         "%s\n%s" % (post_address_line, post_address_line),
                         re.IGNORECASE | re.DOTALL):
                matching_post_address_list.append(post_address_line)
            # collect all post addresses in a different list as fallback
            all_post_address_list.append(post_address_line)
    if matching_post_address_list:
        if parsable:
            print('\n'.join(matching_post_address_list))
        else:
            list_post_addresses(matching_post_address_list)
    elif all_post_address_list:
        if parsable:
            print('\n'.join(all_post_address_list))
        else:
            list_post_addresses(all_post_address_list)
    else:
        if not parsable:
            print("Found no post adresses")
        sys.exit(1)
def post_address_subcommand(search_terms, vcard_list, parsable):
    """Print a contact table. with all postal / mailing addresses

    :param search_terms: used as search term to filter the contacts before
        printing
    :type search_terms: str
    :param vcard_list: the vcards to search for matching entries which should
        be printed
    :type vcard_list: list of carddav_object.CarddavObject
    :param parsable: machine readable output: columns devided by tabulator (\t)
    :type parsable: bool
    :returns: None
    :rtype: None

    """
    all_post_address_list = []
    matching_post_address_list = []
    for vcard in vcard_list:
        # vcard name
        if config.display_by_name() == "first_name":
            name = vcard.get_first_name_last_name()
        else:
            name = vcard.get_last_name_first_name()
        # create post address line list
        post_address_line_list = []
        if parsable:
            for type, post_address_list in sorted(vcard.get_post_addresses().items(),
                                           key=lambda k: k[0].lower()):
                for post_address in post_address_list:
                    post_address_line_list.append(
                            "\t".join([str(post_address), name, type]))
        else:
            for type, post_address_list in sorted(vcard.get_formatted_post_addresses().items(),
                                           key=lambda k: k[0].lower()):
                for post_address in sorted(post_address_list):
                    post_address_line_list.append(
                            "\t".join([name, type, post_address]))
        # add to matching and all post address lists
        for post_address_line in post_address_line_list:
            if re.search(search_terms,
                         "%s\n%s" % (post_address_line, post_address_line),
                         re.IGNORECASE | re.DOTALL):
                matching_post_address_list.append(post_address_line)
            # collect all post addresses in a different list as fallback
            all_post_address_list.append(post_address_line)
    if matching_post_address_list:
        if parsable:
            print('\n'.join(matching_post_address_list))
        else:
            list_post_addresses(matching_post_address_list)
    elif all_post_address_list:
        if parsable:
            print('\n'.join(all_post_address_list))
        else:
            list_post_addresses(all_post_address_list)
    else:
        if not parsable:
            print("Found no post adresses")
        sys.exit(1)
def post_address_subcommand ( search_terms , vcard_list , parsable ) : all_post_address_list = [ ] matching_post_address_list = [ ] for vcard in vcard_list : # vcard name if config . display_by_name ( ) == "first_name" : name = vcard . get_first_name_last_name ( ) else : name = vcard . get_last_name_first_name ( ) # create post address line list post_address_line_list = [ ] if parsable : for type , post_address_list in sorted ( vcard . get_post_addresses ( ) . items ( ) , key = lambda k : k [ 0 ] . lower ( ) ) : for post_address in post_address_list : post_address_line_list . append ( "\t" . join ( [ str ( post_address ) , name , type ] ) ) else : for type , post_address_list in sorted ( vcard . get_formatted_post_addresses ( ) . items ( ) , key = lambda k : k [ 0 ] . lower ( ) ) : for post_address in sorted ( post_address_list ) : post_address_line_list . append ( "\t" . join ( [ name , type , post_address ] ) ) # add to matching and all post address lists for post_address_line in post_address_line_list : if re . search ( search_terms , "%s\n%s" % ( post_address_line , post_address_line ) , re . IGNORECASE | re . DOTALL ) : matching_post_address_list . append ( post_address_line ) # collect all post addresses in a different list as fallback all_post_address_list . append ( post_address_line ) if matching_post_address_list : if parsable : print ( '\n' . join ( matching_post_address_list ) ) else : list_post_addresses ( matching_post_address_list ) elif all_post_address_list : if parsable : print ( '\n' . join ( all_post_address_list ) ) else : list_post_addresses ( all_post_address_list ) else : if not parsable : print ( "Found no post adresses" ) sys . exit ( 1 )
Print a contact table. with all postal / mailing addresses

    :param search_terms: used as search term to filter the contacts before
        printing
    :type search_terms: str
    :param vcard_list: the vcards to search for matching entries which should
        be printed
    :type vcard_list: list of carddav_object.CarddavObject
    :param parsable: machine readable output: columns devided by tabulator (\t)
    :type parsable: bool
    :returns: None
    :rtype: None
Print a contact table . with all postal / mailing addresses