[フレーム]
1 - 40 件 / 232件
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
この記事は 2024 TSG Advent Calendar 3日目の記事です。昨日の記事は @__dAi00 さんの記事 AivisSpeechを使ったDiscordボットの作成 1AivisSpeechをGoogle Cloud Runにデプロイする でした。12/5 公開予定の続編も楽しみです。 今回は、初日に公開した以下の記事の副産物です。 import unicodedata # Python 3.12 まで 1000000000000.0 # Python 3.13 から 1000000.0 print(unicodedata.numeric("兆")) 大変だ。Python 3.13 から「5000 兆円」が 50 億円になってしまう(?) unicodedata.numeric メソッドと Unicode 例によって Unicode が関係してきます。前編でも触れたとおり、
Pythonがファイルを開くときなどに使われるエンコーディングはロケール(WindowsではANSIコードページ)依存でした。 Unixの世界ではどんどんUTF-8ロケールが一般的になっている一方、WindowsのANSIコードページはなかなかUTF-8になりません。 そのために、Unixユーザーが open(filepath) のようにエンコーディングを指定しないままUTF-8を仮定するコードを気軽に書いてしまって、Windowsユーザーがエラーで困るといった問題が発生します。 また、Windowsでもメモ帳(Notepad.exe)やVSCodeはすでにUTF-8をデフォルトのエンコーディングで使用しています。ANSIコードページがUTF-8になるのを待っていたらどんどん周りの環境から置いていかれ、レガシー化してしまいます。 Pythonがデフォルトで利用するエンコーディングをWind
この記事は刺身たんぽぽ同好会 Advent Calendar 2021[1] 8日目 の記事です. 7日目はげんしくんの 刺身たんぽぽ同好会を支えるDiscord鯖について - 最近のRecent です. 9日目はおのだ氏の Live2D #1 下準備(予定) です. はじめに Python3.10 がリリースされてから数ヶ月が経ちました.そこで,Python3.10 から入った新機能や,あまり知られていないが[2],知ってると便利な機能を紹介します.モダン Python を書いていきましょう. 型アノテーション 型アノテーション自体は Python3.5 からある機能[3]ですが,バージョンアップのたびに高機能になっています.Python3.10 では,| 演算子が型アノテーションに対しても使用できるようになりました. 使用例はこのような感じ
この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの
はじめに 📘 この記事は ラクスパートナーズ Advent Calendar 2023 の1日目の記事になります!! 本社の ラクス Advent Calendar 2023 の7日目にも参加予定なのでそちらもよろしくお願い致します🥳 長い間 Python3.7 環境のプロジェクトに携わっていましたが、この度 Python3.10~ 環境のプロジェクトに携わることになりました。 そこでこの機会に python3.8 以降の最新の型ヒントやコード品質向上のテクニックについて、改めて情報をキャッチアップしながらまとめていきたいと思います。 この記事の対象者 🎯 Python の型ヒントについて学び直したい方 Python3.8 以降の型ヒントについて理解を深めたい方 python のドメインモデルクラスについて理解を深めたい方 型ヒントを使用したことがないが、興味がある方 なぜ型ヒントを
Python 3.11では、パフォーマンスチューニングの一環として、Python関数呼び出しのインライン化 が行われました。既存のPythonインタープリタのしくみを大きく変更する変更ですので、簡単に解説しておきます。 先に書いておきますが、今回行われた「関数呼び出しのインライン化」は、C/C++などの inline のように、ユーザ定義関数を呼び出し元で展開してオーバヘッドを削減するものではありません。また、Schemeなどにある末尾再帰の最適化でもありません。 cevalループ¶Pythonインタープリタは、Python 3.11の新機能(その2) 特殊化適応的インタープリタ で解説したように、Pythonのソースコードをバイトコードへ変換し、順次実行します。このバイトコードを実行する関数はPythonインタープリタの心臓部であり、CPythonソースツリーのファイル Python/c
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
今年(2025年)10月にリリースされる予定のPython 3.14では新型のインタプリタが採用され、実行速度が最大で30%改善される見通しであることが分かりました。 テイルコールに基づく新型インタプリタ 現在開発中のPythonの最新バージョン「Python 3.14」では、新型インタプリタが採用される予定です。 Python 3.14のドキュメント「A new type of interpreter」では、この新型インタプリタについて次のように説明されています。文中の「CPython」とはPythonの標準実装のことで、C言語で実装されているため通称CPythonと呼ばれています。 A new type of interpreter based on tail calls has been added to CPython. For certain newer compilers, t
2018年新卒入社し、SOCにてインフラ管理を担当。その後、マルウェア解析や検証業務などに従事。2022年度からは、社内のSREチームにて兼務を開始。主な保持資格は、CISSP, OSCP, GREM, GXPN, RISS, CKA, CKSなど。バイナリを読むのが好きで、一番好きな命令はx86の0x90(NOP命令)。 はじめに 私は、業務でマルウェア解析のようなリバースエンジニアリングをしており、業務効率化のために自作ツールを作ることがあります。皆さんは自作のツールの設定ファイルに、どのようなファイル形式を利用していますか。昨今は、KubernetesやAnsibleなどで用いられるYAMLや、フロントエンド界隈で頻繁に利用されるJSONなどが多い印象です。そんな中、今回はTOMLと呼ばれるファイル形式の紹介をします。プログラミング言語Rustのパッケージ管理ファイルに利用されていた
門脇(@satoru_kadowaki)です。2025年2月の「Python Monthly Topics」は、Python 3.13でアップデートされた機能について紹介します。 ご存知のように、Python 3.13は2024年10月にリリースされ、多くの改善と新機能が追加されています。 What’s New In Python 3.13 (公式ドキュメント) 本記事では、具体的にどのような点がアップデートされているのか、主な機能をピックアップして紹介していきます。 新しい対話型インタプリタとエラーメッセージ 今回のリリースにおける最も大きな変更点の1つとして、新しい対話型インタプリタがあります。また、エラーメッセージはPython 3.10以降継続的に改善されており、バージョンが上がるごとにエラー内容が理解しやすくなり、プログラム修正が効率的に行えるよう進化してきました。 最初にこの2
はじめに みなさん。Pythonで型書いてますか?最近は型の重要性を再認識しているので、皆さんにもぜひPythonで型を書いて頂きたいと思ってこの記事を書きました。 注意事項として今回の記事では下記の事項については言及しません。 型チェックツールの導入方法(mypy,pyrightなど) 今回の内容は以前の書いた記事の補足内容となっていますので、以前の記事ももしよければ参照ください。 実践!!Python型入門(Type Hints) そもそもPythonでなぜ型を書くのか? Pythonは動的型付き言語なので、型を書かなくてもプログラムは動きます。型を書かないことで、コードの量は少なくなりますし、初学者にとっても習得しやすい言語となっていることはメリットかと思います。 ただし、ある程度の行数のコードを書く場合、プログラムを複数人でメンテナンスする場合、型がないと以下の様な問題が発生する。
Pythonに型ヒントが入ってからしばらく経ちます。型ヒントの立ち位置も、なんでもできるアノテーションとして導入されましたが、型ヒント以外の用途はあまり育たず、型ヒントが中心になり、PEPや仕様もそれに合わせて変化したり、より書きやすいように機能が追加されてきました。 本エントリーでは、Python 3.9時点での最新情報を元に、現在サポート中のPythonバージョン(3.6以上)との互換性の情報も織り交ぜながら、最新の型ヒントの書き方を紹介します。 本エントリーの執筆には、Pythonの型の有識者の@moriyoshi、@aodag、@tk0miya にアドバイスをもらいました。ありがとうございます。 環境構築Visual Studio CodeVisual Studio Codeの場合は、事前にどのインタプリタを利用するかを設定しておきます。その環境にインストールします。venvを使う
ネストしたコンテキストマネジャーの簡潔な記述 分かりやすくなったエラーメッセージ デバッグやプロファイリング用に提供される行番号がより正確なものに 構造的パターンマッチ ファイル操作などでエンコーディングを明示しなかった際にEncodingWarning警告クラスを送出するようにオプトイン可能 「|」演算子を使用したユニオン型の指定 パラメーター仕様変数 型エイリアス ユーザー定義の型ガード 本稿では、これらの新機能の中で新しく追加された構造的パターンマッチ(match〜case文)について見ていくことにする。なお、構造的パターンマッチについてはPEP 634、PEP 635、PEP 636で詳しく述べられている。 match〜case文の概要 match〜case文の構文を以下に示す。なお、「match」と「case」はソフトキーワードであり、構造的パターンマッチを行う文脈でのみキーワー
Python 3.11 までは、空文字でも64バイトのメモリを使用していました。(64bitプラットフォームの場合) Unicodeの内部表現のうち一番小さい PyASCIIObject 構造体が48バイトで、その構造体の後ろにASCII文字列が続きます。その文字列はNUL終端されているので、空文字列でも1バイト追加されて49バイトになります。 >>> sys.getsizeof("") 49 さらに小さいメモリブロックのアロケートをしているpymallocがメモリを(アライメントの関係で)16バイト単位で割り当てるので、49バイトのmallocでも64バイトが確保されてしまいます。 Python 3.12 からは、PyASCIIObject構造体から wchar_t* 表現をキャッシュするポインタが消え、40バイトになりました。それでASCIIで7文字までの文字列であれば48バイトに収ま
今年も、Pythonのメジャーリリースの季節がやってまいりました。2022年10月3日にリリース予定となっているPython 3.11の新機能を紹介します。 CPython 高速化計画¶Python 3.11で最大のニュースは、なんと言っても Faster CPython: CPython 高速化計画 が開始されたことでしょう。 CPython 高速化計画は、Mark Shannon氏が提案したプランに基づいてPythonの高速化を行うもので、Pythonを毎年50%高速化し、互換性を保ちつつ 4年間で5倍高速化する ことを目標としています。 この計画はMicrosoft社の出資を獲得し、Pythonの父であるGuido van Rossum氏も加わって開発が進められています。 ベンチマーク¶さて、CPython 高速化計画最初のリリースとなるPython 3.11では、どの程度の高速化が
先日公開した「PyCon JP 2021」1日目のカンファレンスレポートはいかがでしたでしょうか? 本レポートでは引き続き、2日目の様子をご紹介します。 PyCon JPは日本国内外のPythonユーザーが一堂に会し、互いに交流を深め、知識を分け合い、新たな可能性を見つけられる場所として毎年開催される国際カンファレンスです。 PyCon JP 2021は2021年10月15日〜16日のカンファレンスと2日間の会期で開催されました。 今回は16日に行われたカンファレンスの中から、注目セッションと感想について運営スタッフがレポートします。 Day2 Keynote:A Perfect match ―Mr. Brandt Bucher (nikkie) 2021年10月、PyCon JP 2021の少し前にリリースされたPython3.10。その目玉機能といえば、Structural Patte
ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan
Python Monthly Topics Python 3.14の新機能:asyncioタスク可視化機能を使ってみよう 福田(@JunyaFff)です。2025年9月の「Python Monthly Topics」では、Python 3.14で追加されるasyncioタスク可視化機能であるasyncio psコマンド、asyncio pstreeコマンドと、asyncio.print_call_graph()関数、asyncio.capture_call_graph()関数を紹介します。 はじめに さまざまな機能強化が予定されているPython 3.14の中で、今回筆者が注目するのはasyncioの新しい可視化ツールです。asyncio psコマンド、asyncio pstreeコマンドと、asyncio.print_call_graph()関数やasyncio.capture_ca
Pythonは昨年(2023年)8月、グローバルインタプリタロック(GIL)を解消する方向で開発を進めていくという方針を明らかにしています。 参考:Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現 グローバルインタプリタロックとはインタープリタ全体で1つのロックを持つことです。これによりシングルスレッドのプログラムにおいては細かなロック制御が不要となって速度の向上ができる一方、マルチスレッドの平行性は制限されるという欠点があります。 マルチスレッドが実験的実装 これまでPythonはグローバルインタプリタロックを採用してきましたが、今回のPython 3.13.0では新たな方針に沿って、初めて実験的にグローバルインタプリタロックをなくしてマルチスレッド処理を可能にしたフリースレッドモード(free-threaded mode)を実現したビルドが登場しました
はじめに pythonの関数に与える引数として特定の値のみを許容したいときはないでしょうか? そのようなときに、動的に引数の値をチェックして範囲外のものを除外するアサーションや、Enumを用いてとりうる値を絞ることが考えられます。 ですが、前者は動的な値検査しか行えず、後者についてはAPIの引数の型をEnumに変更する必要があり、Enumが既存のAPIをオーバーロードしたときの引数の型として使えるとは限らないです。1 このような引数の値のチェックに使える手段として、python3.8から使えるようになっているLiteral typesがあります。 Literal types は型として宣言することで、関数の引数等に対して特定の型を要求するのと同時に、特定の値を持つことも要求できます。 例 次のようなコードの例を考えてみます。 target_fruit = ['apple', 'banana
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? みなさんこんにちは!私は株式会社ulusageの、技術ブログ生成AIです!これからなるべく鮮度の高い情報や、ためになるようなTipsを展開していきます。よろしくお願いします!(AIによる自動記事生成を行なっています。システムフローについてなど、この仕組みに興味あれば、要望が一定あり次第、別途記事を書きます!) Python 3.13がAIと機械学習の世界を変える理由 Python 3.13がついにリリースされ、数多くの重要なアップデートが盛り込まれています。機械学習、データサイエンス、そしてAIの分野で最も広く使用されているプログラミン
Python 2.7が削除される「macOS 12.3 Monterey」では、Python 3も同梱されていないそうです。詳細は以下から。 Appleは現地時間2022年01月27日、開発者向けにmacOS Montereyの3rdアップデートとなる「macOS 12.3 Monterey」のBeta 1を公開し、このアップデートで、2020年にEOL(End of Life)となった「Python 2.7」を削除すると発表しましたが、 Python Deprecations Python 2.7 was removed from macOS in this update. Developers should use Python 3 or an alternative language instead. (39795874) macOS Monterey 12.3 Beta Relea
Pythonにはコマンドライン引数をパースする標準モジュールがgetopt・optparse・argparseの3種類あります。 このうちoptparseは14年も前の2011年02月20日にリリースされた3.2から非推奨になっています。 そしてgetoptは先日2024年10月07日にリリースされた3.13で非推奨になりました。 従って、今後はargparseに一本化されます。 となるはずだったのですが、一本化されるどころか逆に3.14でoptparse・getoptの非推奨が外されました。 すなわち、argparse・optparse・getoptいずれも同列で使用してかまわない機能であるということになりました。 optparseなんか14年経ってから復活です。 どうしてこんなことが起きたのでしょう? ソフトな非推奨 Pythonの非推奨には通常のDeprecationとSoft Depr
Pythonの文字列やバイト列に対するハッシュアルゴリズムは、HashDoS対策としてPython 3.4から SipHash24が使われていました。 その後、ラウンド数を減らしたSipHash13でも十分に安全だとして2015年にRustが、2016年にRubyが、SipHash24からSipHash13への切り替えを行いました。 https://github.com/rust-lang/rust/issues/29754 https://bugs.ruby-lang.org/issues/13017 Python でもSipHash13に切り替えようという提案を2017年に行っていたのですが、実装した人がなかなかプルリクエストを作ってくれず、またPythonは文字列がimmutableでハッシュ値をキャッシュしているためにそこまで大きなインパクトがなかったこともあり、ずっと放置されてい
鈴木たかのりです。今月のPython Monthly Topicsでは、Python 3.10から導入されたBetter error messagesについて紹介します。Better error messagesがどういったものであるかの紹介と、どのようにこのエラーメッセージが出力されているか、Python内部の処理についても触れようと思います。 Better error messagesとは Python 3.10からBetter error messagesという機能が追加されました。この機能は名前のとおり「エラーメッセージを改善」するものです。「エラーメッセージの改善」により以前よりもわかりやすいエラーメッセージが出力され、ユーザーがエラーの意味に気づきやすくなりました。 例として、以下のようなリストの閉じカッコ(])を忘れたコードを実行し、出力されるエラーメッセージを見比べてみま
門脇(@satoru_kadowaki)です。11月の「Python Monthly Topics」は、Python 3.12の新機能であるsub-interpretersについて紹介します。 2023年10月2日に「 Python 3.12.0 」がリリースされました。今回も気になる新機能が多く、本記事で紹介するsub-interpretersもPythonで並列処理を行うための新機能です。 Python 3.12の新機能については以下のリンクを参照してください。 What’s New In Python 3.12 -Python 3.12.0 Documentation 本記事ではPythonにおける並列実行のこれまでと、sub-interpretersが現状どのように使用できるかについて説明します。 なお、執筆にあたり先日開催されたPyCon APAC 2023において、sub-in
Python 3.11 Performance Benchmarks Are Looking Fantastic Written by Michael Larabel in Software on 6 June 2022 at 02:00 PM EDT. Page 1 of 4. 64 Comments. Last month Python 3.11 Beta 1 was released as their first preview of this major update to the Python programming language. Besides new language features and other improvements, Python 3.11 performance is looking fantastic with very nice performan
プログラミング言語「Python」を開発するPython Software Foundationは2022年10月24日(米国時間)、Pythonの最新のメジャー安定版リリース「Python 3.11.0」を公開した。 Python 3.11.0では多くの新機能が導入され、多くの最適化が施されている。Python Software Foundationは主要な新機能と変更点を、一般的な変更点と、型付けおよび型付け言語の変更点に大別して紹介している。なお、以下の「PEP」で始まる番号は、Pythonの拡張提案を記した文書の通し番号を指す。PEPは、Python Enhancement Proposalの略。また、「gh-」で始まる番号は、GitHubのプルリクエスト番号を指す。 一般的な変更点 PEP 657:トレースバックにエラーの場所の詳細が追加 Cpythonインタープリタが表示するト
Happy New Year everyone! In late December 2023 (Christmas Day to be precise), CPython core developer Brandt Bucher submitted a little pull-request to the Python 3.13 branch adding a JIT compiler. This change, once accepted would be one of the biggest changes to the CPython Interpreter since the Specializing Adaptive Interpreter added in Python 3.11 (which was also from Brandt along with Mark Shann
Python Monthly Topics Python 3.11の新機能:型チェッカーでロジックの間違いを検出できるtyping.assert_never関数とtyping.Never型 筒井@ryu22eです。2023年5月の「Python Monthly Topics」のテーマは、Python 3.11からtypingモジュールに追加された「assert_never関数、Never型」です。 みなさんは「この行には仕様上絶対に到達しないはず」というコードを書いたことはありますか? そして、バグが原因で到達しないはずの行に到達してしまった経験はありませんか? assert_never関数、Never型にはこのようなミスを型チェッカー(Mypy、Pyrightなど)で検出してくれる便利な機能があります。 本記事では、サンプルコードを交えて実際にassert_never関数、Never型が
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Python Software Foundation(PSF)が人気プログラミング言語「Python」の3つの新バージョンをリリースした。PSFの2022年の幕開けは波乱含みとなっているが、「Core Python」の開発者たちは、「Python 3.10」を前バージョンの2倍に高速化するというGuido van Rossum氏(Pythonの生みの親)の目標の達成に向けて、前進を続けている。 「予想よりも複雑」だったコード署名証明書の更新など、さまざまな停滞があったものの、米国時間1月17日、Python 3.10と「Python 3.9」、プレビュー版である「Python 3.11」シリーズの新しいバージョンがリリースされた。バージ
Pythonソフトウェア財団(Python Software Foundation)は現地時間4月4日、「Python 3.9」の4回目のメンテナンスリリース「Python 3.9.4」を発表した。 「Python 3.9.4」は「Python 3.9.3」で導入された意図しないABI非互換性に対処するHotfixリリースと位置づける。Pythonソフトウェア財団はすべてのユーザーにアップグレードを強く推奨している。 そのほか、詳細はニュースリリース(英語)まで。 >>ニュースリリース(英語) Pythonが学べるサイトやコンテンツは?Ledge.ai編集部では、Pythonについて、機械学習に用いられる理由やおすすめのサイト・コンテンツなどを解説している。気になる人は、以下の記事をチェックしてほしい。
September 2021 Summary: Python 3.10, which is due out in early October 2021, will include a large new language feature called structural pattern matching. This article is a critical but (hopefully) informative presentation of the feature, with examples based on real-world code. Go to: What it is | Where it shines | My code | Other projects | Problems | Wrapping up At a recent local Python meetup,
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く