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
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
def __init__(self, field, converter): from dedupe.get import getter self.field = field self.getter = getter(field) self.converter = converter