万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Boo Language Advent Calendar 2012 20日目 Title:「pep8コマンドをBooでもやる!」

    URL: http://atnd.org/events/34622

    PythonのPEP8というPythonのコーディングスタイルがいい。
    しかもpep8コマンドを使えば整形してくれます。

    Booにもないかな?ってBooのGoogleグループで聞くと、

    ・元

    The pep8 command uses a pretty forgiven parser and will work on most Boo code. 
    
    regards,
    /imv

    ・shinriyo超訳

    pep8コマンドは多めに見てくれるパーサで動くー、ほとんどのBooコードで動くっちゃ。

    forgivenをfortgotの過去分詞と勘違いしました。それは"forgotten"でしたね。ちなみに9つの実のうちの1つ。

    こんな感じにインストールした

    127 Assets/Scripts git:(master) ▶ workon pyfes2012 
    (pyfes2012)Ξ ~VIRTUAL_ENV git:(master) ▶ pep8
    zsh: command not found: pep8
    (pyfes2012)↑127 ~VIRTUAL_ENV git:(master) ▶ pip install pep8
    Downloading/unpacking pep8
      Downloading pep8-1.3.4.tar.gz (44Kb): 44Kb downloaded
      Running setup.py egg_info for package pep8
        
    Requirement already satisfied (use --upgrade to upgrade): setuptools in ./lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg (from pep8)
    Installing collected packages: pep8
      Running setup.py install for pep8
        
        Installing pep8 script to /Users/xxxxx/.virtualenvs/pyfes2012/bin
    Successfully installed pep8
    Cleaning up...
    (pyfes2012)Ξ ~VIRTUAL_ENV git:(master) ▶ 
    

    virtualenvとvirtualenvwrapperを使ってます。使い方はこの本を買おう。

    実験します。
    以前書いたと思われるコード
    ・Test.boo(元のコード)

    import UnityEngine
    
    class Test (MonoBehaviour):
    
        def Start ():
            a = OverloadOperator(10, 200)
            b = OverloadOperator(30, 20)
            c = a + b
            Debug.Log("a:"+a.mA+","+a.mB + " b:"+b.mA+","+b.mB + " c:"+c.mA+","+c.mB)
    

    MacOS X版だけかもしれないが、このようにドラッグ&ドロップでパス入力が面倒くさいのでこのように入力します。

    ・実行!

    pep8 --show-source /Users/xxxx/boo_test/Assets/Scripts/Test.boo 
      • show-sourceオプションつけるとソースの誤差が見える

    あれ?自動整形はしてくれなかったっけ?
    この警告どおりに直すのは面倒くさい。

    「pep8 autofix」でググる
    autopep8が出る。

    このように"-i"オプションをつける。※つけないとコンソール上にケッカソース出るだけ

    autopep8 -i /Users/xxxx/boo_test/Assets/Scripts/Test.boo

    こうすれば自動に整形して上書いてくれる

    ・Test.boo(変更後のコード)

    import UnityEngine
    
    
    class Test (MonoBehaviour):
    
        def Start():
            a = OverloadOperator(10, 200)
            b = OverloadOperator(30, 20)
            c = a + b
            Debug.Log("a:" + a.mA + "," + a.mB + " b:" + b.mA + "," +
                      b.mB + " c:" + c.mA + "," + c.mB)
    

    お!!!!!きちんと改行された

    って、クラス名の後のスペースは無視か?


    ちなみに、こんな感じ↓にしてもpep8もautopep8も無視された・・・

    class Test          (MonoBehaviour):
    

    ここのサンプルはクラス名と(の間に何もないから何もなくす!
    http://oldriver.org/python/pep-0008j.html

    では次へ!