タグ

Pythonに関するasiamothのブックマーク (33)

  • Rye & uv 追っかけ

    Rye の作者が↓のような投稿をしており、uv が気になったので個人のメモとして追っかけをする。 uv を開発しているのは最近話題の Ruff を開発している Astral。 UPDATE 20240226: Rye が astral_sh 管理化に置かれた Rye で uv を有効化するにはこれ サポートされたのは https://github.com/mitsuhiko/rye/releases/tag/0.24.0 からなので、とりあえず rye self update して以下のコマンドで有効化すればOK

    Rye & uv 追っかけ
    asiamoth
    asiamoth 2024/02/17
    Windows 10環境だとryeは何だったかの不具合が出て、いまはPDMを愛用している。uvはWin非対応と最後に書いてあったので安心してPDMを推せる。
  • Reddit - Dive into anything

    asiamoth
    asiamoth 2023/11/07
    プロジェクトのとくに初期段階では、Rustは生産性が低い。最初はPythonで作り、パフォーマンスが必要な部分をRustで置き換える、という提案。型を重視するならTypeScriptの方が良い。
  • 久しぶりのPython環境をRyeで整える

    はじめに よくAWS仕事をするので、開発環境をAWS Cloud9(以下Cloud9)で用意することがある。 IAM Roleが使えるのでAWS内の開発は便利なのだが、そのままPythonで開発しようとすると、2023/05/27時点でこう表示されるので、ちゃんと開発環境作らなくちゃね。という気持ちになる。 久々にLangChainやLlamaIndexやらで盛り上がってるし、Python環境でも作るか! と思い立った筆者。じゃあ何を準備すればいいんだっけ、と軽く調べただけでもpip, venv, pyenv, pipenv, poetryなどの選択肢がありすぎて、もうこの時点でげんなりする。Pythonのパッケージマネージャの周辺事情はずっと混沌としていたんだった…… ただ最近は比較的よさげなプロジェクトのRyeがあるので、今回はこれで環境を整えてみる。 Ryeとは 上で書いたような「

    久しぶりのPython環境をRyeで整える
    asiamoth
    asiamoth 2023/05/30
    自分の場合、今年の頭あたりに「Pythonの環境構築は PDM + PEP 582 !!😤」と決めたばかりなのに……。次から次へと新しいツールが出るなぁ。「The Zen of Python」とは何だったのか。
  • Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita

    初めに 記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 詳細 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12.0a6のものに差し替えました。 修正 (2023/05/27) 「list(generator) 使えよ」とのご指摘があったので 単純な例の内包表記を[i for i in range(ELEMENTS)]からlist(range(ELEMENTS))に修正しました。 ご指摘ありがとうございます。 追記 (2023/05/28) Twitterでの反応に対しての追記を行いました。

    Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
    asiamoth
    asiamoth 2023/05/27
    だいたい実感と合った結論。forループ抜けたら不要なtmp変数が散見する場合くらいで良いよね、内容記法。が、ちゃんとコードがあってベンチマークを計ってあると安心する。
  • Pythonについて思うこと | 雑記帳

    みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

    asiamoth
    asiamoth 2023/05/24
    うーん、ここまで面倒であれば──と思ったら、“例えば、Pythonを避ける”が出てきたなw 機械学習関連など、どうしても代替品が見つからない場合を除けば、別言語の方が自由だよね。
  • GitHub - QuivrHQ/quivr: Your GenAI Second Brain 🧠 A personal productivity assistant (RAG) ⚡️🤖 Chat with your docs (PDF, CSV, ...) & apps using Langchain, GPT 3.5 / 4 turbo, Private, Anthropic, VertexAI, Ollama, LLMs, Groq that you can share with users !

    Your GenAI Second Brain 🧠 A personal productivity assistant (RAG) ⚡️🤖 Chat with your docs (PDF, CSV, ...) & apps using Langchain, GPT 3.5 / 4 turbo, Private, Anthropic, VertexAI, Ollama, LLMs, Groq that you can share with users ! Local & Private alternative to OpenAI GPTs & ChatGPT powered by retrieval-augmented generation.

    GitHub - QuivrHQ/quivr: Your GenAI Second Brain 🧠 A personal productivity assistant (RAG) ⚡️🤖 Chat with your docs (PDF, CSV, ...) & apps using Langchain, GPT 3.5 / 4 turbo, Private, Anthropic, VertexAI, Ollama, LLMs, Groq that you can share with users !
    asiamoth
    asiamoth 2023/05/21
    ローカル・ファイル(動画, 音声, パワポ, PDF, MD, ...)やURLからデータを取り込み、ChatGPT 3.5/4 に投げられる。動作にはDockerが必要。Python製。
  • Pythonのfindメソッドで部分一致文字を避けて文字列の位置を取得したい - Qiita

    前書き リスト内にある各文字列の開始位置と終了位置を取りたい!ってときにfindメソッドを用いたのですが、部分的に一致するものが文章の先にきてしまうと正確な位置ではない値が取れてしまいました。 そこで自分なりに改善してみた結果を以下に書いておきます。 (記事にするようなことでもないですが、アウトプットの癖をつけるためにも、自分の気づきになったことはどんなに小さなことでも残していこうかなと) 問題となった動作 例えば、以下のような文章から「カモシカ」の後に続く、「シカ」という語句の位置を取りたい場合

    Pythonのfindメソッドで部分一致文字を避けて文字列の位置を取得したい - Qiita
    asiamoth
    asiamoth 2023/05/14
    条件が謎だが、“「カモシカ」の後に続く、「シカ」という語句の位置を取りたい場合”なら正規表現を使うかなー。 `/カモシカ.+?(シカ)/`
  • Pythonのパッケージ管理ベストプラクティス - Qiita

    ※おすすめの基準には上記「導入の手軽さ」「学習の手軽さ」「パッケージ依存関係の解決」以外に、「対象OSとの相性」「検索による情報の見つかりやすさ」を考慮しています。詳しくは後述します 筆者の主観が入りますが、概ね以下のフローチャートのように選択すると良いかと思います (詳しくは後述します) なお、実用上ハマりやすいプロキシ環境での使用方法についても、以下の記事に別途まとめました 必要知識 ここから先は、Pythonのパッケージ管理が何をやっているかを解説します。 「御託はいいから早く使いたい!」という方は、「3種類の方法比較」の項目まで飛んでください まず、一般的に「パッケージ管理」と呼ばれている要素を、以下の4つの機能に分割して考える必要があります。 A. インタプリタ切替 (Pythonのバージョンを切り替える) B. パッケージ切替 (パッケージのバージョンを切り替える) C. パッ

    Pythonのパッケージ管理ベストプラクティス - Qiita
    asiamoth
    asiamoth 2023/03/07
    venvかpoetryあたりで満足して閉じようとしている みなさんへ「PDM+PEP 582が今後のトレンドだよ^^」とか惑わしておく。とくに複数プロジェクトで同じモジュールを使っている場合に便利。
  • 第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp

    では、なぜこのようなことが起きてしまうのでしょうか。具体的な脆弱性の解説に移る前に、まずはReDoSのしくみについて説明します。 ReDoSのしくみ ReDosの脆弱性を理解するためには、そもそも正規表現によるマッチングを行う処理系である、正規表現エンジンのしくみについて知る必要があります。 正規表現エンジンの概要 正規表現エンジンとは、簡単に言えば「ユーザーから受け取った文字列(入力文字列)が、正規表現で表される文字列と合致するか否か」を判定するプログラムです。そしてこのプログラムのキモとなる「正規表現文字列の解釈」と「入力文字列が合致するか否かを判定する部分」は、「⁠有限オートマトン」を利用して実現しています。 具体的には、正規表現の文字列を有限オートマトンに変換後、入力文字列を有限オートマトンの入力として与え、文字列中に正規表現にマッチする部分があるか否かを、有限オートマトンの状態を

    第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp
    asiamoth
    asiamoth 2022/11/21
    ReDOSの話題って、毎回毎回「正規表現が必要ない箇所に正規表現を使うな」で済むよね。今回は まだ正規表現でゴリ押ししてて苦笑。たとえばカンマをsplitすれば良いだけでは。
  • Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です

    2022-09-09改訂: gcc バージョンが古すぎたのと、C が内部計測でなかった点を改め計測しなおしました。結果、Rust は C より速くはなくなりました。紛らわしいことで、ごめんなさい。また、gcc のバージョンアップに伴い、Python および Ruby についてはビルドと計測をしなおしたので、これらも少し速い値に変わっています。この点もどうぞあしからず。 2022-09-10追記:ご要望のあった Python numba.njit 使用時と Go の結果を追加しました。PHP は JIT 有効化が面倒だったので断念しました^^; 2022-09-10追記2:C の計測で clock() を使うのはフェアではないという指摘がありましたので、念のため clock_gettime() を使用したコードに差し替えました。結果に大きな差はありません。 2022-09-10追記3:PHP

    Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です
    asiamoth
    asiamoth 2022/09/09
    こういうベンチマーク・テストって、「Python遅すぎワロタw」「JavaScriptって意外と早いよなー」「Rustめっっっちゃ早いやん!」「……(Juliaは語られず)」って毎回なるよね(偏見)。
  • Python tooling could be much, much faster

    N.B. Ruff now supports over 200 lint rules and is used in major open-source projects like FastAPI, Bokeh, Zulip, and Pydantic. It’s also about ~50% faster than the benchmarks advertised in this blog post. Try it today! Over the past few years, there’s been a mindset shift in JavaScript ecosystem, best summarized as: “our tools should be extremely fast”. As projects grew in complexity, and builds s

    asiamoth
    asiamoth 2022/09/04
    Ruff使っているが嘘みたいに早い! ちゃんとファイル読んでるのか? とProcess Monitorで何度も確認したほど。¶TSもサポートしてるの!? と思ったら“TypeScript-like file watching”だったw
  • Pydantic - IntelliJ IDEs Plugin | Marketplace

    asiamoth
    asiamoth 2022/01/05
    Pydanticは便利だけどPycharm(IntelliJ)で補完が効かないから、dataclass作って別でバリデーションしてた。でも、この拡張を入れたら補完が効く! ありがとうありがとう😭🙏
  • ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita

    はじめに これらの横棒、コンピュータにとっては全て違うのですが 見分けがつくでしょうか? -˗ᅳ᭸‐‑‒–—―⁃⁻−▬─━➖ーㅡ﹘﹣-ー𐄐𐆑 郵便番号、住所、電話番号など、横棒が使われているデータを扱うとき、 人が入力したデータや購入したデータであると、同じ記号が使われていないことはよくあることです。 090-1234-5678 090᭸1234᭸5678 090‑1234‑5678 090−1234−5678 これらの電話番号の文字列も phone_no_list = ['090-1234-5678', '090᭸1234᭸5678', '090‑1234‑5678', '090−1234−5678'] # 文字をUnicodeコードポイントに変換 for n in phone_no_list: # 文字列の4番目の横棒の文字コードを見てみる print(n[3], ord(n[3]

    ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita
    asiamoth
    asiamoth 2021/11/03
    横棒記号の正規表現をわざわざ `|` で一つ一つ繋いでいるけど、全体を `[]` で囲めば済む話やで……(この手の記事で紀元前から ずっと同じこと書いてる)(あ、コメントで指摘されてた)。
  • 【2021】モダンなPython開発環境の紹介 - Qiita

    📌 はじめに Pythonで開発を行うにあたり、リンタやフォーマッタ、パッケージマネージャ等のツールの選定は非常に重要な問題です。一方で歴史的な経緯もあり、沢山の選択肢から何を選ぶべきか情報がまとまっていないように感じました。この記事では2021年9月時点でモダンと言えるであろう開発環境を紹介します。基的にはシェアが高いこと、著名なパッケージで使用されていることを主な選定理由としており、また特定のエディタに依存しないことを前提とします。 記事で紹介する内容は一つのテンプレートに近く、必要に応じてカスタマイズするもよし、そのまま使ってもよし、として参考になればと思います。(CI/CDについてはPythonとは独立した問題なので触れません。またドキュメント生成はSphinxを推しますが、必須ではないので今回は割愛します。) 📄 要約 "モダン"な開発環境を箇条で列挙すると下記の通りです

    【2021】モダンなPython開発環境の紹介 - Qiita
    asiamoth
    asiamoth 2021/09/29
    2021年にもなって まだPythonの開発環境の話題が上がるのか……。それでは一曲、聴いていただきましょう。「それPyCharmで(だいたい全部)できるよ!」(冗談抜きで まずIDEを探そう)。
  • 「Python」で“スキャン擦り抜けマルウェア”の開発が容易に? 判明した問題は

    関連キーワード セキュリティ 最新の研究によると、プログラミング言語「Python」向け開発ツールとして広く普及している「PyInstaller」は、強力なマルウェア開発ツールとなる恐れがある。PyInstallerは、開発者がPythonで記述したソースコードを、各種OS向けの実行可能ファイルに変換するパッケージツールだ。 「PyInstallerはペイロード(マルウェアの実行を可能にするプログラム)の開発に使用できる」。ギリシャのピレウス大学(University of Piraeus)の研究チームは、2021年5月初めに発表した研究論文でこう述べた。PyInstallerで開発可能なペイロードは、主要なマルウェア対策ツールのスキャンを擦り抜け、悪意ある動作を実行することが可能だという。 併せて読みたいお薦め記事 「Python」についてもっと詳しく Java使いでも「R」「Pytho

    「Python」で“スキャン擦り抜けマルウェア”の開発が容易に? 判明した問題は
    asiamoth
    asiamoth 2021/06/08
    いつもの「Winnyと包丁の話」みたいな感じ? セキュリティ・ソフトがザルなだけ、という気もする。
  • Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus) - Attsun blog

    Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus) ウェブAPIの作成など、外部からやってくるデータを安全に捌く上で、スキーマ定義とバリデーションは非常に重要です。 また、特にPythonのような動的型付け言語において、内部でもレイヤをまたぐ場合はきちんと定義されたデータモデルを利用することで、知らない間にデータモデルが変わっていた、というようなケースを防ぐことができます。 Pythonには標準でスキーマバリデーションライブラリがないため3rdパーティのものを使うことになりますが、様々なライブラリがあるので比較してみました。 比較対象のライブラリ概要※Pythonバージョンは3.9.0を利用します。 lib                    versionGithub Star (2020/1/5)memo

    asiamoth
    asiamoth 2021/01/18
    わかりやすくて素晴らしいまとめ!¶個人開発で何となくcerberusを使っていたが“あまりこれを使うシーンは思い浮かばない”とのことで ぴえん🥺 pydantic勉強しよ!
  • 今時のPythonはこう書く2020 - Qiita

    はじめに システム作ってるとかライブラリ作ってるみたいなある程度Pythonを綺麗に1書くことが求められる方々に向けた記事です。 (機械学習系のライブラリを使うためにPython書いてる方とか、初学者の方にはちょっとあわないかも知れません) 綺麗に書くための作法の難しさって共有が面倒なところだと思うんですよね。その書き方は間違いじゃない、間違いじゃないけどもっといい書き方があるぞみたいなやつってなかなか指摘し辛いですし、じゃあ1人に対してレビューしたら他のメンバーにはどう伝える?そもそも伝える必要?俺の工数は?みたいになりがちです。 一番いいのはこういう時はこう書く!みたいなドキュメントを作って「ドキュメント違反です」ってレビューをしてあげることなんですが、まーそれもそれで超面倒じゃないですか。なのでこの記事がそのドキュメントの代わり、とまではいかなくとも礎くらいになればいいなと思って書き

    今時のPythonはこう書く2020 - Qiita
    asiamoth
    asiamoth 2020/12/06
    “Pythonを綺麗に書くことが求められる方々に向けた記事です”→「型を使いたいなら他の言語を使え!」はてブくんさぁ……。¶個人制作で型を使っている。新たな知見が得られて良い。
  • AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita

    記事では、データサイエンティスト、AIエンジニアの方がPythonでプログラムを実装する際に気をつけたいポイント、コツ、ノウハウを私なりにまとめています。 AIエンジニア向け記事シリーズの一覧 その1. AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ(記事) その2. AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ 2020年4月に書籍を、出版しました。 【書籍】 AIエンジニアを目指す人のための機械学習入門 実装しながらアルゴリズムの流れを学ぶ(電通国際情報サービス 清水琢也、小川雄太郎 、技術評論社) https://www.amazon.co.jp/dp/4297112094/ 投稿は、上記の書籍に書ききれなかった 「AIエンジニアが、Pythonでプログラムを実装する際に気をつけたいことのまとめ」 です。 記事の内容は、あくまで筆

    AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ - Qiita
    asiamoth
    asiamoth 2020/05/14
    なるほど、「Pycharmインストールしてエラー・警告オプション全部チェック!」か、参考になりますね!(この手の記事の98割はコレでおk)
  • Pythonの文字列が標準でf文字列になる(かも) - Qiita

    はじめに Python言語サミット2020が4月の15日、16日の2日間で開かれました。これはPython実装の開発者(家のCPythonに加えてPyPyなども)が集まる会議で、単にプレゼンし合う場というよりは言語体や標準ライブラリの現状や今後に関する議論をして合意を目指すという会議とのこと。 今年はコロナウイルス蔓延の影響で、ご多分に漏れずオンライン開催となったそうですが、2日間の議題を見るとなかなか興味深いものが並んでいます。 全ての文字列をf文字列にする CPythonのパーサーをPEGベースの物にする (C)Pythonの仮想マシンの形式仕様記述 実装非依存のC言語拡張API CPythonのドキュメンテーション保守の変革 ライトニングトーク pip, PyPI そしてパッケージングに今後何を求める? 「マルチコアPythonプロジェクトの失敗を振り返る Pythonの型導入

    Pythonの文字列が標準でf文字列になる(かも) - Qiita
    asiamoth
    asiamoth 2020/05/06
    いっそのこと、ダブル・クォートで囲むかシングル・クォートで囲むかで使い分ければ良いのでは(Perl脳)。
  • あの名著の流れをくむ入門書「こんにちはPython」、Amazon.co.jpでベストセラー1位をキープ中【やじうまWatch】

    あの名著の流れをくむ入門書「こんにちはPython」、Amazon.co.jpでベストセラー1位をキープ中【やじうまWatch】
    asiamoth
    asiamoth 2020/04/04
    なんたって元が『こんにちはマイコン』(持ってたw)だからね。「こんにちはGo言語」「こんにちはジャバスクリプト」「こんにちはBrainf*ck」というわけには いかなかったんだろうなー。