タグ

pythonに関するrmatsuokaのブックマーク (15)

  • Latency in Asynchronous Python

    This week I was debugging a misbehaving Python program that makes significant use of Python’s asyncio. The program would eventually take very long periods of time to respond to network requests. My first suspicion was a CPU-heavy coroutine hogging the thread, preventing the socket coroutines from running, but an inspection with pdb showed this wasn’t the case. Instead, the program’s author had mad

  • Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging

    PyCon JP 2021 登壇資料: https://2021.pycon.jp/time-table/?id=272259

    Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging
  • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

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

    Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
  • PythonでOptional型の型ヒントは Optional[X] と X | None 、どちらがいいのでしょう? - nikkie-ftnextの日記

    今の私の結論を言うと、好みです。 Union[X, None] という3択目もありますが、好みだと思います。 はじめに ミリシタの馬場このみさん1もよろしくね、nikkieです。 表題の件について、綴っていきます。 多少のただし書きを加えていますが、要は「好みです」としか書いていません。 お急ぎの方は好きな書き方を使ってください。 目次 はじめに 目次 PythonでUnion型の型ヒント Optional型は、NoneとのUnion Optional型、どれで書く? PyCon JP 2021より nikkieの見解 ??「one obvious wayを志向するPythonなのに、Optional型の型ヒントは複数あるんですか?」 メーリングリストの議論を追う Guido氏 余談:Inadaさんの指摘 終わりに PythonでUnion型の型ヒント Python 3.10で動きがありま

    PythonでOptional型の型ヒントは Optional[X] と X | None 、どちらがいいのでしょう? - nikkie-ftnextの日記
  • 2024年のPythonプログラミング - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

    2024年のPythonプログラミング - Uzabase for Engineers
  • 【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog

    ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan

    【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog
  • GitHub - pypa/pipx: Install and Run Python Applications in Isolated Environments

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - pypa/pipx: Install and Run Python Applications in Isolated Environments
  • Python パッケージングの標準を知ろう

    こんにちは、CET チームの田村真一です。リクルートライフスタイル Advent Calendar 2019 最終日の記事をお届けします。 記事では Python のパッケージングに焦点を当て、2019年末時点で ライブラリのパッケージングについて 標準がどう定められているのか を紹介します。 逆に言うと アプリケーションの依存管理の話 ベストプラクティスや便利なツールの紹介 Pipenv と Poetry どちらを使うべきか論争 は一切しませんのでご了承ください。 そもそも「標準」とは さて、題に入る前に Python における「標準」とは何なのか確認しておきましょう。 まず言語仕様に関していえば、C や Ruby のような国際規格に則った「仕様」は存在しません。 かわりに language reference と CPython の実装 がデファクトスタンダードとなっています。 い

    Python パッケージングの標準を知ろう
  • pythonで複数のhttp requestを同時に投げる方法(requests)について - podhmo's diary

    時折、ちょっとしたスピードアップにhttp(https) requestを並列で投げたい場合がある。aiohttpなどを使っても良いが既存のコードを書き換えるのもめんどくさい。そのようなときの方法のメモ。 concurrent.futuresを使う方法も考えられるけれど。今回はasyncioだけに絞った話。 いわゆるpythonでのhttp requestのデファクトスタンダードはrequestsだと思う。ところでこのrequestsはnon blockingではないのでasyncio上で使おうとすると処理がblockしてしまう。run_in_executor()を使うと処理を外部の環境に移せる。 試しに、run_in_executor()を使ってみよう。動作確認自体は直接のhttp requestではなく、requestを模したfakeの関数を使って行う。以下の様な関数。この処理はtim

    pythonで複数のhttp requestを同時に投げる方法(requests)について - podhmo's diary
  • Python 3.10から導入されたBetter error messagesの深掘り | gihyo.jp

    鈴木たかのりです。今月のPython Monthly Topicsでは、Python 3.10から導入されたBetter error messagesについて紹介します。Better error messagesがどういったものであるかの紹介と、どのようにこのエラーメッセージが出力されているか、Python内部の処理についても触れようと思います。 Better error messagesとは Python 3.10からBetter error messagesという機能が追加されました。この機能は名前のとおり「エラーメッセージを改善」するものです。「⁠エラーメッセージの改善」により以前よりもわかりやすいエラーメッセージが出力され、ユーザーがエラーの意味に気づきやすくなりました。 例として、以下のようなリストの閉じカッコ(])を忘れたコードを実行し、出力されるエラーメッセージを見比べてみま

    Python 3.10から導入されたBetter error messagesの深掘り | gihyo.jp
  • 現場のスクレイピング - Qiita

    ツールを準備する Python 3.10.6 ダウンロード先:https://www.python.org/downloads/ インストールするときの注意点としては Add Python 3.x to PATH のチェックを入れ忘れないこと ChromeDriver ダウンロード先:https://sites.google.com/chromium.org/driver/downloads Google ChromeChromeDriver のバージョンを合わせる必要があるので まずは Google Chrome のバージョンを確認してください。 確認する方法がいくつかありますが、得られる結果は同じです。 Google Chromeの右上の3点リーダーから、ヘルプ > Google Chrome について Google Chromeのアドレスバーに以下を入力して確認する chrom

    現場のスクレイピング - Qiita
  • pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator

    - はじめに - Pythonのパッケージ管理ツールは、長らく乱世にあると言える。 特にpip、pipenv、poetryというツールの登場シーン前後では、多くの変革がもたらされた。 記事は、Pythonパッケージ管理ツールであるpip、pipenv、poetryの3つに着目し、それぞれのツールに対してフラットな背景、技術的な説明を示しながら、所属企業内にてpoetry移行大臣として1年活動した上での経験、移行の意図について綴り、今後のPythonパッケージ管理の展望について妄想するものである。 注意:記事はPythonパッケージ管理のベストプラクティスを主張する記事ではありません。背景を理解し自らの開発環境や状態に応じて適切に技術選定できるソフトウェアエンジニアこそ良いソフトウェアエンジニアであると筆者は考えています。 重要なポイントのみ把握したい場合は、各章の最後のまとめを読んで頂

    pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
  • How to serve static files in Flask

    So this is embarrassing. I've got an application that I threw together in Flask and for now it is just serving up a single static HTML page with some links to CSS and JS. And I can't find where in the documentation Flask describes returning static files. Yes, I could use render_template but I know the data is not templatized. I'd have thought send_file or url_for was the right thing, but I could n

    How to serve static files in Flask
  • Python互換の静的型付け言語「Erg」

    承前 Ergは私が数年前から開発を始め、つい一昨日公開したばかりのプログラミング言語です。 のはずですが、 早速、qnighyさんに捕捉していただきました。ありがとうございます。 この記事ではそのErgがどのような言語なのかざっくりと解説していきたいと思います。なお、紹介した機能の一部は未実装です。実装途中の機能を含むコードには*を、完全に未実装の機能を含むコードには**をつけておきます。 はじめに Pythonは概ね素晴らしい言語です。 オフサイドルールを世に知らしめた(?)、その可読性の高い文法。Numpy, SciPyを始めとする機械学習、科学技術計算用の膨大なライブラリ。 しかしPythonにもいくつかの弱点が存在します。 まず、動的型付け であること。それ自体は弱点というより良し悪しなのですが、明らかに動的型付けでは手に余るPythonプロジェクトが世に溢れています。 次に、一貫

    Python互換の静的型付け言語「Erg」
  • ArgumentParserの使い方を簡単にまとめた - Qiita

    はじめに Pythonの実行時にコマンドライン引数を取りたいときは,ArgumentParser (argparse)を使うと便利です。 様々な形式で引数を指定することができます。 初めてargparseを使おうとして調べていた時にいろいろな記事を読みましたが,細かいオプションまで解説している記事が多く,やりたいことの方法がすぐに分からなかった記憶があります。 そこで必要最低限な内容に絞り,読んですぐに使えるような記事を書きたいと思います。 ArgumentParserとは? プログラム実行時にコマンドラインで引数を受け取る処理を簡単に実装できる標準ライブラリです。 ArgumentParserを使うと

    ArgumentParserの使い方を簡単にまとめた - Qiita
    rmatsuoka
    rmatsuoka 2022/07/14
    argparseは多くのオプションがあり、長いドキュメントを読むのが大変。このブログは標準的なコマンドを作るための使い方が過不足なくまとまっている。たいへん助かっている。
  • 1