ようへいの日々精進XP

よかろうもん

python

Google Drive API の Push Notification を利用して Google Drive 上の変更を AWS Lambda で受け取る (試み)

これは 経緯 Google Drive API に Push Notification を理解する 概念図 ページトークン チャンネル 変更内容の通知 本題 (変更通知を AWS Lambda で受け取る) 構成 コード 実験 事前の準備 チャンネル作成 ファイル追加 ファイル削除 アクセス権の付与や削…

2021 年 06 月 12 日 (土)

アクティビティ (今までの走行 (歩行) 距離) ジョギング レアジョブ 夕飯 Python の文字列がイミュータブルという件 アクティビティ (今までの走行 (歩行) 距離) Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela …

S3 バケットに保存されている画像ファイルのファイルサイズや大きさ (縦横) の一覧を取得する方法の一例

この記事は YAMAP エンジニア Advent Calendar 2020 の六日目になる予定です。 qiita.com tl;dr ギョームにて、S3 バケットに保存されている画像ファイルのファイルサイズや大きさの一覧が欲しいというリクエストを頂きましたので、AWS CLI と grep や awk …

moto を使って Lambda ファンクションのテストを書いて Github Actions で CI を回すまでのメモ

tl;dr モチベーション テストコード DynamoDB への書き込みに関するテスト SSM パラメータストアからパラメータを取得する関数のテスト 実際にテストを走らせてみる そして, Github Actions で転がす 初心者が書いた .github/workflows/main.yml 実際に転が…

ギョームにてすぐに日本時間が欲しい時に僕がやること

tl;dr 何やるか 同じようなことを python でも 以上 tl;dr AWS がメールで送ってくる EC2 等のメンテナンス通知. メンテナンスの日時が UTC で表記されているので, その時間を日本時間 (JST) で欲しい時に僕がやっていることをメモっておきます. 何やるか ま…

リトライ処理が適切に行われるかをテストする方法を考えた Python 編

tl;dr retry モジュール retry モジュール retry モジュールのシンプルな使い方 ということで, そのリトライ, ちゃんとリトライしてますか? まずは... リトライ で, リトライされていることをテストする 以上 tl;dr Python の retry モジュール超便利 で, …

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (3)

環境 知見 (5) 例外発生をテストする 関数 テスト 知見 (6) ログ出力をテストする 関数 テスト testfixtures テストコード 以上 環境 以下のような環境でやってます. $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G19009 $ pyt…

shUnit2 で awscli を使ったシェルスクリプトのユニットテストを Travis CI と AWS CodeBuild で実行した際のメモ

tl;dr と言っても, まずはコードを御覧ください TravisCI で実行する .travis.yml 工夫したところ (イケてないかもしれないところ) Python 環境でやった awscli を利用する準備 実行結果 AWS CodeBuild で実行する AWS CodeBuild x GitHub buildspec.yml 工…

shUnit2 で awscli を使ったシェルスクリプトのユニットテストを書くまでの諸々

tl;dr shUnit2 shUnit2 とは shUnit2 で Hello World shUnit2 諸々 詳細については... Assert assertEquals assertNotEquals Setup/Teardown oneTimeSetup oneTimeTearDown ちなみに, setUp と tearDown awscli を使ったシェルスクリプトでテストする さて, …

2018 年 04 月 27 日(金)

ジョギング 日課 PyFukuoka #4 今日のるびぃ ~ Ruby技術者認定試験【Gold】模擬問題を解いてみる (re: 6) ~ Q16. Object#freeze Q17. Proc Q18. ライブラリ ジョギング 香椎浜 x 2 周 テンポ良く走れたと思う 両足の太もも裏に張りを感じる 日課 お休み PyFu…

内閣府が提供する祝日・休日 csv データをよしなに JSON フォーマットに変換して Amazon S3 に保存する Python スクリプトを書いてみたのと, そこで得たイイ感じでテストを書く, テストを回す為の知見を幾つか

tl;dr 作ったもの 知見 requests.get() を mock で置き換える S3 への put_object を moto で置き換える invoke コマンド Travis CI を使って, 複数の Python バージョンでテスト出来るようにする 以上 tl;dr inokara.hateblo.jp 前回の記事の続きというか, …

奥さんがフェイスエステしている間に日本の祝日や休日を JSON で返す Web サービスを API Gateway と Amazon S3 そして Python で作ってみました

追記:後日談を書きました inokara.hateblo.jp tl;dr 日本の祝日や休日を JSON で返してくれる Holidays JP API というサービスがありますよね. holidays-jp.github.io すごく便利で有難いと思います. 今回は, ちょっとした時間が出来たので Holidays JP API…

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (2)

環境 知見 (4) テストの実行順序を制御する (ということ自体が正しいのか否かについても) 疑問 なんで? 少し深追い も少しだけ深く で... と, まあ 以上 環境 引き続き, 以下のような環境でやってます. $ sw_vers ProductName: Mac OS X ProductVersion: 10…

直近で Python の unittest で試行錯誤していて得られた知見の幾つか (1)

環境 知見 (1) ランダムな情報を返す関数をテストする 関数 テスト 知見 (2) とある日付の前月を返す関数をテストする 関数 テスト 知見 (3) テスト結果を XML 形式で出力する メモ 以上 環境 以下のような環境でやってます. $ sw_vers ProductName: Mac OS …

Jenkins のマスターとスレーブを Docker コンテナで起動して Python の unittest を pyenv 環境で動かすまでのメモ

前提 Jenkins を動かす環境 Python の unittest Jenkins のコンテナの起動と初期設定 起動 初期設定 プロジェクトの設定 スレーブ環境の準備 スレーブ環境の前提 スレーブの追加 プロジェクトでスレーブを利用するように設定 ビルド 以上 前提 Jenkins を動…

Python の unittest で任意の関数 "だけ" テストしたい

以下のような... 普通にテストを実行する場合 では, 任意の関数だけテストしたい場合 逆に任意の関数だけスキップしたい場合にどうするのかというと... その他の unittest 起動方法 指定した複数の関数だけテストしたい 指定したパスのテストモジュール (テ…

手順書に「xxxxx と出力されることを目視で確認する」と書くの止めたい

はじめに そこで, assert 文を利用することにした 利用例 利用例の環境 設定ファイル コマンドの出力結果 ということで はじめに 手順書を書く時に「xxx の出力結果が xxx であることを目視で確認する.」と書いていて, 自分で自分に以下のようなツッコミを入…

MySQL のクエリ結果を JSON で取得したい Python 編 (2)

前回 実装メモ テスト pycodestyle invoke 以上 前回 inokara.hateblo.jp この記事で作ったサンプルとかを Github に上げた. github.com 詳細は前回の記事とか見る. 実装メモ テスト ローカルホストに MySQL が動いていることが前提だけど, テスト用のデータ…

MySQL のクエリ結果を JSON で取得したい Python 編

tl;dr こんなテーブルがあったとする 実装例 環境 1 件取得する 全件を取得する 指定した条件のレコードを取得 以上 tl;dr SELECT * FROM table WHERE id = N の結果を JSON で取得したい. ただ, それだけ. こんなテーブルがあったとする mysql> SELECT * FR…

Python でお気軽にプログレスバー

この記事は... (what)何をしたかったのか (why)なぜやりたかったのか やったこと tqdm Hello tqdm コマンドラインでも使える 以上 この記事は... qiita.com 参加者の少ない, 初老丸 Advent Calendar 2017 14 日目の記事です. (what)何をしたかったのか Pytho…

Python でコマンドラインからパスワード入力させるの際には画面にパスワード文字列は出力させたくないゾ

この記事は... 何がしたかったのか どうしたか 以上 この記事は... qiita.com 参加者の少ない, 初老丸 Advent Calendar 2017 11 日目の記事です. 何がしたかったのか 以下のように Python スクリプトを実行して, コマンドラインからパスワードの入力を受け付…

mailcatcher でメール送信のデバッグ作業が 256 倍捗った(個人比)のでメモ

この記事は... tl;dr mailcatcher の準備 mailcatcher とは Docker イメージで展開する メールを送るサンプル スクリプト本体 設定ファイル 実行サンプル mailcatcher で確認 以上 この記事は... qiita.com 体育会系エンジニア Advent Calendar 2017 10 日目…

Python スクリプトの標準出力をパイプでつなぐ時に気をつけたいこと

これは tl;dr あれっ?? Python のヘルプを見ると... One more thing 以上 これは qiita.com 初老丸 Advent Calendar 2017 9 日目の記事になる予定です. tl;dr Python スクリプト内で以下のように Print() を利用して 'foo' を標準出力させつつ, tee コマン…

dateutil の parser よりも速く日付を解析する試み

これは tl;dr やりたかったこと dateutil の parser で実装した場合 オレオレパーサーを実装してみる なんでやろ そもそも関数の呼び出す数が違った dateutil のソースコードを見てみる 以上 dateutil の parser は遅いのか ということで これは qiita.com …

DynamoDB の Scan でテーブルのデータを漏れなく取得する為のメモ

これは これはやらかしの記録である 結果セットに 1MB 制限がある 実装例 環境 ダメなやつ 1MB 以上の結果を取得するやつ 1MB 以上の結果を取得するやつ(2) ということで 教訓 自分を殴りたい これは qiita.com 初老丸 Advent Calendar 2017 6 日目の記事に…

言語別 S3 バケットに任意のキーが存在しているかを確認するコード片

よろしくお願いしまっす! やりたいこと 諸々 bash Ruby Python Go PHP 以上 よろしくお願いしまっす! この記事は... qiita.com 初老丸 Advent Calendar 2017 1 日目の記事になる予定です。 やりたいこと 任意の S3 バケット内に任意のキーが存在しているか…

テストドンブリ(ドリブン)Python FizzBuzz

Python Boot Camp に行ってきた テストドリブン FizzBuzz ドキュメント 環境 FizzBuzz とは 最初のテスト fizzbuzz 関数の実装(1) テスト(2) fizzbuzz 関数の実装(2) テスト(3) fizzbuzz 関数の実装(3) テスト(4) 以上 Python Boot Camp に行っ…

CodeBuild で実行したビルドの結果を Slack に通知するヤツ(PHPUnit を実行した場合にはテスト結果もブラウザで確認出来るようにしちゃる)

CodeBuild にお願いしっぱなしでは 使い方 ファイル デプロイ こんな感じ 処理の流れ(1) 処理の流れ(2) 通知例 ビルド開始 成功 失敗 ハマった点こととか PreSigned URL 結果 URL の処理をどこでやるか ということで CodeBuild にお願いしっぱなしでは …

俺は AWS について何も解っていなかった 〜 ec2 describe instances の Filters オプションでタグによる検索をしたい場合 〜

やりたかった事 解っていなかった事 知ったかぶりをして ところが、ドキュメントを読むと… こんな感じ ということで このメモを書くきっかけ Python のリスト内包表記 やりたかった事 EC2 タグ Key = foo と Value = true が付与されているインスタンス ID …

小ネタ道場一本勝負 〜 date コマンドの出力を ISO 8601 フォーマットにしたい 〜

date コマンドで Mac だと Linux だと Ruby だと Python だと 以上 date コマンドで ISO 8601 フォーマットで出力したい時がたまにあるのでメモっておく。 https://ja.wikipedia.org/wiki/ISO_8601 Mac だと date +%FT%T%z 実行。 $ date +%FT%T%z 2017-06-1…