パン屋さんとカフェをめぐるのが好き、趣味は意外と女子力が高そうなたいがーです。実際はあまり高くないです。
女子力といえば、料理かなと思うのですが、言動に似合わず、料理もお菓子作りもします。メンターをしていただいている社員さんに、どちらも全くしなさそうと言われました…そんなことないです!!!実家に住んでいるのですが、晩御飯も頼まれたら作ります!!!
そんな意外とご飯を作る、私の今日の振り返りです。
前回、メンターさんがCloud Automatorのハンズオン準備に使うスクリプトを動作確認をしてくださって分かった、訂正しなければいけない部分の修正から始めていきます。訂正していくスクリプトは、2つです。
・ハンズオンに使用するクレデンシャル情報(AWSアカウント情報、ハンズオンアカウントの情報、メールアドレスなどが表記されている)をテキストファイルに表記し、フォルダを作成するスクリプト
・作ったテキストファイルをBoxのフォルダに格納するスクリプト
それでは訂正していきます。
ハンズオン準備のためのスクリプトを訂正する
日付を指定できるように変更する
テキストファイルを作成するスクリプトは訂正する前は、作成した日の日付でテキストファイルに表記されていました。そこを設定したい日付に表記できるように変更していきます。
まずは.envファイルの中に、ハンズオンの日付を追加しました。
HANDSON_DATE=YYYYMMDD
そして、スクリプトの中に
os.getenv('HANDSON_DATE')
と表記し、.envファイルから指定した日付を取ってくるように変更します。
フォルダ作成の際のオプションを減らす
次にフォルダを作成する際に、権限を指定(775)していましたが、4桁ではないため、読み取りができないように設定されてしまいました。
os.makedirs('account_infos', 755, exist_ok=True)
そこで二個目のオプションを無くすことによって、すべてのユーザーにアクセスが許可されました。
os.makedirs('account_infos', exist_ok=True)
アップロードの時に変更される名前を変更しないようにする
クレデンシャル情報が書かれているテキストファイルは、アカウント番号が表示されているフォルダに格納し、それらのフォルダをaccount_infosというフォルダに格納するように設定していました。
しかし、11番目以降のフォルダが既に名前があるために、Boxにうまくアップロードできていないというエラーが発生していました。また、"10"という名前のフォルダも、Box上では"0"で表記されていました。それらの原因を探していきます。
account_infosのフォルダの中身を出力してみます。
['account_infos\\1', 'account_infos\\10', 'account_infos\\11', 'account_infos\\2', 'account_infos\\3', 'account_infos\\4', 'account_infos\\5', 'account_infos\\6', 'account_infos\\7', 'account_infos\\8', 'account_infos\\9']
おそらく、Boxにアップされているときに名前が変更されているようでした。Boxの中にフォルダを作成するために書いていたのが、こちらでした。
client.folder(folder_id).create_subfolder(folder[-1])
これだと、文字列の一番最後しか取ってこなかったため、10が0になっていたりしたのでした。
そこで、account_infos\\以外を取ってくるように設定します。
folder_name = folder.split('account_infos\\')[1]
client.folder(folder_id).create_subfolder(folder_name)
このように表記することで、そのままの名前でBox上にフォルダを作成することが出来ました。
その後、メンターさんにレビューしていただきました。
PEP8違反エラーが表示されなかったのは整形ツールをインストールしていなかったから
私は普段からVisual Studio Code、通称VSCodeを使っています。レビューをしていただいた時、VSCodeにPylintをインストールすることを進められました。
Pylintとは?
複数ファイルにまたがったモジュールやパッケージをチェックできるPythonのコードチェッカーの1つ。
とりあえず、インストールしてみます。
> conda install --channel https://conda.anaconda.org/anaconda pylint
インストールできたので、setting.jsonを触っていきます。
Pylintを使える設定ファイルを変更する
VSCodeの[ファイル]→[基本設定]→[設定]のところから変えてみます。
"python.linting.enabled": true
"python.linting.enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.pep8Enabled": true
"python.linting.lintOnSave": true
しかし、VSCodeの設定を変えても、何故かエラーが表示されませんでした。
autopep8をインストールしていなかった
VSCodeでコード整形ツールのショートキーは[Ctrl + Alt + F]。押してみると、autopep8をインストールしますか?という通知が表示されました。インストールしてみると、うまく動きました!
棚ぼたのように機能を知りました
なかなかエラーが表示されないautopep8の謎が解けなかったので、メンターさんにsetting.jsonを見せていただきました。
とりあえず、打っていないものを全部打ってみると、インデントがすごく見やすくなり、感動しました。それがこちらです。
"editor.renderWhitespace": "all"
空白部分に点線が入り、すごく見やすくなりました。
VSCodeの拡張機能のおすすめを教えてください
せっかく、拡張機能が豊富なVSCodeを使っているので、使いこなしたいなと思っています。何かおすすめの機能があれば、教えてください!!