Google App EngineではてなOAuthするときのPUT時のバグ

ブログに書いているように、最近はてなダイアリーの記事を下書きしておき、時間が来たら自動で投稿されるウェブサービスGoogle App Engine上で作成しているのだが、その際のOAuthの認証に次のURLのライブラリが役に立った。

しかし、このライブラリmethodがGETやPOSTの時はうまくいくようなのだが、PUTやDELETEを使用した場合認証エラーとでて使用できない。ライブラリ中のコードを見てみると162行目あたりの次の場所が原因だった。

# Join the entire message together per the OAuth specification.
message = "&".join(["GET" if method == urlfetch.GET else "POST",
                   encode(url), encode(params_str)])

この部分でGET以外の場合はすべてPOSTと断定しているため、エラーが起こった模様。実際このelseのあとを"PUT"に修正してみると今度は正常に成功した。
このコードをきちんと修正するためには、今のようなコードではなくcase文などを使用してGET/POST/PUT/DELETEなどmethodすべての場合に対して対処する必要があると思うのだが、正直なところこのあとに出てくるhmac関数が何をするのか、などさっぱりわからないので、そういった安易な修正はしづらい。できればこのはてな対応版のライブラリを作成した上記のURLの人に連絡したいのだが、メールアドレスはおろかコメント欄すらないためどうしようもない、といった感じ。そもそも、上記のはてな対応版の元となったライブラリもこの部分のソースは同じなので、派生前のコードからこのエラーは内包されている模様。
おそらく一番簡単なのはこのはてな対応版とtrunkのコードを勘案して修正したライブラリをgithubで公開することだと思うのだが、そうやっていくつもブランチを作っていく方法は正直避けたい。できればtrunkの製作者に報告して修正してもらうのが一番いいと思う。
というわけで、現在どうするか考え中。たぶんtrunkの製作者にメールして反応がなかったら、自分でブランチを切って公開することになるだろう。