Esempio n. 1
0
 def test_deep_update_dict(self):
     default = {'one': 1, 'two': 2, 'three': {'four': 4, 'five': 5}}
     utils.deep_update_dict(default, {'one': 'a', 'three': {'four': 'b'}})
     assert_equal(default['one'], 'a')
     assert_equal(default['two'], 2)
     assert_equal(type(default['three']), dict)
     assert_equal(default['three']['four'], 'b')
     assert_equal(default['three']['five'], 5)
Esempio n. 2
0
def match(fullname1, fullname2, strictness="default", options=None):
    """
    Takes two names and returns true if they describe the same person.

    :param string fullname1: first human name
    :param string fullname2: second human name
    :param string strictness: strictness settings to use
    :param dict options: custom strictness settings updates
    :return bool: the names match
    """

    if options is not None:
        settings = deepcopy(SETTINGS[strictness])
        deep_update_dict(settings, options)
    else:
        settings = SETTINGS[strictness]

    n1 = Name(fullname1)
    n2 = Name(fullname2)

    return n1.deep_compare(n2, settings)
Esempio n. 3
0
def match(fullname1, fullname2, strictness='default', options=None):
    """
    Takes two names and returns true if they describe the same person.

    :param string fullname1: first human name
    :param string fullname2: second human name
    :param string strictness: strictness settings to use
    :param dict options: custom strictness settings updates
    :return bool: the names match
    """

    if options is not None:
        settings = deepcopy(SETTINGS[strictness])
        deep_update_dict(settings, options)
    else:
        settings = SETTINGS[strictness]

    name1 = Name(fullname1)
    name2 = Name(fullname2)

    return name1.deep_compare(name2, settings)
Esempio n. 4
0
def ratio(fullname1, fullname2, strictness="default", options=None):
    """
    Takes two names and returns true if they describe the same person.
    Uses difflib's sequence matching on a per-field basis for names

    :param string fullname1: first human name
    :param string fullname2: second human name
    :param string strictness: strictness settings to use
    :param dict options: custom strictness settings updates
    :return int: sequence ratio match (out of 100)
    """

    if options is not None:
        settings = deepcopy(SETTINGS[strictness])
        deep_update_dict(settings, options)
    else:
        settings = SETTINGS[strictness]

    n1 = Name(fullname1)
    n2 = Name(fullname2)

    return n1.ratio_deep_compare(n2, settings)
Esempio n. 5
0
def ratio(fullname1, fullname2, strictness='default', options=None):
    """
    Takes two names and returns true if they describe the same person.
    Uses difflib's sequence matching on a per-field basis for names

    :param string fullname1: first human name
    :param string fullname2: second human name
    :param string strictness: strictness settings to use
    :param dict options: custom strictness settings updates
    :return int: sequence ratio match (out of 100)
    """

    if options is not None:
        settings = deepcopy(SETTINGS[strictness])
        deep_update_dict(settings, options)
    else:
        settings = SETTINGS[strictness]

    name1 = Name(fullname1)
    name2 = Name(fullname2)

    return name1.ratio_deep_compare(name2, settings)