':param column_names: an ordered list of strings that will be used as the keys
for each column in the returned dictionaries.
The number of key, value pairs each returned dictionary has will
be as short as the number of column names provided.
:type column_names:'

def __init__(self, source, column_names=None, **kwargs):

    super(DictDataProvider, self).__init__(source, **kwargs)
    self.column_names = (column_names or [])
