Python
下記のtableとviewがあります。 salary viewはemployee tableとsalary tableを結合しています。 tableにはカラムレベルでdescriptionがありますが、viewには無い状態です。 employee tablesalary tablesalary viewviewは分析者が簡易的に作ることが多く、des…
概要 単一プロセスでのキャッシュ functools cachetools 複数インスタンス間でのキャッシュ 概要 Pytyhonの関数をキャッシュするデコレータについてです。 キャッシュを考える場合、次の2つの状況を考える必要があります。 単一プロセス内でキャッシュする場…
前提 カーネルが切り換わらない場合 前提 久しぶりに機械学習のコードを書く機会が会ったので、Jupyter Notebookを起動しました。 下記のようにvenv環境でJupyter Notebookを立ち上げました。 # .venv をactivate $ cd workspace $ python -m venv .venv $ s…
KEYを作成 スクリプト作成 課題 KEYを作成 GCPConsoleでKEYを作成します。 APIの制限としてMaps JavaScript APIのみを選択しておきます。 スクリプト作成 端末上で環境変数を設定し、JavaScriptふぁいるのHTMLを吐くPythonプログラムを実行します。 map.html…
BigQueryのEmulatorを用いて、開発環境やCI環境で導入できないかを検証しました。 github.com インストール 使用方法は go install Docker バイナリ があるようです。私はlinux用のバイナリを落としPATHに追加する方法で使用しました。 github.com wget http…
経緯 結論 経緯 clientからSpannerを扱うコードを書いていてpython-spannerリポジトリのコードをGitHubで読んでいたら、GitHub上では実装されているのに呼び出せないメソッドがありました。 調べたらclientのpython-spannerのverがv.3.22.2に対して、latest-…
概要 手順 ファイルを用意 CloudBuildでトリガーを作成 Blue/Green Deploy 参考 概要 今回説明するのは、GitHubリポジトリにpushするとGCP上でDockerイメージをビルドし、ビルドされたコンテナをCloud Runへデプロイしてくれるパイプラインです。 手順 ファ…
2つのアーキテクチャ HTTPSからCloud Functionsをトリガーする Pub/Subを介してCloud Functionsをトリガーする 2つのアーキテクチャ Cloud SchedulerからCloud Functionsを定期実行したい場合、下記の2つのアーキテクチャが挙げられます。 HTTPSからCloud Fu…
旅行記を書いているのですが、流石に何百枚とアップロードしているのに無加工は厳しいと思い画像の右下にロゴを入れる簡易アプリケーションを作りました。 写真の取り込みはWindowsで行うため、ローカル環境でWindowマシンからアクセスし、Ubuntu上で加工が…
全endpointのドキュメントを作るためのスクリプトはコチラ import inspect import json import os from dataclasses import dataclass from typing import Any, Union from nba_api.stats import endpoints DIR_PATH: str = "endpoints" REJECT_ARGS = ["pro…
Workload Identity連携とは 何が嬉しいのか どういう仕組みか 設定の仕方 事前準備 Workload Identity Poolの設定 IdP (Identity Provider)の登録とWorkload Identity Poolの追加 外部IDがサービスアカウントを使えるようにする workflowにdeploy jobを記述…
ChatGPTを使いnba_apiの各エンドポイントの概要を教えてもらいました。 alltimeleadersgrids assistleaders assisttracker boxscoreadvancedv2 boxscoredefensive boxscorefourfactorsv2 boxscorematchups boxscoremiscv2 boxscoreplayertrackv2 boxscoresco…
はじめに Fakerについて ダミーデータの挿入 tableの準備 挿入スクリプトを書く データの確認 はじめに こちらの記事ではUNIONとCROSS JOINを用いてダミーデータをSQL内で生成する方法を書きました。 memo.geso.site今回はPythonのFakerというモジュールを用…
はじめに logger wraps lru_cache repeat timeit retry countcall rate_limited register singledispatch はじめに このような記事を見つけました。 functools等で提供されているデコレータではなく、使用頻度の高いデコレータを独自に実装しようという試み…
TSVに(名前, 登場話, 退場話)を記録 (記録するために全巻読みました) 名前 登場話 退場話 メモ ガッシュ 1 322 レイコム 4 6 ゴブレ 7 10 ブラゴ 7 321 スギナ 13 15 コルル 16 18 フェイン 19 20 フリガロ 22 22 エシェロス 22 25 キャンチョメ 27 301…
前置き 実装済 chain.from_iterable(iterable) count(start, step) cycle(iterable) groupby(iterable, key=None) pairwise(iterable) dropwhile(predicate, iterable) takewhile(predicate, iterable) filterfalse(predicate, iterable) starmap(function, …
『Fluent Python』を読んだのでメモを残します。 1章 Pythonのデータモデル 2章 シーケンスの配列 3章 ディクショナリとセット 4章 テキストとバイト 5章 第一級関数 6章 第一級関数を使ったデザインパターン 7章 関数デコレータとクロージャ 13章 演算子オ…
Pythonにはpipでflake8, isort, blackを入れる。 name: "test" on: [pull_request, push] jobs: style: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-…
seleniumを使って部分的な領域をスクショする方法を(無理やり)つくりました。selenium.webdriver.chrome.webdriver.WebDriverにもsave_screenshot()というメソッドがありますが欲しい位置が取得できないという問題がありました。 全画面をスクショする方法…
最近Pythonを書くにしても、型を意識して書くことが増えたためこちらのドキュメントについて、あやふやに理解していた部分をまとめました。 docs.python.org 新しい型を定義したい時 ジェネリクス Any型 特殊型 typing.LiteralString typing.NoReturn typing…
PythonなどのアプリケーションからSQLを実行する際のポイントを個人的にまとめてみました。 Python関数よりもSQL関数 NG OK bulk NG OK エラー処理 NG OK Python関数よりもSQL関数 基本的にPythonの速度はSQLの速度と比べて非常に遅いため, SQLで実行できる…
FastAPIアプリ側のコンテナの操作 import os import uvicorn from fastapi import FastAPI MESSAGE = os.environ['MESSAGE'] PORT = os.environ['PORT'] app = FastAPI() @app.get("/") def read_root(): return {"Hello": MESSAGE} @app.get("/items/{item_…
コンテナを作成 # pythonイメージから何もしないコンテナを起動 $ docker container run --name base -d python:3.7.5-slim tail -f /dev/null # fastapiとuvicornをコンテナにインストール $ docker container exec base pip install fastapi==0.73.0 $ doc…
Effective Pythonを読んだのでそのメモです。 関数をトレースするデコレータ with句を作成するためのcontextmanagerデコレータ 様々なキュー 両端キュー(Double-ended Queue) ヒープキュー(Heap Queue) 関数をトレースするデコレータ 関数呼び出しの引数…
歌詞情報が欲しい場面があったのでメモ lyricsGeniusというOSSが便利だった github.comColdplayのYellowの歌詞を取得したい場合 import lyricsgenius token = 'XXXX' genius = lyricsgenius.Genius(token) song = genius.search_song(title='Yellow', artist…
文字の範囲のみをトリミングした動画から、(フレーム番号, 時刻, そのフレームの画像に表示されている文字)を抽出する import cv2 import numpy as np import csv from PIL import Image import pyocr def cv2pillow(image): new_image = image.copy() if …
必要なものをインスコ pip install ffmpeg-pythonimport ffmpeg import cv2 import os.path import numpy as np def video_trimming(video_path, x, y, w, h): """ video_path # ファイルの絶対パス start_x = 850 # 切り取りたい区画のx座標(px) start_y …
急に容量が増えたときの調査方法 スクレイピングしてたら意図しないストレージ容量の増加が起きた. データの保存先のMySQLの容量は大したものではなかったため意図せぬログファイルやキャッシュファイルの仕業と考えられた. 実際, ディスク容量アナライザを…
動画の各フレーム番号の画像に対して画像処理を施し再構成する際に(画像処理を施したフレーム画像, 時刻)が必要 cv2.VideoCaptureを使うと上の要件を満たせることが分かったので基本的な使い方を試した import cv2 import numpy as np if __name__ == '__m…
poetryのインストール curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python - 環境変数を通す vim ~/.bash_profile 下記を追加 export PATH="$HOME/.poetry/bin:$PATH" 既存のプロジェクトの場合はinitでpypro…