はじめに 非同期処理のことから知らない人向けにPythonくらいしかろくに知らない人間が書きました。せっかくキーワードが文法に組み込まれたんだから理解したいじゃんか! asyncioモジュールを使うための基本的な概念が理解できるようになってるはず、多分。 環境としては Python3.5 以上を想定しています。つまり、await や async キーワードを使っていきます。 それから、関数やメソッドの仮引数は全く書いてません。必要最低限は文中で説明していますが、より完全に知りたい人は適宜ドキュメントの参照をお願いします。 主役はループちゃん asyncioの主役はイベントループです。イベントループは頼まれた仕事を順番にどんどん処理していくデキるクールガイです。 本質的に、私たちはイベントループに仕事を関数オブジェクトの形で与えていくだけです。asyncioモジュールの大部分は、私たちが仕事
目的 ライブラリ開発やデータ分析ツールの作成の際に適切に例外処理を行うことで、頑健かつバグの発見をしやすいシステムを作れるようになる。Pythonは他言語と比べて例外処理のオーバーヘッドが軽いので積極的に利用することで、高速かつ安全なコードを書くことができます。 推奨行為 例外処理を定義する際に従うべき項目についてまとめました。 投げる例外は適切に文書化する 最も重要なことです。定義した例外がどういうものなのかを適切にドキュメント化しましょう。毎度毎度書くのは面倒なので、名前だけで伝わるような命名にする、__str__ に詳細な説明を書く、もしくはSphinxなどのドキュメント自動生成ツールを使うのがオススメです。ドキュメント生成の自動化については、マスターブランチのマージと同時にドキュメントをS3に公開する。が参考になります。 ライブラリ共通の例外を作成し、全てそれを継承させる これをす
12月、私は PuPPy(the Puget Sound Python users group)の会合でQ&A セッション を行いました。そこでようやくPython 3が誕生した理由と、string/bytesに関する全てを説明しました。Python 3が作られた理由をユーザはもう知っているはずだと思っていたので、私はこの説明で称賛を得たことに、ちょっと驚きました。後で考えてみると、Pythonに詳しい人もそうでない人も含めて大多数の人が、その理由を探すように言われたり、好奇心からその理由を探し当てられるなどと考えた私が愚かでした。ですから、このブログの記事で、Python 3が存在する理由をわかりやすく説明します。後方互換性の全くない unicode / str / bytes の仕様変更は、Python 3のコードの移植の中でも本当に難解な部分ですので、私たちがその仕様変更を選択した理
機械学習ブームなどにより、 Python を触り始める Rubyist が増えてきたと思います。その際に問題になりやすいのが環境構築です。Rubyだと rbenv がデファクトスタンダードになっているのに、なぜか Python に… 私の立ち位置もともとは、数年前まで 年に一回Python3でNLTKやらscikit-learnやら機械学習や自然言語処理の環境を作ろうと試みては失敗してPython使うものかと思っていた人でした。それが、Anacondaで環境導入すると、面倒なことは何も考えずに済むということを知り、CookpadではAnacondaを前提に環境構築を勧めていました。 今は、ymotongpooに「郷に入っては郷に従え」と言われたため、pip+virtualenv/venvで全てをこなしていますが、これで困ったことは特にありません。macOS, Windows, Linuxそ
tqdm インストール 使い方 イテラブルオブジェクト 手動 ネスト Pandas tqdm github.com tqdmを使用すると処理の進捗をプログレスバーで表示することができるようになる。時間のかかる処理で進捗を確認したいときなどに便利。 ちなみに例ではREPLとしてptpythonを使用している。 wonderwall.hatenablog.com インストール pipでインストールできるので下記コマンドを実行。 $ pip install tqdm$ tqdm --help Usage: tqdm [--help | options] Options: -h, --help Print this help and exit -v, --version Print version and exit --desc=<desc> : str, optional Prefix for
今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のような本だったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ
大分遅れましたが、自分用の記録としてまとめときます。 tl;dr PyConJP 2015 でLTしてきたという話 大規模なカンファレンスで発表するの、メリットしか無いしみんなまず手を上げてみればいいんじゃないかなと思った話 PyConJP 2015 に参加した際の全体的なメモに関してはこちらをご参照ください PyConJP 2015 に行ってきた #pyconjp どんなLTしたの? こんなLTです PyConJP2015 公式の案内 プレゼンテーション:3分でサーバオペレーションコマンドを作る技術 | PyCon JP 2015 in TOKYO Togetter 「3分でコマンド」「PyCon Canada」「チャット通知ライブラリ」「pandas」「Dask」LT そして初日のクロージング #PyConJP_C #pyconjp - Togetterまとめ 当日使ったスライドはこち
Note You can sign up to my mailing list so that you remain in sync with any major updates to this book or my future projects! Preface¶ Python is an amazing language with a strong and friendly community of programmers. However, there is a lack of documentation on what to learn after getting the basics of Python down your throat. Through this book I aim to solve this problem. I would give you bits o
Python3.4のSingle-dispatchで遊んでみた - Python Advent Calendar 2013 Python Advent Calendar 2013 の 1 日目を担当します、 @hirokiky です。 昨年 に引き続きPythonAdventCalendarを主催しています。 ちなみに今年は現時点であと 4 人参加者が足りません!ぜひご参加ください Python Advent Calendar 2013 さて、今年の Python Advent Calendar のテーマは ‘Not Web’ ということなので、 Web に限らない話を書きます。 つい最近の11月24日に Python 3.4 の Beta 1 がリリースされました。 Python 3.4 b1 には無事 ensure-pip も入り、いよいよ Python 3 感が増してきました。 そん
試しに英語で Blog を書いてみた のですが、書くので精一杯で結局何が言いたいのか分からない感じになってしまったので今後は日本語 Blog 書いてから英訳しようと思います。 Python 3 は 3.2 まで、文字列を unicode に統一した関係で Python 2.7 に比べて遅くなったりメモリ効率が悪くなったりしてしまっていたのですが、 Python 3.3 で PEP 393 Flexible String Representation が導入されて改善されました。 PEP 393 は Python の内部だけではなく Python/C API にも変更を加えており、内部を理解しつつ新しい API を適切に使えば、バイト列と文字列の間の変換を行うような C 拡張を高速化することができます。 そろそろ Python 3.2 のサポートを切れる時期なので、思い当たる人は目を通してお
By Eric Reynolds and Felix Zumstein, Partners at Zoomer Analytics (Jun 25, 2015) ▼ Comments Tweet TL;DR Often, virtualenv is overkill for the basic task of installing project dependencies and keeping them isolated. We present a simple alternative consisting of: adding ./.pip to your PYTHONPATH using pip install -t .pip to install modules locally executing python from your project’s root directory
はじめに 去年ぐらいからPython製のコマンドラインのツールをいくつか作っていて、構成もだいぶ固まってきたので、まとめてみる。規模としては1ファイルでは終わらないぐらいで、関数の数も数十になってユーティリティを作ったり、クラスをいくつか作らないと、保守がしにくいような規模のものを想定しています。工数としては1日では終わらないけど、2週間はかからない程度の規模を想定。 構成 ということで、まず構成をさらしてみます。 こんな感じ。 SAMPLE_PROJECTレポジトリがあったとして、その具体的な構成が以下。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 . ├── README.md ├── RELEASE.md ├── TODO ├── bin │ ├── command1 │ ├── comm
Archived: Unofficial Windows Binaries for Python Extension Packages by Christoph Gohlke. Updated on 26 June 2022 at 07:27 UTC. This page provides 32 and 64-bit Windows binaries of many scientific open-source extension packages for the official CPython distribution of the Python programming language. A few binaries are available for the PyPy distribution. The files are unofficial (meaning: inform
Pythonをよく使う人にはよく知ってる人も多いのですが、docoptという便利ライブラリがあります。 docoptはargparseやoptparseのようなコマンドライン引数をパースするライブラリなのですが、その発想がコロンブスの卵なのです。 例えばPython標準のargparseだと、argparseのAPIを組み合わせてパーサを組み立てるわけです。するとパーサと一緒にヘルプも作ってくれて、"program --help"などとすると自動生成されたヘルプを表示してくれるようになります。 しかし、そのAPIを覚えるのが大変で、毎回ドキュメントを読まないと忘れちゃうわけです。 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 前回の続き。appscriptでラップしたPythonのiTunesオブジェクトで,トラックを扱えるようにした。トラックというのはiTunesに取り込んだ曲のこと。iTunesで再生中の曲を取り出したり,曲を検索したりできるようにした。新しいモジュールはエントリの下の方からダウンロードできます。 たとえば,再生中の曲情報を取得するのはこんなかんじ。iTunesオブジェクトのメソッドget_current_track()を呼び出すと,トラックオブジェクトが返ってくる。 >>> from itunes import iTunes >>> it = iTunes() >>> it.play(
Python3.4が今年の3月16にリリースされました。 色々追加要素があって、詳細は公式見たほうが良いです。 Python 3.4.0 | Python.org この中でも特に「pip(パッケージマネージャ)がすごく入れやすくなった」というのが、Pythonをよく使う皆はもちろん、これから使う人には非常に嬉しい要素なはずなので、とりあえず紹介してみます はじめに 7割ぐらい書いたあたりで、非常にわかりやすい記事を見つけてしまって脱力感を抱いているのでこちらを見たほうがいいかもしれません Python3.4のensurepip(それとpyvenvの更新) pipって何よ? 「pip is 何」という問に関して端的に答えるとともにpipに対するこれまでのPythonユーザのイメージを表す端的なツイットがあります “What’s pip?” “A python package manager”
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く