<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def map(self, map_fn, desc=None):
 """ Return a copy of this query, with the values mapped through `map_fn`. Args: map_fn (callable):
 A callable that takes a single argument and returns a new value. Keyword Args: desc (str):
 A description of the mapping transform, for use in log message. Defaults to the name of the map function. Returns: Query """

        if desc is None:
            desc = getattr(map_fn, '__name__', '')
        desc = u'map({})'.format(desc)

        return self.transform(lambda xs: (map_fn(x) for x in xs), desc=desc)