この記事はLivetoonTech Advent Calendar 2025の11日目の記事です。本日はCTOの私がよく使ってるSQLModelについてお話します。 宣伝 今回のアドベントカレンダーでは、LivetoonのAIキャラクターアプリのkaiwaに関わるエンジニアが、アプリの話からLLM・合成音声・インフラ監視・GPU・OSSまで、幅広くアドベントカレンダーとして書いて行く予定です。 是非、publicationをフォローして、記事を追ってみてください。SQLModelとはSQLModelは、 Pydantic とSQLAlchemy のいいとこ取りをしたPythonORMライブラリです。FastAPIの作者(tiangolo)が開発しており、以下の特徴があります: Pydanticの書き心地: バリデーション・型安全性をそのまま活用SQLAlchemyの互換性:

想定読者Pythonの基本文法は、なんとなく分かっている人(入門者以上、初心者未満くらい)MacBookユーザー(サンプルコードの動作確認をしたい人)Fletとは?Fletは、Pythonを使ってウェブアプリやデスクトップアプリを作成できるフレームワークです。 フレームワークとは、よく使われる機能があらかじめ用意されたツールです。Fletを利用することで、Python以外の知識が乏しくても、アプリを開発できます。本来、画面を作るにはHTML,CSS,JavaScriptなどの言語を学ぶ必要があります。Pythonと合わせ、それらの言語を学び実際に開発まで漕ぎ着けるのは、初学者にとって大きなハードルでしょう。Fletを使うことで、HTMLなどの画面作成に使う言語知識が乏しくても、簡単にカッコいいデザインのウェブアプリを作成することができます。Fletを学ぶメリット F

みなさん、こんにちは!私は株式会社ulusageで技術ブログを担当しているエンジニアです。最新の情報や、日々の開発で役立つTipsを皆さんと共有していきたいと思います。どうぞよろしくお願いします。(もしこのブログの仕組みやシステムフローに興味があれば、ぜひお知らせください。皆さんのご要望に応じて、詳細な記事を作成します!)Pythonでのデバッグ:print()からic()へ、革新の手法 はじめにPythonで開発を進める中で、皆さんも一度は「なぜこのコードは期待通りに動かないのだろう?」と頭を抱えたことがあるのではないでしょうか。そのようなとき、print()関数を使って変数の値を出力し、デバッグを行うのは一般的な手法です。しかし、複雑なコードや大規模なプロジェクトでは、print()だけでは限界があります。今回は、そのデバッグ手法を一歩進めるためのライブラリ「IceCream」とそ

この記事ですることを3行でPythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先にPython 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

PythonコードをWebAssemblyにコンパイルする「py2wasm」がWasmer社から発表された。WebAssembly版CPythonよりも約3倍高速だ。PythonコードをCPythonのAPIコールに変換するトランスパイラがベースになっている。WebAssemblyランタイムの開発と提供を行っているWasmer社は、PythonのコードをWebAssemblyバイナリにコンパイルする「Py2wasm」を発表しました。 Announcing py2wasm – A #Python to #WebAssembly compiler that speeds up by 3x yourPython apps!https://t.co/0v4YLZC7lY —Wasmer (@wasmerio) April 18, 2024WebAssembly版CPythonよりも3倍高速

NumPy 2.0.0の主要な変更点 皆さんもお世話になっているであろう科学計算ライブラリNumPyが、2006年以降初めてのメジャーアップデートを発表しました。そこで、変更点をざっくりとまとめてみました。以下は変更点の一部であり、それ以外については実際のドキュメントを参照してください。 免責事項:この記事は、NumPy 2.0.0の変更点について個人的な見解を述べたものであり、NumPyの開発チームや関係者の公式な見解を代表するものではありません。変更点の影響や対応方法については、必ず公式のリリースノートと移行ガイドを参照してください。また、この記事には不正確な情報が含まれている可能性があります。記事の内容を実際のプロジェクトに適用する前に、必ず公式ドキュメントで情報を確認してください。 概要 2006年以来の最初のメジャーリリース 破壊的な変更あり 多くの新機能とPython/C AP

2024東大理系数学第3問 連立漸化式を行列表示する (1)で答える,とりうる点を反時計回りに点$\mathrm{C}_0, \mathrm{C}_1, \ldots, \mathrm{C}_7$とおきます。 そして,$n$秒後に点$\mathrm{P}$ が $C_k$ にいる確率を $p_{n,k}$ とおくと,$n$秒後から$n+1$秒後への推移は次の行列で表されます。 \begin{pmatrix} p_{n+1,0}\\ p_{n+1,1}\\ p_{n+1,2}\\ p_{n+1,3}\\ p_{n+1,4}\\ p_{n+1,5}\\ p_{n+1,6}\\ p_{n+1,7} \end{pmatrix} =\frac{1}{6} \left( \begin{array}{cccccccc} 0 & 1 & 0 & 2 & 0 & 1 & 0 & 2 \\ 1 & 0 & 2

皆さんはPythonのpathlib使ってますか?私は非常によく使っています.例えば機械学習では学習の前に前処理を多く行うケースが非常に多いですが,このような時にpathlibを知っておくと便利です.pathlibは意外とPython 3.4(2014年~)からとそれなりに新しいため,古くからのPythonユーザーは os.pathの方をよく使っているかもしれません.ただpathlibは文字列ではなくPathクラスとして扱ってくれることで,例えばLinux/Windowsのパス表記の違いを吸収してくれたりします. pathlibとos.pathの比較は公式のpathlibドキュメントに譲るとして,私がよく使うpathlibのクラスを紹介します.また今回改めてドキュメントを眺めて知った便利関数も多いので,公式ドキュメントに目を通すのもオススメします. 今回は下記のような複数の素性の異なるデー
ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、本記事ではOSとしてmacOSを前提としています。 環境構築Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

はじめに 開発部の ikasat です。 皆さんは git, ssh,rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後からPython のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ
AI Labの山口です。こちらの記事ではPythonのために開発した2Dグラフィックスライブラリ、skia-pythonの紹介をします。 概要 Skia-pythonはオープンソースで開発している高機能な2Dグラフィックスライブラリで、解像度に依存しないベクター形式で描画処理を記述することが可能です。もともとChromiumプロジェクトで描画バックエンドとしてC++で開発されていたグラフィクスライブラリのSkiaをPythonから呼び出せるようにラップして実装されています。Linux、Mac、Windowsでクロスプラットフォーム動作し、CPUおよびGPUデバイスでレンダリングをすることができます。PNG/JPEG/WEBPなどのラスタ画像形式での入出力の他、PDF/SVG形式での出力もサポートしています。 Skia-pythonを開発した背景として、Python環境でのベクターグラフィッ

昨日は新潟県長岡市に行って、市役所の職員向けと、一般向けに二回の講演を行った。 市役所の職員からの質問事項をよく読むと、ChatGPTを闇雲に何にでも使おうとして苦戦している姿が見てとれた。 たとえばこんな感じだ。 ⚪︎時に東京駅につく新幹線を予約したいとChatGPTに言ったが、公式サイトをチェックしろと言われた 我々からすればその回答は当たり前なのだが、闇雲になんでもChatGPTでやろうとするとこうなってしまうという典型的な例だった。当たり前だが、その目的ならえきねっと一択だ。ChatGPTには限界がある。しかも低い。 だから通常はPluginと組み合わせたり、プログラムから呼び出したりするという「工夫」が必要になる。 GPTを使うプログラムを書くのはものすごく簡単だ。 たぶんプログラムの世界でも最も簡単な部類だろう。 たとえば僕がプログラムでGPTを使おうかなと思った時、こんなふ

Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に Modular社はPythonの高速なスーパーセットだと同社が位置づける新言語「Mojo」をローカル環境で実行可能にする、コンパイラなどのツール群を公開しました。 Mojo is now available for download locally to yourmachine! Beyond a compiler, the Mojo SDK includes a full set of developer and IDE tools that makeit easy tobuild anditerate on Mojo applications. Let’sbuild the future together!https://t.co/KxmLvsxx5e — Modula

For those of you who aren’t aware, the Mojo SDK was recently released, so I thought I would take the opportunity to start benchmarking someJulia code against Mojo. As a first test, I am calculating the Mandelbrot set using the code provided by Modular. This is myJulia implementation: using Plots const xn = 960 const yn = 960 const xmin = -2.0 const xmax = 0.6 const ymin = -1.5 const ymax = 1.5 c

Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要Pythonのテストライブラリといえばpytestが一般的です。Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ本記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者PythonやGitの基本的な使い方を理解している方を想定しているため、基本的な用語説明は省略しています。 環境エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

Python のコマンドラインパーサといえば、標準ライブラリに組み込まれている argparse が基本。 蛇足になるけど、バージョン 2.7 以前で使われていた optparse は将来的に廃止予定なので新たに使うことは避けた方が良い。 そして、今回紹介するPython のサードパーティ製コマンドラインパーサ Click は、既存のパッケージと比較すると最小限のコードで美しくコマンドラインインターフェースを実装できるように作られている。 どれくらい楽になるかといえば、もう argparse を使っている場合じゃないな、と思えるレベル。 Welcome to Click — Click Documentation (8.0.x) もくじ もくじ Click をインストールする 基本的な使い方 コマンドを定義する オプションを追加する 引数を追加する サブコマンドを作る オプションについて

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く