タグ

Pythonに関するtell-kのブックマーク (745)

  • DjangoのDeprecationWarningを確認する - 偏った言語信者の垂れ流し

    Djangoフレームワークでは、APIが変更、廃止される場合には、次のバージョンですぐに変わってしまうのではなく、警告を上げた上で2つ先のバージョンで削除されることになっています。 Deprecation policy Pythonの組み込み例外であるDeprecationWarningを継承したクラスがDjangoでは定義されており、必要に応じてこれを確認できます。 確認方法 Pythonの実行オプションとして -Wd のように指定するとDeprecationWarningを表示できるので、これを「manage.py test」や「manage.py check」の実行時に指定すればよいです。 試したバージョンはPython3.5, Django1.9.5です。 $ python -Wd manage.py test実行結果: $ python -Wd manage.py test Cr

    DjangoのDeprecationWarningを確認する - 偏った言語信者の垂れ流し
  • pyinvoke を触ってみた - 僕とコードとブルーハワイ

    pyinvoke Welcome to Invoke! — Invoke documentation pyinvokeは、いろんなコマンドをまるっと纏めることができるモジュール。 たとえば、開発で頻繁に必要となるコマンドを一つに集約させる場合にこのpyinvokeが生きてくる。 いま仕事でDjangoコマンド、テスト実行コマンド、環境毎の実行コマンドなどをpyinvokeでまとめているけどinvokeさえ覚えればいいのでとても楽。 今回の実行環境 OS Pythonバージョン invokeバージョン MacOSX Yosemite 10.10.3 3.4.3 0.10.1(2016/03/30現在最新) インストール $ pip install invoke 使い方 Getting started — Invoke documentation に使用方法が書かれています。 基は、task

    pyinvoke を触ってみた - 僕とコードとブルーハワイ
  • Wheel が Linux でもバイナリパッケージに対応しました - methaneのブログ

    PEP 0513 -- A Platform Tag for Portable Linux Built Distributions | Python.org 今まで WindowsMac では、ビルド済みのバイナリ形式の拡張モジュールを wheel にして配布することができました。 WindowsMacに比べてLinuxは環境の差が激しいのでバイナリ wheel に対応していなかったのですが、有名なディストリであればだいたい動くようにするためにどうすればいいか (glibc の古いAPIしか使わないなど) を勧告としてまとめて、十分実用的だと判断されたようです。(ただしこれは勧告であって、実際に pip や PyPI でこのルールに則っているかチェックされるわけではないようです) manylinux1 policy 性質上、何らかのライブラリのバインディングを提供する拡張モジュール

    Wheel が Linux でもバイナリパッケージに対応しました - methaneのブログ
  • Python高速化 Numba入門 その1 - tkm2261's blog

    みなさん、こんにちは 今日からPython高速化 Numbaに入門したいと思います。 入門資料を探しに来た皆様すみませんが、 記事は私がこれから入門する内容になります。 結果として入門資料に慣れば幸いですが、過度な期待は御無用でお願いします。 基的には以下を読み進めて行きます。 http://numba.pydata.org/ Numbaとは 『JIT(just-in-time)コンパイラを使ってPythonを高速化しよう!』というPythonモジュールです。 LLVMコンパイラを使っており、これはJuliaが高速な理由でもあるので期待大です。 学生時代はCythonを使って高速化をよくしていましたが、以下の理由により今回はNumbaを学びます 候補 今回諦めた理由 Cython cdefとか結構手を入れるのでPythonに戻すのが面倒。pyximportも面倒 C拡張 C言語は極力触

    Python高速化 Numba入門 その1 - tkm2261's blog
  • Python の型ヒントの FAQ / FAQ about Python Type Hints

    漸進的型付け (Gradual Typing) について語る会 http://camphor.connpass.com/event/28692/ での発表資料です. 資料中の下線部はリンクになっています. リンク先にアクセスするためには PDF ファイルをダウンロードして下さい.

    Python の型ヒントの FAQ / FAQ about Python Type Hints
  • 私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD

    最近、このモジュールをに紹介したところ、そのシンプルさと実用性に驚いていました。 joblib joblibの存在は以前から知ってはいたものの、実際のところはよく理解しておらず、いろいろな機能を寄せ集めたようなモジュールだと思っていました。まあ、その印象は今もあまり変わりませんが、実は非常に便利なモジュールだったのです。私は Flowminder の同僚から再度joblibを勧められて、このモジュールをデータ分析用のコードに幅広く使用しました。では、その機能について紹介しましょう。joblibは大きく分けて、 キャッシング 、 並列化 、 永続化 (データの保存と読み込み)の3つの機能から成ります。実を言うと、私はまだ並列プログラミングの機能は使ったことがないのですが、あとの2つの機能は頻繁に使ってきました。 キャッシング機能とは、シンプルなデコレータを使って、関数を簡単に”メモ化”する

    私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD
  • Python製WebフレームワークのURL DispatcherとType Hintsの活用について - c-bata web

    少し前から趣味で実装してるKobinというWebアプリケーションフレームワークのURL Dispatcherの実装をする時に、BottleやDjangoを参考にしながら考えてみました。 これらの比較とType Hintsを利用したKobinのURL Dispatcherの実装についてまとめます。 (追記) リバースルーティング ちょっと長いですが、追記です。結論としては元々紹介していた正規表現ベースのルーティングとは違う方法をKobinで採用しました この記事では正規表現によるルーティングについて解説していたのですが、このルーティング方法は逆引きが少し難しくなります(Djangoは正規表現ベースの逆引きですが、自由度の高い正規表現からURLを生成するために一部妥協しているところもあるようです)。 実際の問題では正規表現が必要となるほど複雑なURL構成になることは稀かもしれません。 逆引きの

    Python製WebフレームワークのURL DispatcherとType Hintsの活用について - c-bata web
  • scipy.sparse - kanojikajinoonijakijonak

    わたしの専攻は応用数学みたいなもので,特に機械学習なるものを主に研究している*1.純粋に数学をやろうと思うならば,「拙者wwwデッデュフwwwwこのwwンゴォwwてwwwwてwwwwww定理wwwwコポォwwwwww証明したでござるwwwww」と言っていればいいのであるが*2,我々の業界*3ではこんなことばかり言っていても,「それはなんの役に立つんですか?」とボスに聞かれ,ぐぬぬとなってしまうので,それを未然に防ぐために,何か適当なデータを持ってきて,自分のアルゴリズムを試して性能がいいですよ*4ということを言わなければならない.生まれつきC++が書けるとか,脳内で反復法の計算ができるという方ならば,実装の面で悩むことはないのだろうが,私くらいの凡人ともなると極力楽をしたいので,ライブラリなどが揃っていたり,身近な人*5に質問ができるような言語を選んでしまう.そのため私は SciP

    scipy.sparse - kanojikajinoonijakijonak
  • Pythonによる機械学習の最前線

    トップエスイー実践プログラミングセミナーシリーズ 「TensorFlowによるニューラルネットワーク入門」 で使用した資料です。 http://topse.or.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E3%80%8Ctensorflow%E3%81%AB%E3%82%88%E3%82%8B%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB%E3%83%8D/ 2016/11/17 ver1.0 公開 2016/11/28 ver1.1 Update 2017/01/21 ver1.2 Update 2017/01/24 ver1.3 Update

    Pythonによる機械学習の最前線
  • Streaming APIで大量のつぶやきをリアルタイムに保存する方法(cURL編) | 配電盤

    つぶやきを大量に取得したいときには、TwitterのふつうのAPIではなく、Streaming APIを使います。ふつうのAPIは1時間あたり350回しか使えないので、対象となるつぶやきが、APIを目一杯使って取得できる数を超えるとどうしようもありません。Streaming APIならこのような心配は無用で、条件を設定して一度接続すれば、設定した条件に合うつぶやきを大量に取得できます。厳密に言えば、これは程度の問題でしかなく、Streaming APIでも、すべてのつぶやきを取得できるわけではないのですが、ここでは、「ふつうのAPIに比べれば遙かにたくさん取得できる」と考えてください。 cURLを使うのが簡単です。次のようなシェルスクリプト(stream.sh)を作成し、「bash stream.sh >> result.dat」などとして実行すれば、指定したキーワードを持つつぶやきを、r

    Streaming APIで大量のつぶやきをリアルタイムに保存する方法(cURL編) | 配電盤
  • どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | POSTD

    どうすればPythonJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る JuliaPython 科学技術計算には、Pythonなどの言語よりもJuliaを使った方がいいのでしょうか? http://julialang.org/ に載っているベンチマークを見ると、どうしてもそんな風に思ってしまいます。というのも、Pythonなどの高水準言語は、スピード面で大幅に劣っているのです。けれども、これは私が最初に感じた疑問ではありません。私が気になったのは、「Juliaのチームが書いたPythonのベンチマークは、Pythonに最適なものだったのか?」ということです。 こういった多言語の比較について、私の考えを述べましょう。まずベンチマークというのは、実行するタスクによって定義されるものです。よって、そのタスクを実行するための最適なコードを、各言語に精通した人々が最

    どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | POSTD
  • Python を速くする取り組み - methaneのブログ

    速い Python 実装といえば PyPy が有名ですが、 Python 3 へのキャッチアップが遅い、 CPython が持っている Python/C API のサポートがまだ弱く遅い、などの欠点があります。 また、 Google の1年プロジェクトだった Unladen Swallow もありました。これは CPython をフォークして LLVM で JIT を実装するものでした。この fork 実装は終わりましたが、この時期まだ不安定だったLLVMへの貢献は大きく、(ちゃんとおってないので憶測ですが)現代LLVMを利用したJITを実装しているプロジェクトは全部間接的に Unladen Swallow の成果の上に成り立っていると言えるかもしれません。 終了した JIT プロジェクトといえば、 psyco もありました。これはベタに CPython の JIT を実装していましたが、

    Python を速くする取り組み - methaneのブログ
  • gunicornでgraceful restart(reload application)する方法 - カカドゥ開発者ブログ

    こんにちはカカドゥの増田です。 現在開発しているサービスは、Python + Django + Gunicornで開発しています。 これまでの経験では、Apache httpdにmod_perlやmod_phpで動かす運用をしていたため、業務レベルのサービスをスタンドアロンなアプリケーションサーバ単体で動かすのは実は初めてだったりします。 そこで、Gunicornでは、デプロイするときにApacheで言うところのgraceful restartをどうやったらできるのかなと思って調べたところ、 kill -HUP masterpid してやればいいということが分かりました。日語で説明している資料がなかったので記録している次第です。 公式ドキュメントには、以下のように説明されています。 How do I reload my application in Gunicorn? You can g

    gunicornでgraceful restart(reload application)する方法 - カカドゥ開発者ブログ
  • PythonのJSONパーサのメモリ使用量と処理時間を比較してみる | POSTD

    私は、多数の大容量のデータをあちこちに移動させなければならない(クライアント端末をHTTP APIに接続してデータを取得します)ような特殊な使用事例を扱っています。なぜだか ^(1) 、転送形式にはJSONが使われていました。ある時、その大容量のデータが、さらに巨大になったのです。数百メガバイトどころではありません。JSONのデコード処理を実行すると大量のRAMが使用されることが分かりました。たった240MBのJSONペイロードで4.4GBですよ。信じられません。 ^(2) 組み込みのJSONライブラリを使っていて、まず「もっと性能の良いJSONパーサがあるはずだ」と思いました。そんなわけで、計測を始めたのです。 さて、メモリ使用量の計測はやっかいです。 ps コマンドを使ったり、 /proc/<pid> を見たりすることはできますが、断片的なスナップショットが得られるだけで、実際の最大使

    PythonのJSONパーサのメモリ使用量と処理時間を比較してみる | POSTD
  • ChainerのCupyでGPUを有効活用しよう - mktozkの日記

    お久しぶりです、@mktozkです。 2ヶ月くらいブログの更新をしてませんでした。 おちこんだりもしたけれど、私はげんきです。 さて、今日はディープラーニングのフレームワークであるChainerに含まれているCupyというライブラリについて話します。 ChainerはCupyを使って様々な計算をGPU (CUDA) で行っています。 今回はこのCupyを使って楽に色んな計算をGPUに投げることを目指します。 ディープラーニングの話は全くしません。 chainer.org この記事を読んだらわかること Cupyの使い方 CupyとNumpyの両方に対応したコードの簡単な書き方 この記事には書いてないこと CUDAカーネルの書き方と使い方 この記事で使用したコードはここかここから取得できます。 ちなみに、Chainerはv1.5.1です。 GPUは速い Cupyとは Cupyの導入 Cupyの

    ChainerのCupyでGPUを有効活用しよう - mktozkの日記
  • Top 10 Python libraries of 2015

    Everyone and their grandma seems to be writing top 10 lists, so we couldn't be less and compiled our own. Here is a list of the best 10 Python libraries you should know about that we have used in 2015, in no particular order. We try to avoid most established choices such as Django, Flask, Django Rest Framework, etc. and go for libraries that might not be as well known. Fasten your seatbelt, here w

    Top 10 Python libraries of 2015
  • rafekettler.com

    rafekettler.com 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy

  • Simple Switching of VirtualEnv Environments

  • SQLAlcyemy で repr を自動で - Memo

    メモ。 SQLAlchemy でモデルクラスを定義していて、__repr__ を毎回定義するのがダルい。 かといって定義しないと、デバッグ時(主にプリントデバッグ)に中身が出ないのも困る。 # -*- coding: utf-8 -*- from sqlalchemy import Column, Integer, String, ForeignKey from sqlalchemy.orm import relationship from db import Base class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) email = Column(String(120), unique=True) d

    SQLAlcyemy で repr を自動で - Memo
  • -vvvや-qで作ったコマンドのloggingレベルを変更する斬新なコード - podhmo's diary

    はじめに argparse にcountというactionがあり、これを使うと渡した同一オプションの数をカウントすることができます。 これを使って、例えば、curlやsshなどで見られる -v や -vv の記述に似せたものをやろうという話です。 基的な考え方は以下です。 defaultは logging.WARN -v オプションは loggingレベルを下げる -q オプションは loggingレベルを上げる logging また、logging はNOTSET,DEBUG,INFO,WARNING,ERROR,CRITICALという順にdefaultのloggingレベルが設定されています。が、これらは単なる数値です。 import logging print(logging.NOTSET) # => 0 print(logging.DEBUG) # => 10 print(log

    -vvvや-qで作ったコマンドのloggingレベルを変更する斬新なコード - podhmo's diary