タグ

pythonに関するkwryのブックマーク (45)

  • 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のブログ
  • Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。最近は、以前に比べてPythonを触る人が増えてきたような印象ですが、それでもやれeasy_installだ、やれvirtualenvだと言われても、どうやって設定したらよくわからない、という発言をちらほら見かけています。 でもぶっちゃけ超簡単なので、とりあえず初めてPythonの環境設定する人はこれをコピペで動かして下さい。 (2017.01.26追記) 注意:この記事はもう古いので、Python2をいまから使い始めるなんていう奇特な人以外は次の記事を読んで下さい。 ymotongpoo.hatenablog.com 要点 はまりどころは多分次のどれかだと思う Pythonのバージョンをどれ使っていいかわからない 「easy_installを使え」と言われるがeasy_installというパッケージが見つからない virtualenvの入れ

    Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください - YAMAGUCHI::weblog
  • Google App EngineとPythonでの素直な開発環境の構築(TDDができるように) - Masatomo Nakano Blog

    追記: 続編的なものを書いた。 今年は色々なことに手を出してみよう、ってことで少し前からGoogle App Engine(以下GAE)で、あるモノを作っている。モノ自体は近いうちに公表できると思う。 基的に、Pythonと標準っぽいフレームワークだけでやってみている。作っているものがそれなりにシンプルなのと(だからこそGAE!)、GAEでそれなりの規模の開発をするのが自分自身初めてということもあり、あまり色々なレイヤーを重ねて手こずりたくなかった、ってのがその理由。 ただ、GAE初心者なので、「いやいやそれは今時ないよ」「XXの方が100倍いい」とかあったら教えてくれると嬉しいので今のところの環境を書いておくことにした。今ならスイッチ可能。 今作っているものがJSONファイルを入出力するだけのものなので、HTML生成パートみたいのはない。 1. フレームワーク 上にも書いたように、今回

  • Google App Engine / Python 上での開発で最初から知ってればよかった、ってことをいくつか - Masatomo Nakano Blog

    ここ数ヶ月、Google App Engine/Pythonを使い、初めてちょっとしたものを作ってみているのだけど、開発初期から知っておけばよかったなー、と思うノウハウ/tips的なものをずらずらと書いてみる。 基的な環境設定は、 以前書いた まま。 0. 公式ドキュメントを良く読む 言うまでもなく、だけど、 マニュアル はもちろん、 この辺 の下の読み物も、流し読みだけでもしておいたほうがいい。 datastoreとmodel的なところ 1. key nameを使いこなす key nameは、レコードの作成時に指定できる(RDBでいう)primary keyの別名みたいなもの。primary key自体は自動的で作成されるので開発者が指定できるのはkey nameだけ。 key nameをうまく使うことで、datastoreを使いやすくすることができる。特にdatastore上で"un

  • SWF バイナリ加工 python ライブラリを公開しました - gumi Engineer’s Blog

    こんにちは、gumi 元エンジニアの鎌谷です。 gumi では解析システムの開発や、今回紹介する SWF バイナリ加工ライブラリの開発を行っていました。 SWF バイナリ加工について ガラケー向けにインタラクティブなコンテンツを配信したい場合は、ほぼ全ての携帯機種に対応した Flash Lite 1.1 が用いられます。 ただし、この Flash Lite 1.1 は非常に多くの制約があります。 一度パブリッシュした SWF を動的に加工したい場合、バイナリをサーバーサイドで直接いじるという荒技が用いられているようです。 gumi でも SWF バイナリを動的に加工する必要があり、python ライブラリ Tomato が開発されました。 Tomato によって、 パラメータの注入 画像の置き換え MovieClip の置き換え が python で行えるようになります! Tomato G

    SWF バイナリ加工 python ライブラリを公開しました - gumi Engineer’s Blog
  • Pythonによる並行処理,マルチプロセッシング用ライブラリ/ソリューションのリスト | TRIVIAL TECHNOLOGIES on CLOUD

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー python.orgのwikiにある,Parallel Processing and Multiprocessing in Pythonの翻訳です。たくさんありますね〜。抜粋している部分があるので,詳しく知りたい人は原文を読んだりリンクを辿ることをお勧めします:-)。 Pythonには,複数のCPUやマルチコアCPU,共有メモリ環境,クラスタやグリッド環境を活用するためのライブラリが多く存在します。このページでは,個々のライブラリやソリューションの情報を調べてまとめています。 対称型マルチプロセッシング delegate - forkベース。pipeを使ってpickeしたデータを送りプ

    kwry
    kwry 2011/01/01
  • Google Appengine フレームワーク Tipfy の紹介

    (この記事は Python Web フレームワーク アドベントカレンダー2010 のために書いた 12/24 の記事です。 他の記事を読むには http://atnd.org/events/10465 をご覧ください) 私は普段、 kay フレームワーク を使いますが、最近、 Tipfy (http://www.tipfy.org) というフレームワークを試してみました。 Tipfy は Kay と同じく、 Google Appengine専用フレームワークです。 Kay は Django に似ているものの、 Tipfy は Appengine SDK の Webapp フレームワーク に 似ているように作りました。 インストール Tipfy は buildout という環境管理ツールの利用を推進しています。 まずは、 Tipfy の配布プロジェクトテンプレート をダウンロードします。

  • Pythonのシリアライズ/デシリアライズ - gumi Engineer’s Blog

    こんにちは。gumiの木村です。 すっかり秋めいて寒い位になりましたが皆さんいかがお過ごしでしょうか。 さて、今回はPythonのシリアライズを題材に書いてみたいと思います。 シリアライズとは、簡単にいうと数値・リスト等のオブジェクトをファイルやDB等に保存できる形式に変換することです。シリアライズされたものに対し逆変換を行いデータに戻すことをデシリアライズといいます。 Pythonでシリアライズ/デシリアライズを行なう方法を以下にいくつか挙げてみました。 str, eval 関数 シリアライズにデータ値を文字列に変換するstr関数、 デシリアライズに文字列を評価するeval関数を使用します。 pickle, cPickle モジュール Pythonに標準で付属するpickleモジュールを使用する方法。シリアライズされたデータは独自形式になります。 更に内部処理をCで記述し高速化されている

    Pythonのシリアライズ/デシリアライズ - gumi Engineer’s Blog
  • http://tmedic.org/archives/412

  • Pythonでメソッドをクラスまたはインスタンスに動的に追加する

    Pythonでは、あるクラスもしくは、クラスインスタンスに動的にメソッドを付けたいことがあります。Pythonコードでは、一般的に考えるとこういう風に書くって思いがちだけど、 class MyObj(object): def __init__(self, val): self.val = val def new_method(self, value): return self.val + value obj = MyObj(3) obj.method = new_method

    kwry
    kwry 2010/09/28
  • Pythonの勉強をまったく始められないあなたと私に送る8つのタスク

    Google App EngineでのPythonの勉強と開発は進んでいますか? GAEでPythonを始めるときに知りたい4つのまとめ これを書いた人はというと…まったく進んでいません。 Learn Python The Hard Wayを少し読んだ程度です。 言い訳なんていくらでも出来ますね。 えーっと、仕事が忙しいから、仕事が忙しいから、そして仕事が忙しいから。 しっかり、仕事以外の勉強の時間を取ってやらないと、あっと言う間に置いてかれます。 そして、”新しいことを学ぶ”というのは日々のモチベーションに繋がりますから。 前置きはここまでにして、今日はタイトル通り、 Pythonの勉強をまったく始められないあなたと私に送る8つのタスク を紹介します。 もし、タイトルに期待して、”これさえやればPythonマスターになれる!”と思ってきた方にはごめんなさい。 99%は”Pyt

  • 時間のインターバルをcron的に扱うPythonモジュール書いた – taichino.com

    ちょっと前の話なんですが、croniterというモジュールを書きました。これは何かというと時間に紐付いた繰り返し処理を扱うモジュールです。例えば「毎週火曜日と木曜日の9時」とか「日曜日の5時から10時まで1時間ごと」にとか、そういう繰り返しを扱いたいときに使う事を想定しています。 基的な使い方は以下になります。お気づきの通りcronと同じ形式で繰り返しを指定します。baseで特定の日時以降での繰り返しです。後はnextを呼び出すたびに次のdatetimeオブジェクトを取得できます。 #!/usr/bin/python from datetime import datetime from croniter import croniter # 2010年8月7日始まりで、平日の9時 base = datetime(2010, 8, 7, 0, 0) iter = croniter('0 9

    kwry
    kwry 2010/08/11
  • Pythonでタイムゾーンを扱うメモ – taichino.com

    だと普段扱わないので、忘れがちなタイムゾーンの処理をメモ書きです。ここでは例として、日時間とアメリカ東海岸標準時の変換してみます。 まず標準ライブラリだけで処理すると以下のような書き方をするようです。各時間帯ごとにdatetime.tzinfoを継承したクラスを作成し、その中でUTCからの時間のずれ等を設定します。 #!/usr/bin/python # -*- coding: utf-8 -*- import datetime # 日時間 class JST(datetime.tzinfo): # UTCからの時間のずれ def utcoffset(self, dt): return datetime.timedelta(hours=9) # サマータイム def dst(self, dt): return datetime.timedelta(0) # タイムゾーンの名前 de

    kwry
    kwry 2010/08/10
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

    Blogger
  • メソッド解決順序(MRO)

    多重継承が利用可能な言語では、メソッドを探索するときのベースクラスを探索する順序を、メソッド解決順序(MRO)と呼んでいる。Pythonではメソッドだけではなく、属性の探索でもこれが利用される。単一継承しかサポートしていない言語では、MROはとてもつまらない話題であるが、多重継承の場合には必要となってきて、MROアルゴリズムの選択が極めて難しい問題となりうる。Pythonでは、クラシック、Python 2.2の新スタイル、Python 2.3の新スタイル(C3とも呼ばれる)の3種類のMROアルゴリズムを持っていることが知られている。Python 3では、最後のアルゴリズムだけが生き残っている。 旧スタイルクラスはシンプルなMROの方式を利用していた。メソッドを探す場合には、シンプルに深さ優先探索を行って、ベースクラスの中で最初にマッチしたオブジェクトが返される。例えば、次のようなクラス構造

    kwry
    kwry 2010/08/02
  • Pythonでいろんなバイナリファイルを覗いてみる – taichino.com

    プログラマをしていると、ちょくちょくバイナリデータから情報を読みたくなりますね。そんな時は、ブツブツ言いながらバイナリエディタと睨めっこすることになるわけですが、これが結構大変なので、何とか楽にならないかなぁと思って探していると、hachoirというナイスなpythonモジュールが見つかりました。このモジュールを使うとバイナリデータをパースして様々なデータを取得できます。かなり多くのデータフォーマットに対応している(現時点で70種類)のが素晴らしいです。 hachoirはいくつかのモジュールに分かれているのですが、大抵は以下をインストールすれば良いと思います。 $ easy_install hachoir_parser $ easy_install hachoir_metadata このモジュールにはhachoir-metadataというコマンドラインツールが含まれていて、コードを書かなく

  • モダンなPythonの開発環境の構築方法 — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー インストール Windows以外の多くのプラットフォームではすでにPythonが入っている。バージョンを調べて,使いたいバージョンより古いならインストーラやパッケージを使ってインストール。パッケージは「〜devel」をインストールしておく。 easy_installのインストール easy_installは標準ライブラリに含まれていないサードパーティモジュールをインストールする時に便利なので,入れとく。 ここからez_setup.pyをダウンロード,Pythonのスクリプトとして実行すると,自動的にコマンドがインストールされる。 $ easy_install pachage_name

  • 新スタイルクラスの内部の話

    原文:http://python-history.blogspot.com/2010/06/inside-story-on-new-style-classes.html 原文投稿者:Guido van Rossum [注意:この投稿はとても長くて技術的です] 表面上は、新スタイルクラスは、元々のクラスの実装と非常に似通って見えるが、新スタイルクラスでは次のような数々の新しいコンセプトが導入されている。 __new__()という名前の低レベルのコンストラクタ 属性アクセスのカスタマイズを一般的にできるようにするデスクリプタ 静的メソッドとクラスメソッド プロパティ(演算してから結果を返す属性) デコレータ(Python 2.4から導入) スロット 新しいメソッド解決順序(Method Resolution Order, MRO) このエントリーでは、これらのコンセプトについて光を当てていこう

    kwry
    kwry 2010/07/11
  • oinume journal

    大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。 BEFORE package main import ( "slices" "testing" ) func TestContains(t *testing.T) { type args struct { ss []string s string } tests := map[string]struct { args args want bool }{ "empty: false": { args: args{[]string{}, ""}, want: false,

    oinume journal
  • Six: Python 2 and 3 Compatibility Library — six 1.10.0 documentation

    Six: Python 2 and 3 Compatibility Library� Six provides simple utilities for wrapping over differences between Python 2 and Python 3. It is intended to support codebases that work on both Python 2 and 3 without modification. six consists of only one Python file, so it is painless to copy into a project. Six can be downloaded on PyPi. Its bug tracker and code hosting is on BitBucket. The name, “six