Inflectorしたい

今日は時間ないので手抜き。その昔 symfony(sが小文字のバージョンの方だよ)というPHPフレームワークを触ってたときに、「sfInflector」というライブラリが割と好きでよく使ってました。このの記事にあるヤツです。

Pythonでもそういうのやるライブラリあるかなーと探したのがこれ。

ソースを見た限りではRailsのソレに影響を受けているていうかソレな感じ。取り急ぎは、camelizeとunderscoreだけ欲しかったので、簡単な使い方だけをメモとして残す。なんかSpanish対応とかしてるっぽいので、時間があったらもう少しくわしく書くかも。

簡単な使い方

インストールはpipでできます。

pip install Inflector

こんな感じに使う

#-*- coding:utf8 -*-

from inflector import Inflector

print Inflector().camelize('camel_case')   #=> CamelCase
print Inflector().underscore('UnderScore') #=> under_score

やんなとか怒られそうだけど、PHPの時は動的にクラス名を補完してインスタンスを作るとかに使ってた。

#-*- coding:utf8 -*-

from inflector import Inflector

class DrillbitsHaskell(object):
      """ new type drillbits """

      sex = "female"
      job = "high school student"

hoge_code = "drillbits_haskell"

db = globals()[Inflector().camelize(hoge_code)]()

print db     #=> <__main__.DrillbitsHaskell object at 0x10048e050>
print db.sex #=> female
print db.job #=> high school student