タグ

ブックマーク / blog.amedama.jp (2)

  • Python: SQLAlchemy + mysqlclient (MySQLdb) でマルチバイト文字を扱う - CUBE SUGAR CONTAINER

    今回は Python の O/R マッパーである SQLAlchemy と MySQL ドライバの mysqlclient を使ってマルチバイト文字を扱うときの注意点について書いてみる。 ただし RDBMS については MySQL ではなく、代わりに MariaDB を使った。 注意点というのを先に書いてしまうと、接続先 URL で charset を指定するのを忘れないようにしましょうというところ。 使った環境は次の通り。 $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) $ uname -r 3.10.0-327.18.2.el7.x86_64 MariaDB をセットアップする まずは下準備として MariaDB をインストールして設定する。 CentOS 7 では標準の RDBMSMySQL ではなく

    Python: SQLAlchemy + mysqlclient (MySQLdb) でマルチバイト文字を扱う - CUBE SUGAR CONTAINER
  • Python: fasteners の便利な排他ロックを試す - CUBE SUGAR CONTAINER

    Python には標準ライブラリとして、いくつか排他ロックの実装が用意されている。 例えば threading モジュールの Lock オブジェクトなどは、その代表といえる。 しかしながら、標準では用意されていないものもある。 例えばプロセス間の排他ロックやリードライトロックは標準ライブラリに用意されていない。 そのため、例えばもし自前でプロセス間の排他ロックを用意するとしたら fcntl モジュールなどを使って書くことになる。 とはいえ、排他ロックの実装というのはバグを作り込みやすい。 そもそも、マルチスレッドやマルチプロセスで競合しないプログラムを作ること自体が深く注意を払わなければできない作業だ。 その上、排他ロックの機構まで自前で用意するとしたら、二重でリスクを負うことになる。 fasteners 前置きが長くなったけど fasteners は前述したような排他ロックの機構を提供し

    Python: fasteners の便利な排他ロックを試す - CUBE SUGAR CONTAINER
  • 1