The indentation goes too deep. Wouldn't it be better something like

```python
if not retain_old:
    self.new_shelf = {}
    self.shelf = {}
    return
# All the try-ed logic here.
```