fsspecと環境変数

はじめに fsspecはローカル、リモート (FTP, Samba, etc.)、アーカイブファイル (zip, tar, etc.)、そしてBlobストレージ (S3, etc.) を操作する統一的なインタフェースを提供してくれる、非常に便利なPythonパッケージだ。その核となるコンセプトはファイル…

備忘録:SQLAlchemyのConnectionとTransactionの区別について

SQLAlchemy 1.4系と2.0系の両方において、データベース接続オブジェクトとトランザクションオブジェクト (sqlalchey.Transaction) を区別できるか調べてみた。結果、isinstance() を使ったプログラム実行時の型チェックで両者を区別することも、mypy および …

備忘録:SQLAlchemyのORMとCoreを組み合わせて使うのが良さそう

最近、身をもって学んだことの備忘録。SQLの薄いラッパーとしてSQLAlchemyを使いたいプロジェクト(後述)では以下の方針で進めるのが良いと思う。 ORMレイヤーで、クラス定義をする Coreレイヤーで、クエリー生成をする ただしテーブルオブジェクトではなく…

Pandasで同一データをto_parquetすると重複が起こる

今日試して学んだこと。Pandasで同一データフレームを複数回to_parquetで出力すると、同一データが重複する形で出力される。なので、例えばCSVファイルをPandasでParquetデータセットとしてETLするような処理を走らせる場合には同一CSVファイルを複数回処理…

過去バージョンをメンテナンスするGitのブランチ運用

Git

ソフトウェア開発の仕事では 、過去バージョンのメンテナンス(バグ修正)も行いながら最新版を開発していかなければならないことが多い。これを効率的に行えるような Git のブランチ運用方法を、マジメに調べたことが無かったなーと思ったので調べてみた。…

メモ: iOS向けの静的リンクライブラリをRustで書く方法

iOS向けの静的リンクライブラリをRustで書く方法について調べたところ、詳細に書かれたブログを見つけたので内容の走り書きのメモを残す。 https://blog.mozilla.org/data/2022/01/31/this-week-in-glean-building-and-deploying-a-rust-library-on-ios/ ま…

Ubuntu 22.04をThinkPad X1 Carbon 4thに入れる

今日はガタの来ていたThinkPad X1 Carbon (4th, 2016)のOSをUbuntu 22.04 LTS (Desktop)に入れ替える遊びをしてみたので、その手順を記録しておく。 もくじ セットアップの要点 OSインストール (Ubuntu 22.04) USB無線LANドングルのセットアップ CapsLock を…