filename option seems not at all used in this code. Why we need to raise an exception here ?
filename
Why "backward" compatibility ? I think having some compatibility with hexagonit.recipe.download is anyway welcome.
I believe it shoud be :
options['location'] = self.destination