@staticmethod
def selector(event, field_spec=None):
    """
        Function to select specific fields of an event using
        a fieldSpec and return a new event with just those fields.

        The fieldSpec currently can be:

        * A single field name
        * An list of field names

        The function returns a new event.

        Parameters
        ----------
        event : Event
            Event to pull from.
        field_spec : str, list, tuple, None, optional
            Column or columns to look up. If you need to retrieve multiple deep
            nested values that ['can.be', 'done.with', 'this.notation'].
            A single deep value with a string.like.this.  If None, the default
            column 'value' will be used.

        Returns
        -------
        Event
            A new event object.
        """
    new_dict = dict()
    if isinstance(field_spec, str):
        new_dict[field_spec] = event.get(field_spec)
    elif isinstance(field_spec, (list, tuple)):
        for i in field_spec:
            if isinstance(i, str):
                new_dict[i] = event.get(i)
    elif field_spec is None:
        new_dict['value'] = event.get()
    else:
        return event
    return event.set_data(new_dict)
