コード例 #1
0
ファイル: geo.py プロジェクト: gpoulter/pydedupe
def getter(latfield, lonfield):
    """Build a field getter for (latitude, longitude) coordinates.

    :type latfield, lonfield: :class:`str` or :class:`int` or :class:`function`
    :param latfield, lonfield: how to :func:`sim.getvalue` the fields
    :param record: Record from which to retrieve values.

    >>> from functools import partial
    >>> from collections import namedtuple
    >>> Record = namedtuple("Record", ("FullName", "Lon", "Lat", "Phone"))
    >>> rec = Record("Joe Bloggs", "10.0", "20.0", "555 1234")
    >>> getter = getter("Lat", "Lon")
    >>> getter(rec)
    (20.0, 10.0)
    """
    import dedupe.get as get
    latget = get.getter(latfield)
    longet = get.getter(lonfield)

    def geoget(record):
        """Get (lat,lon) from a record"""
        try:
            lat = float(latget(record))
            lon = float(longet(record))
        except ValueError:
            return None
        return (lat, lon)
    return geoget
コード例 #2
0
ファイル: sim.py プロジェクト: gpoulter/pydedupe
 def __init__(
     self, compare, field1, encode1=None, field2=None, encode2=None):
     from dedupe.get import getter
     self.compare = compare
     self.field1 = getter(field1)
     self.encode1 = encode1 if encode1 else lambda x: x
     self.field2 = getter(field2) if field2 else self.field1
     self.encode2 = encode2 if encode2 else self.encode1
コード例 #3
0
ファイル: sim.py プロジェクト: gpoulter/pydedupe
 def __init__(self, field, converter):
     from dedupe.get import getter
     self.field = field
     self.getter = getter(field)
     self.converter = converter