読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

git commit時にPythonのFlake8でコードチェックするメモ

Python

バージョン変わってやり方も変わってたので一応メモ

$ pip install flake8
$ flake8 --version
3.2.1
# プロジェクトのルートで以下コマンド
$flake8 --install-hook git

ファイルが作成される

  • .git/hooks/pre-commit
#!/usr/local/opt/python/bin/python2.7
import os
import sys

from flake8.main import git

if __name__ == '__main__':
    sys.exit(
        git.hook(
            strict=git.config_for('strict'),
            lazy=git.config_for('lazy'),
        )
    )

これで git commit 時に flake8 のチェックが通らないとコミットできなくなる。

追記 2017-01-09

プロジェクト内の html を修正してコミットしたらなぜか html を flake8 がチェックしてエラー出ちゃってた。

ソースコードみてみる 。.py 以外の git add したファイル全部みちゃってるのかなこれ?
とりあえず ルートに .flake8 ファイルを置いて除外して回避してみる。

[flake8]
max-line-length = 120
exclude = .flake8,*.html,

参考

2016年を振り返る

技術的なことなど

Python

  • 今年もv2.7.xしか使ってない
    • 仕事でv3.x系使う日は来るのだろうか?

Javascript

  • flumpt でそこそこの規模のwebサイト作ったけど、次は redux 使うことになりそうな予感。
    • react の flux ライブラリで決定的に良いやつって出てこなかったような。結局いまのところは redux なのかなぁという感じ。
    • vue js もよいのかな?チュートリアル程度しか触ったことなかったけど。
  • JS界隈も変化が少なくだいぶ落ち着いてきたような?
  • JS は書いててやっぱり好きになれない気がした。

k8s

  • ちょっとだけ触れたけど色々他のことも勉強しないとと思った。

Erlang

できるようになりたいと思いつつ全く何も進んでない技術的なものランキング

  1. golang
  2. elasticsearch
  3. swift
  4. elixir
  5. sql

あとサーバまわりも...
それからシェル芸まわりも...
と思ってたら今月から Erlang と Elixir 勉強することになった

エディタ

  • Emacs でよいよねー
    • たまに IntelliJ UE も使うけど
    • 一時的なメモ書きに CotEditor も使ったり
    • ごたごた が起きてるっぽいけど大ごとになったら考えるつもり

キーボード

  • HHKB type-S (US配列)
  • ErgoDox とかセパレートタイプには手を出さないと決めた。
    • 弊社CEOが使ってるけど、急いでる時はマクブクのキーボード使ったりしてるの見たし...

健康的なことなど

  • 今年のテーマは『体調を崩さない』
    • 前半に1回風邪ひいたけど疲労困憊の時もあったけど大体健康だったからオッケー。
  • 定期的に腰痛
    • ストレッチすると緩和する。
    • 筋肉のバランスが前面と背面で悪い気がする。
    • 肩甲骨あたり硬直してるかも。
    • 原因がもうすぐ解明されそうな気がする。
  • 減量したい。
    • 好きなもの食べたい。

良かったものなど

映画

漫画

  • 聲の形
    • たまたま知ってハマった。
    • 2巻から面白くなる感じ。1巻はイジメの話なのでツラい。
  • 3月のライオン
    • 5巻くらいからハマり始めたような気がする。桐山くん良いよね。

小説

むかしの小説だけど

音楽

今年リリースされたアルバムじゃないけど

ドラマ

バラエティ番組

買ってよかったものなど

まとめ

  • 家庭事情で8月までいろいろ大変だったけどなんとかなった。ホワイト企業に勤務しててよかった。
  • 来年は勉強時間を増やす。やること絞る。(予定)
  • 今年もまとまらなかったこれ...。
  • 来年も頑張る!

すごE本を読んでみたメモ -- 第4章

Erlang

書籍『すごいErlangゆかいに学ぼう!/Learn You Some Erlang for great good! 』まとめ

第4章 型(あるいはそれを欠いています)

4.1 動的で強い型付け

  • Erlang は強い型付き言語

4.2 型変換

1> erlang:list_to_integer("54").
54
2> erlang:integer_to_list(54).
"54"
3> erlang:list_to_integer("54.32").
** exception error: bad argument
in function list_to_integer/1 called as list_to_integer("54.32") 4> erlang:list_to_float("54.32").
54.32
5> erlang:atom_to_list(true).
"true"
6> erlang:list_to_binary("hi there").
<<"hi there">>
7> erlang:binary_to_list(<<"hi there">>).
"hi there"

変換用関数一覧

  • atom_to_binary/2
  • atom_to_list/1
  • binary_to_atom/2
  • binary_to_existing_atom/2
  • binary_to_list/1
  • binary_to_term/1
  • binary_to_term/2
  • bitstring_to_list/1
  • float_to_list/1
  • fun_to_list/1
  • integer_to_list/1
  • integer_to_list/2
  • iolist_to_atom/1
  • iolist_to_binary/1
  • list_to_atom/1
  • list_to_binary/1
  • list_to_bitstring/1
  • list_to_existing_atom/1
  • list_to_float/1
  • list_to_integer/2
  • list_to_pid/1
  • list_to_tuple/1
  • pid_to_list/1
  • port_to_list/1
  • ref_to_list/1
  • term_to_binary/1
  • term_to_binary/2
  • tuple_to_list/1

4.3 データ型を守るために

型テスト BIF

  • is_atom/1
  • is_binary/1
  • is_bitstring/1
  • is_boolean/1
  • is_builtin/3
  • is_float/1
  • is_function/1
  • is_function/2
  • is_integer/1
  • is_list/1
  • is_number/1
  • is_pid/1
  • is_port/1
  • is_record/2
  • is_record/3
  • is_reference/1
  • is_tuple/1

以下2つのコードは同じだが Erlang では後者が好まれる。

my_function(Exp) ->
    case type_of(Exp) of
        binary -> Expression1;
        list -> Expression2
    end.
my_function(Exp) when is_binary(Exp) -> Expression1;
my_function(Exp) when is_list(Exp) -> Expression2.

4.4 型ジャンキーのために

第 30 章では簡単に Erlang で 静的型解析を行うツールである Dialyzer を紹介し、独 自の型を定義してより安全にコードを書く方法を紹介 します。

flake8 の設定を変更するメモ

Python

(python2.7.13, flake8v3.2.1)

  • ~/.flake8 にファイルを作って設定を書く
[flake8]
max-line-length = 120

参考

Configuring Flake8 — flake8 3.3.0.dev0 documentation