2014年08月06日

boto の Python3 対応

boto3 はいつ来るのだろう と4月に書いたが、その時はこういう展開になるとは思っていなかった。 boto 2.32.0 で Python3 対応が発表された。

This release includes backward-compatible support for Python 3.3 and 3.4, support for IPv6, Amazon VPC connection peering, Amazon SNS message attributes, new regions for Amazon Kinesis, and several fixes.

boto v2.32.0
ラベル:AWS
posted by mft at 11:08| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2014年05月10日

datetime.replace の罠

datetime にタイムゾーンを指定する方法に、replace という関数がある。

単にタイムゾーンオブジェクト tz を datetime オブジェクト dt に追加したいだけで、日付や時刻データメンバへの調整を行わないのなら、 dt.replace(tzinfo=tz) を使ってください。

8.1. datetime − 基本的な日付型および時間型

実際にやってみる。

>>> import datetime, pytz
>>> dt = datetime.datetime(2014, 5, 10)
>>> jst = pytz.timezone('Asia/Tokyo')
>>> print dt.replace(tzinfo=jst)
2014-05-10 00:00:00+09:00

普通に使える。

ところが、一歩日本を出ると変なことが起きる(ことがある)。 たとえば中国だ。

>>> cst = pytz.timezone('Asia/Shanghai')
>>> print dt.replace(tzinfo=cst)
2014-05-10 00:00:00+08:06

8時間と6分ずれたタイムゾーン? そんなわけはない。 わけはないのだが、replace を使うとこうなってしまうのだ。

解決策はタイムゾーン側から変換させること。

>>> print cst.localize(dt)
2014-05-10 00:00:00+08:00
>>> print jst.localize(dt)
2014-05-10 00:00:00+09:00

ちなみに6分ずれた上海のデータの出処が気になる人は IANA Time Zone Database のデータ tzdata2014b.tar.gz を展開して asia というファイルを読むと良い(随時更新されるので2014bの部分は適当に読み換えること)。 簡単に言うと古い、グリニッジに合わせる前の地方標準時が持っていた、ずれのデータだ。

ラベル:Python
posted by mft at 00:00| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2014年04月16日

boto3 はいつ来るのだろう

Python から AWS のサービスを使おうと思ったら boto を使うわけだが、その boto のページ を開くと、 「AWS SDK for Python(Boto)– バージョン 3 開発者プレビュー」という文字がすぐに目に入る。

気になるのは、いつごろ切り替えることになるか、ということだが。

コードは GitHub に置かれている。 その issue の一つに Estimated release date? というものがある。
ユーザー「ロードマップとかいつ頃リリースになりそうかとかの情報は?」
オーナー「申し訳ないが公式のリリースはまだだ。完了しつつあるいくつかの変更のせいでプロジェクトが止まっていたからね」
というような(適当な訳)会話があったのが2ヶ月前のことらしい。 まあつまり、まだ当分先という雰囲気なのではなかろうか。

Python 2.7 の寿命が延長されたことでもあり、吉川さんの記事にもあるように Amazon Linux ではまだ 2.6 がデフォルトだったり、まだまだ Python 3 をみんなが使うような状況にはならないということなのかもしれない。

ラベル:AWS
posted by mft at 00:16| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。