Python
ツール
クリスマス
pythonDay 24

Pythonと過ごすクリスマス・イブ

More than 1 year has passed since last update.

Pythonと過ごすクリスマス・イブ

クリスマス・イブを楽しく過ごすためのPythonプロジェクトを紹介します。
素晴らしいPythonプロジェクトであればAwesome-Pythonにリストがありますが、そういうところには載らない(orギリギリ載ってるかも?)ような珠玉の逸品揃いです。
役に立つものから役に立たないもの、冗談のようでいて実は便利なものまで4品を列挙しますので、どうかお楽しみください。
(***ご利用は自己責任でお願いします***)

Eve

トップバッターはEveです。
Eveは人間向けをコンセプトにしたシンプルなREST APIフレームワークです。

インストール方法はpip install Eveだけです。
サンプルはeve demoとして用意されており、git clone https://github.com/pyeve/eve-demo.gitで入手可能です。

これでREST APIを作ることができます。
基本的にdict(辞書型)で階層構造にしてエンドポイントとデータ構造を表現します。
http://python-eve.org/rest_api_for_humans.html

https://github.com/pyeve/eve
http://python-eve.org/

fuzzywuzzy

続いてfuzzywuzzyです。
fuzzywuzzyはファジーな文字列マッチングツールで、比較対象の文字列がどのくらい似ているかをレーベンシュタイン距離によって計算してくれます。

インストールは以下です。
fuzzywuzzyとpython-Levenshteinをインストールします。

pip install fuzzywuzzy
pip install python-Levenshtein

使い方は以下のとおりです。

from fuzzywuzzy import fuzz
from fuzzywuzzy import process
fuzz.ratio("this is a test", "this is a test!")
# 97

fuzz.partial_ratio("this is a test", "this is a test!")
# 100

fuzzywuzzyの便利なところは、複数候補にも同時に評価することができる点です。
さらには上位2位まで選択するというような使い方もできます。

choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
process.extract("new york jets", choices, limit=2)
# [('New York Jets', 100), ('New York Giants', 79)]

日本語にも対応しています。
マルチバイト対応もされているようです。

fuzz.ratio("サンタさんは良い子の家にきます。", "サンタさんは良い子の家にきます")
# 97 #読点の有無

fuzz.ratio("サンタさんは良い子の家にきます", "サンタさんは悪い子の家にきます")
# 93 #良いvs悪い

fuzz.ratio("サンタさんは良い子の家にきます", "サタンさんは悪い子の家にきます")
# 87 #サンタvsサタン、良いvs悪い

https://github.com/seatgeek/fuzzywuzzy
http://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/

faker

3番手はfakerです。
fakerは嘘データを生成してくれるツールです。
データ登録やテストのためのモック・データがほしい!というときに最適です。

インストールはpip install Fakerです。
2秒くらいで済みます。

以下のような使い方をします。

from faker import Faker
fake = Faker()
print(fake.name())
# Mark Merritt

print(fake.address())
# 09646 Jessica Canyon Suite 800
# West Jeremychester, ND 96041-2287

print(fake.profile())
#{'address': 'PSC 3090, Box 7203\nAPO AP 74167', 'blood_group': 'B-', 'website': ['http://garcia.com/', 'http://singh.com/', 'https://www.lopez.com/'], 'username': 'jamesrhonda', 'mail': 'summerfernandez@hotmail.com', 'sex': 'M', 'name': 'Anthony Williams', 'ssn': '323-17-6270', 'residence': '52101 Cesar Glen Suite 343\nLake Matthewville, NV 14221-4334', 'company': 'Hopkins and Sons', 'job': "Nurse, children's", 'current_location': (Decimal('27.258387'), Decimal('-135.924368')), 'birthdate': '1983-11-07'}

fake = Faker()
print(fake.text())
# Ducimus eum minus ullam. Vel harum modi maxime consectetur natus. Blanditiis saepe quas minima.
# Eos tempore mollitia non iure error error assumenda.

日本語および各種言語にも対応していて名前や住所は本物ぽいです。

fake = Faker("ja_JP")
print(fake.name())
# 木村 裕太

print(fake.address())
# 広島県足立区池之端18丁目18番10号

文章やテキストも生成できますが、ちょっと変です。

print(fake.sentence())
#オークション敵対的なダイヤモンド参加する血まみれの風景。

素でこういう文を作ってドキドキさせてくれます。

https://github.com/joke2k/faker
https://faker.readthedocs.io/en/latest/

thefuck

最後はクリスマス・イブの夜を飾るのに最適なプロジェクト、thefuckです。
これも有名どころですね。
thefuckはターミナル・コマンドの打ち間違いを修正してくれるソフトウェアです。
使い方は簡単で、打ち間違いを実行したあとに、fuckと打ち込むだけです。
正しいコマンド候補を教えてくれます。

f0.PNG

インストール方法は簡単です。
OS別に、以下のいずれかでインストールできます。

# OS X
brew install thefuck

# Ubuntu
sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install thefuck

# other OS
pip install thefuck

これであなたもfuckし放題です。

f0.PNG

打ち間違いのあとにfuckすれば、正解候補を教えてくれます。正しいコマンドを↑↓で選び、確認して実行しましょう。
しかし確認せずにfuckしたいこともあると思います。
その場合はfuck -yで自動的に第1候補を実行してくれます。

f2.PNG

更にthefuckのにくいところは、fuckは履歴に残りません。
historyしても自分がfuckしたことはバレないので、誰も見ていない間にfuckし放題です。

f1.PNG

なお、fuckfuckできないのでご注意ください。

f3.PNG

https://github.com/nvbn/thefuck
https://nvbn.github.io/2015/10/08/how-thefuck-works/