Python

【Python】Python解析ツール ~ Ruff ~

■ はじめに Github Workflow で CI/CD を実装中だが、 PythonのLinter/Formatter についても実装してみようと思う。 PythonのLinter/Formatter については、過去、以下の関連記事で https://dk521123.hatenablog.com/entry/2021/11/08/221219 調べたことがあ…

【Python】Python ~ python-dotenv ~

■ はじめに 業務で、「.env」を扱うのができてきた。 このファイルを、Pythonで扱うには、 python-dotenv ってライブラリを使うので、 .envファイル(dotenv)を含めて調べてみた 目次 【1】.envファイル(dotenv) 【2】python-dotenv の インストール 【…

【Python】Python ~ TOML ~

■ はじめに TOMLファイルを読み込み そのデータ内を使うツールが必要になりそうなので PythonでTOMLをどう扱うかを調べてみた なお、TOMLについては、以下の関連記事を参照のこと TOML https://dk521123.hatenablog.com/entry/2023/04/25/103533 目次 【1】…

【Python】Jinja ~ Macro ~

■ はじめに https://dk521123.hatenablog.com/entry/2018/09/22/142348 で、Pythonのテンプレートエンジンである Jinja を取り扱ったが 今回は、Jinjaの マクロについて扱う。 【1】マクロ機能 * 繰り返し出てくる記述を簡略化することができる機能 【2】…

【Python】Python ~ ドキュメント化ツール ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/23/212149 の続き。 徐々にだが、Pythonのコメントから ドキュメント化するツールについて、まとめていく 目次 【1】Sphinx(スフィンクス) 【2】Doxygen(ドキシジェン) 【1】Sphinx(スフ…

【Python】Python ~ 可変長引数 / *args **kwargs ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/10/31/000133 https://dk521123.hatenablog.com/entry/2020/05/19/000000 等ででてきた *args **kwargs について、 改めてちゃんと学ぶ 目次 【1】*args 【2】**kwargs 【3】使用上の注意 【1】*…

【Python】functools ~ 高階関数 ~

■ はじめに Scalaで高階関数(こうかいかんすう)を知る機会があったが Pythonでもfunctoolsモジュールで扱えるとのことなので メモってみた。 目次 【1】高階関数 (Higher-Order Functions) 【2】functools 【3】cache 1)@cache 2)@cached_property …

【Snowflake】Snowflake ~ Pythonでクエリ実行 ~

■ はじめに Python で Snowflake の 非同期クエリを実行することになったので これを機にPython用Snowflakeコネクタを学んでみる 目次 【1】Python用Snowflakeコネクタ 【2】環境設定 【3】同期クエリ実行 1)サンプル 2)関連するAPI 【4】非同期クエ…

【Kafka】kafka-python ~ 入門編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/10/22/220717 でKafka / Kafka connect を設定したので 簡易的に、kafka-python を使って、Hello worldをやってみる 目次 【1】前提条件 【2】環境設定 【3】ドキュメント 【4】サンプル 例1:P…

【Python】Python ~ 基本編 / 文字列操作 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/12/075251 からの分冊。 文字列操作について、メモ。 目次 【1】置換 / 除去 1)replace 2)removeprefix / removesuffix (From Python3.9) 【2】分割 【3】連結 【1】置換 / 除去 1)repl…

【Python】Matplotlib ~ 基本編 / 折れ線 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/01/000000 https://dk521123.hatenablog.com/entry/2023/09/16/151516 の続き。 今回は、Python / Matplotlib (マット・プロット・リブ)で、 折れ線グラフを表示させる 目次 【1】折れ線 例1…

【Python】Matplotlib ~ 基本編 / 棒グラフ ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/01/000000 の続き。 今回は、Python / Matplotlib (マット・プロット・リブ)で、 棒グラフや積み上げ棒グラフを表示させる 目次 【1】棒グラフ 例1:Hello World 例2:複数の棒グラフを横に…

【Python】Matplotlib ~ あれこれ編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/03/01/000000 の続き。 今回は、Matplotlib に関するTipsを纏める 目次 【1】見た目を変える 1)インストール 2)導入例 【2】色を変える 【3】画像ファイルとして保存 【4】注釈/矢印 でグラ…

【Snowflake】指定した日付分アンロードするSQLを生成するPythonコード

■ はじめに テーブル内のデータをアンロードして テストデータを作るって作業をしていて 大分、久しぶりに、 Snowflakeスクリプトを書いたのだが 仕様とか色々大幅にかかりそうな予感を感じているので Pythonコード化して対応しておく 【1】前提条件 * スト…

【Python】Python ~ PDF ~

■ はじめに 前々からやろうと思っていたPythonのPDF化について 纏めてみる。 (半自動的にドキュメントを作れるようにしておくために) 目次 【1】PythonでのPDF化 【2】インストール 【3】API仕様 1)cell 2)image 【4】サンプル 例1:Hello World …

【Python】Python ~ 画像処理 / Pillow ~

■ はじめに Python の 画像処理ライブラリである Pillow について 徐々にまとめていく。 目次 【1】Pillow 【2】インストール 1)トラブル 【1】Pillow * Python の 画像処理ライブラリ cf. Pillow (ピロー) = まくら? 【2】インストール pip install …

【Python】Python ~ 非同期 / マルチスレッド ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/04/19/232949 で、非同期処理について扱ったが、 今回は、非同期処理の基本、マルチスレッドを扱う。 後、現場で、GIL(Global Interpretation Lock)がでてきたので とりあえず、メモる。 目次 【1】…

【DOT】Python で d3-graphviz を使ってアニメーション表示ツールを作る

■ はじめに 仕事でやりたいことが全く手が付けられないので 超個人的なツールの元なるソースをメモ。 https://dk521123.hatenablog.com/entry/2023/06/18/102448 https://dk521123.hatenablog.com/entry/2023/06/14/174104 を組み合わせて、1つのDOTファイ…

【Python】Python で DOT言語による Animation tool 作成

■ はじめに 超個人的なツール。 https://dk521123.hatenablog.com/entry/2023/06/18/102448 と組み合わせればアニメーションで動くものになるので。 【1】サンプル フォルダ構成 + dot_viewer_creator.py + delete + 01.txt + 02.txt + 03.txt + add + 01.t…

【Python】Python + DOT言語で図作成するには

■ はじめに 以前のTerraformの記事で https://dk521123.hatenablog.com/entry/2019/12/09/222057 ~~~ terraform graphで、Terraformの依存関係をグラフ化することが可能 terraform graph | dot -Tsvg > graph.svg ~~~ って、Terraformの依存関係をグラフ化し…

【Python】Python ~ 再帰関数 ~

■ はじめに Python の 再帰関数について徐々にメモる。 目次 【1】再帰関数 1)基本的な考え方 【2】サンプル 例1:階乗(n!) 【1】再帰関数 1)基本的な考え方 def <再帰関数>(引数, ...): if 抜ける判定: # ★ポイント:ここで無限ループを抜けるよ…

【Python】Python ~ 非同期 / concurrent.futures ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/02/26/000000 で作ったテストデータファイルを作成する処理で パフォーマンステスト用に大容量のデータ行で作りたい。 ファイルは複数、別の種類もあるので、非同期で作って なるべく時間を節約した…

【Python】Python ~ CSVデータ生成ツールを作ってみる ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/11/28/000000 で、JavaScriptでファイル出力するCSVデータ生成ツールを作ってみたが もう少し、細かくカスタマイズしたいので、Pythonで書く。 こういう仕事多いので、作っておかないと時間がもった…

【Python】Atlassian/Confluence の REST API を Pythonでコールする

■ はじめに Atlassian/Confluence の REST API を使って 情報を吸い上げることを急遽、業務で依頼があったので焦った。 その際の情報をメモ。 目次 【1】Atlassian/Confluence 【2】準備 1)Access Tokenの発行 【3】Atlassian/Confluence の REST API …

【Python】Python ~ HMAC ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/10/05/095506 で、HMACについて扱ったので、 今回は、Pythonで実装してみる。 目次 【1】Python での HMAC の実装 【2】サンプル 【1】Python での HMAC の実装 * すでに標準で以下のHMACライブラ…

【Python】Python ~ dataclasses / データクラス ~

■ はじめに 久しぶりに、Pythonネタ。 dataclasses ってのがでてきたので、メモ。 目次 【1】dataclasses 1)従来のクラスとの比較 【2】使用上の注意 【3】サンプル 例1:List があるプロパティの場合 例2:メソッド付きクラス 【1】dataclasses * …

【Python】Python ~ ndjson を扱う ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/19/104805 でJSONの扱いはやったが、 テストデータとして、ndjson のファイルを作る 可能性がでてきたので、予習。 目次 【0】ndjson 【1】ndjsonモジュールを使う 1)インストール 2)サンプ…

【Python】パッケージ管理 Poetry ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/11/09/155903 の続き。 Poetry の基本的なノウハウをメモしておく。 目次 【1】Pythonバージョンを指定する場合 1)手順 【2】依存パッケージを追加する場合 1)開発のみ必要なライブラリ追加す…

【Python】Python ~ 基本編 / urllib ~

■ はじめに Python から API をコールすることになりそうで その際に使用する urllib についてメモ。 目次 【1】urllib 1)使用例 2)AWS Glue のサポート状況 補足:サードパーティライブラリ「Requests」 【2】API仕様 1)urllib.request.Request 2…

【Python】単体試験 / unittest ~ あれこれ編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/02/223658 https://dk521123.hatenablog.com/entry/2021/03/31/000000 https://dk521123.hatenablog.com/entry/2021/04/05/165656 の続き。 今回は、Python標準 unittest の Tips を纏めておく 目…