hi,

not exactly: i recognized you wanted it to be like the JS implementation: 
https://github.com/hueniverse/hawk/blob/master/lib/server.js#L248

You can see there, that the artifacts['hash'] will be undefined OR the options['hash'] value. In You implementation it will be the original_artifacts['hash'] OR the options['hash'].

Thats not correct. The closest python way of achieving this JS behavior is get('hash', None) - which wont raise any key error (im sure u didn't recognize the ", None"  )