タグ

Pythonとpythonに関するt_a_oのブックマーク (292)

  • Flask ハンズオン — Flask Handson 1 documentation

    Flask ハンズオン¶ Flask は Python 製のマイクロフレームワークです。 マイクロフレームワークの対義語はフルスタックフレームワークで、普通の Webアプリケーションを作るのに必要なもの・便利なものをできるだけなんでも 用意したものになります。 マイクロフレームワークはその逆で、最低限必要なものや、ほぼすべてのWebアプリで 使う機能だけで構成されたフレームワークです。 マイクロフレームワークのフルスタックフレームワークに対する利点は、 フレームワークを覚えるだけで精一杯にならないで済む 追加のツールを自分で選ぶのが簡単 (O/Rマッパー等) になります. なので、簡単なアプリを短い勉強時間で作りたいケースや、高い目標性能などで フルスタック型フレームワークをそのままでは適用できない (大幅な改造が必要になってしまう) ケースでは、マイクロフレームワークが適しています。 目

  • Gevent チュートリアル

    はじめに このチュートリアルはある程度の Python の知識を前提としていますが、 それ以上の知識は前提としていません。 並列プログラミングの知識も必要ありません。 このチュートリアルの目的は、 gevent を扱う道具を提供し、 読者がすでに持っている一般的な並列プログラミングの問題を手なづけて 非同期プログラムを書き始められるように手助けすることです。 寄稿者 時系列順の寄稿者: Stephen Diehl Jérémy Bethmont sww Bruno Bigras David Ripton Travis Cline Boris Feld youngsterxyf Eddie Hebert Alexis Metaireau Daniel Velkov そして Denis Bilenko に、 gevent の開発とこのチュートリアルを作る上での 指導について感謝します。 この共

    t_a_o
    t_a_o 2013/01/23
  • pytest introduction - Python Testing

    Python Testing Python Software Development and Software Testing (posts and podcast) I think of pytest as the run-anything, no boilerplate, no required api, use-this-unless-you-have-a-reason-not-to test framework. This is really where testing gets fun. As with previous intro’s on this site, I’ll run through an overview, then a simple example, then throw pytest at my markdown.py project. I’ll also c

    t_a_o
    t_a_o 2013/01/19
  • Hacking Super Mario Bros. with Python | Pythonic Perambulations

    This weekend I was coming home from the meeting of the LSST Dark Energy Science Collaboration, and found myself with a few extra hours in the airport. I started passing the time by poking around on the imgur gallery, and saw a couple animated gifs based on one of my all-time favorite games, Super Mario Bros. It got me wondering: could I use matplotlib's animation tools to create these sorts of gif

    t_a_o
    t_a_o 2013/01/16
  • The Full Monty - from Ruby to Python n00bie

    Ruby developers are a pretty spoilt bunch these days. The community has overall done a great job of rolling many of the advances in modern development practice into the tools and conventions we unconsciously put to work every day. Now I wonder what life is like in the Python community? Like many Rubyists, I've played around with Python and Jython on and off. But nothing serious. And although you c

    The Full Monty - from Ruby to Python n00bie
  • Python のジェネレータ (5) - 再帰とジェネレータと Composite

    Python のジェネレータ (4) - 無限リスト のつづき 1. 例 例えば、「リストの要素を 2 倍したい」とする。 リスト内包表記や map 関数を使うなら、以下のように書ける。 L = [1,2,3,4,5] print [x*2 for x in L] print map(lambda e: e*2, L) 2. for ループ 単純に、for ループでリストを走査しながら、要素を2 倍するなら、 def double(L): result = [] for e in L: result.append(e*2) return result print double(L) これをジェネレータで置き換える。 def gDouble(L): for e in L: yield e * 2 for e in gDouble(L): print e 3. 再帰 再帰で書くと、 def r

    Python のジェネレータ (5) - 再帰とジェネレータと Composite
    t_a_o
    t_a_o 2013/01/10
  • Python のジェネレータ (4) - 無限リスト

    Python のジェネレータ (3) - 数字にコンマを振る のつづき 1. 有限リストに対して有限の繰り返し 「有限のリストを走査する」ためのジェネレータは、次のように書く。関数 g は、引数としてリスト L を受け取るとする。 def g(L): for e in L: yield e 関数の中で yield が使われているので、ジェネレータが返される。これをジェネレータ関数と呼ぶ。 2. 無限リストに対して無限の繰り返し 関数 g の中では、与えられたリストを走査するために、for ループを利用した。 for ループの代わりに while True を用いて、延々と回る無限ループに置き換えると、「無限リストを対象としたイテレータを生成する」ジェネレータとなる。 例えば、 「 3 の倍数の無限リスト」 が欲しい場合、次のように書くことができる。 def m3(): i = 0 whil

    Python のジェネレータ (4) - 無限リスト
    t_a_o
    t_a_o 2013/01/10
  • Python のジェネレータ (3) - 数字にコンマを振る

    Python のジェネレータ (2) のつづき 1. ジェネレータを使う方法 前回と同じく、ジェネレータを使う例を考える。 数字にコンマを振る (via 巡回 - 常山日記) Python のチュートリアル 5.5.7 レシピ に、moneyfmt() という関数が書かれている。とりあえず、これは横に置いておく。 「数字にコンマを振る」ために、ジェネレータを使うことをイメージする。 数をリストに見たて、末尾から 3 つずつ要素を返すジェネレータを作成。 そのジェネレータからリストを生成し、 要素を逆順にして、 最後にコンマで要素をくっつける。 実装。 def gCommaStr(num): result = "" for i,e in enumerate(reversed(str(num))): if not i == 0 and i % 3 == 0: yield result resu

    Python のジェネレータ (3) - 数字にコンマを振る
    t_a_o
    t_a_o 2013/01/10
  • Python のジェネレータ (2) - リストの走査

    Python のジェネレータ (1) - 動作を試す のつづき 1. ジェネレータをどこで使うのか? ジェネレータの動作について、何となく雰囲気を理解できた。しかし、どのような目的に使うのか、今一分からない 「あ!これはジェネレータを使うと、問題を解くのが楽だ。」 「ジェネレータを使った方がシンプルに書ける」 ということが分かるようになりたい。 イテレータを置き換えるジェネレータ 最初に覚えたことは、 ジェネレータを使うと、イテレータを簡単に作成できる。 ということ。イテレータとは、複数のオブジェクトに対して、要素を一つづつ辿るための手段。よって、ジェネレータは、複数の要素を辿るために利用できる。 例えば、Group クラスが Person クラスに対して責務があるとする。イテレータを自前で実装するには、境界条件を考えながら、イテレータプロトコルに沿うようにする。 Python のイテレー

    Python のジェネレータ (2) - リストの走査
    t_a_o
    t_a_o 2013/01/10
  • Python のジェネレータ (1) - 動作を試す

    1. イテレータとはコンテナの要素を走査するためのオブジェクト これまでに Python の リスト内包表記、イテレータ について調べた。 次は、「ジェネーレータ」。 Python のジェネレータを理解するには、イテレータの理解が不可欠。ジェネレータについて調べる前に、イテレータの復習から行う。 a. イテレータの役割 Python のドキュメント「9. クラス」 における「9.8 イテレータ」の説明を確認すると、 イテレータの使用は Python 全体に普及していて、統一性をもたらしています。背後では、for 文は コンテナオブジェクトの iter() を呼び出しています。… イテレータは、Python において特別扱いされており、for 文と密接な関わりを持っている。 … この関数は next() メソッドの定義されたイテレータオブジェクトを返します。 next() メソッドは一度コン

    Python のジェネレータ (1) - 動作を試す
    t_a_o
    t_a_o 2013/01/10
  • サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ

    ymmt2005 こと山泰宇です。こんにちは。 cybozu.com のインフラ開発チームでは仕事のかなりを Python でこなしています。 Python を選んだ理由は以下の通りです。 便利だから Python には "batteries included" と呼ばれるほど豊富な標準ライブラリが整備されています。例えば HTTP で通信するとか、JSON データを読み込むといった良くある仕事のためにいちいち外部ライブラリを探さなくていいのです。 堅いプログラミングができるから 例外やモジュールといった現代的な機構が備わっているので、ベターシェルスクリプトとして使うのに適しています。 書き方にバリエーションが少ないから チーム開発では他の人が書いたコードを手直しすることは良くあります。書く人によって書き方がいくつもあるような言語より、レビューや修正がしやすいと考えています。 標準的に使

    サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ
    t_a_o
    t_a_o 2013/01/10
  • Python で TDD してみる - methaneのブログ

    RSpec の入門とその一歩先へ がとてもよい記事だったので、 Python で写経させてもらいました。 https://github.com/methane/pytest-tut Ruby コミュニティと Python コミュニティの考え方の違いも見えて面白いと思います。 環境は Python 3.3 で、実行には py.test コマンドを使いましたが、 py.test の機能は特に使っていないので nose でもなんでも大丈夫です。 ファイルの作成 まずは空の実装とテストを作ります。 message_filter.py class MessageFilter: pass message_filter_test.py 最初のテストを書く py.test は .should といったメソッドを勝手に生やしたりはしません。普通に assert 文を書きましょう。 --- a/messege

    Python で TDD してみる - methaneのブログ
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/

  • GitHub - quantmind/pulsar: Event driven concurrent framework for Python

    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 - quantmind/pulsar: Event driven concurrent framework for Python
    t_a_o
    t_a_o 2013/01/05
  • http://www.brianholdefehr.com/decorators-and-functional-python

    t_a_o
    t_a_o 2013/01/05
  • AWS Command Line Tool Python版 | Developers.IO

    軽量コマンドラインツールが出た! 全国うん万人?のAWSデベロッパーの皆さん、ニュースです。AWSから提供されていたコマンドラインツールがPython版になって登場です。すでに12のサービスに対応しています。ただ単にJavaからPythonになったというレベルではありません。超軽量になったのです。今までのコマンドラインツールは、バックグラウンドでJVM(Java VM)が立ち上がっていました。コマンドが呼ばれる度にVMが初期起動するのでCPU使用率が非常に高く、サーバー運用時の定期呼び出しには大きな問題となっていました。仕方なく、RubyPythonのSDKを使ってスクリプトを書くという毎日でした。Java好きな私ですので多少擁護しますと、Java版はRI(Reference Implementation)として、AWSの全てのAPIにアクセスするためのお手として、今後も最初にSDKが

    AWS Command Line Tool Python版 | Developers.IO
  • Pythonを始めるなら、1ファイルの軽量Webフレームワーク「Bottle」がおすすめ - モジログ

    「全てのwebエンジニアPythonを勉強するべき2013年到来」(2013-01-01)という記事が人気を集めているようだ。巳年(ヘビ年)にひっかけて、これからPythonを勉強したい人を対象に、書籍やライブラリなどを紹介している。有益な情報が多数含まれているが、ちょっとPythonを試してみたいという程度の人には、これだと敷居が高すぎるように思う。 Pythonに限らないが、あたらしい言語をはじめるとき、もっとも障害になるのは「環境構築」だろう。Pythonの場合、LinuxMacであれば、Pythonインタプリタは最初から入っているので、Pythonそのものをインストールする必要はない。しかし、「そのあとどうするのか?」というのが、なかなかむずかしい。例えば、「Hello, World!」を出すWebアプリを書くには、そこからどうすればいいのか。なんらかのWebフレームワークを使

    t_a_o
    t_a_o 2013/01/04
  • Bottle: Python Web Framework — Bottle 0.14-dev documentation

    Bottle: Python Web Framework¶ Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library. Routing: Requests to function-call mapping with support for clean and dynamic URLs. Templates: Fast and pythonic built-in template engine and support for mako, jinja2 and cheetah templat

    t_a_o
    t_a_o 2013/01/04
  • Tornado – File Uploads

    Quite often we’re in need of providing file upload mechanism on our website. Be it logs management or user profile management, support for file upload is a must. This blog describes how uploads be achieved with Tornado web server. Example code: This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file i

    Tornado – File Uploads
    t_a_o
    t_a_o 2013/01/01
  • Flaskの闇 - methaneのブログ

    Merry, Xmas. Python advent calendar 2012 (#python_adv) 24日目の記事を、ミクパの再放送をBGMにお送りします。 今日は Flask のイケてないところとのつきあいかたを紹介します。 循環 import 問題 app.py 1ファイルだけの構成から成長してファイルを分け始めるときに突き当たるのが循環import問題です。 今まで1モジュールだった app.py を myapp/__init__.py にして、 view 関数を myapp/views.py の中で定義していきたいとします。 #myapp/__init__.py from flask import Flask app = Flask(__name__) import myapp.views #myapp/views.py from myapp import app @ap

    Flaskの闇 - methaneのブログ
    t_a_o
    t_a_o 2012/12/26