Eh, I'm not a big fan of not closing file descriptors; even if it doesn't normally pose a problem on desktop machines with local disk, it can do weird things with things like NFS. It's super easy with the `with` statement now, I'd really recommend

```python
def _md5_hash(src_path):
    with open(src_path) as f:
        return hashlib.md5(f.read()).hexdigest()
```