Does this data_specs argument actually get used anywhere? It looks like you're expecting the base class to implement get_data_specs() as return self.data_specs by default, but I don't actually see such an implementation in the diff. Maybe I'm overlooking it.