We tend to avoid multiple return statements as a coding style. Personally, I'd also have gone for the hasattr() rather that isinstance(). Not much in it though.

```python
if hasattr(c, 'data'):
    data = c.data
elif hasattr(c, 'points'):
    data = _fixup_dates(c, c.points)
else:
    raise TypeError('...')

return data
```