タグ

pythonに関するtom__boのブックマーク (15)

  • Python で MagicMock を使う - akiyoko blog

    MagicMock は mock.Mock のサブクラスで、薄いラッパーです。 >>> from mock import Mock, MagicMock >>> issubclass(MagicMock, Mock) True >>> list(set(dir(MagicMock)) - set(dir(Mock))) ['_mock_set_magics'] MagicMock を使えば、クラスだろうがオブジェクトだろうがメソッドだろうが関数だろうが、何でもモックオブジェクトで置き換えて、その振る舞いを自由にシュミレートすることができます。 まず、一番シンプルにモックを使う方法は、直接 MagicMock オブジェクトを代入するやり方です。 models.py(置換対象クラス) import random class User(object): def __init__(self, na

    Python で MagicMock を使う - akiyoko blog
  • そんなpatchで大丈夫か? (mockについてのメモ〜後編〜) - Qiita

    大丈夫じゃない。問題だ。 前の記事で書いたmockを使用した際に、2点ほどハマった。 importの仕方によりpatch対象を変える必要がある 以下のように外部ライブラリを使用しているモジュールをテストする場合を考える。(以降の例では、httpライブラリrequestsを外部ライブラリとして使用している。以降の記述の何点かは、requestsに依存した内容になっている。) このモジュール単体をテストするためには、外部ライブラリのクラスをモックすれば良い。

    そんなpatchで大丈夫か? (mockについてのメモ〜後編〜) - Qiita
  • [python] まだmockで消耗してるの?mockを理解するための3つのポイント

    隣の席の人がテスト強化週間とか抜かしていたので自分もちゃんと理解するために なるべくわかりやすく まとめてみようと思います。 この記事は 2015 tech-yuruyuru アドベントカレンダー - 15日目の記事です。 2015 tech-yuruyuru アドベントカレンダー (2015/12/01 00:00〜)# 2015 #tech-yuruyuru アドベントカレンダー #tech-yuruyuru のアドベントカレンダーです。 テーマは特に決まっていません。好きなことを書いてください。 * 参加したい日の参加枠に参加登録してください * 2 日以上参加したい場合は、フィードで宣言してください ## カレンダー 1. @pjxiao: VPC のプライベートサブネットについて解説 2. @pjxiao: mDNS を使いローカルマシン内の仮想環境に接続する 3. @pjxia

    [python] まだmockで消耗してるの?mockを理解するための3つのポイント
  • xkeysnail - もうひとつの Linux 向けキーリマッパ - Qiita

    TL;DR Linux (X11) 向けのキーリマップツールをつくった Python 3 で書かれており sudo pip install xkeysnail で入れることができる uinput という Linux の低レイヤ API を利用し動作するため「多くのキーリマップツールではうまくリマッピングが動かなかった場所」でも動作する アプリケーションごとにキーバインドを変えたり、複数ストロークのキーにコマンドを割り当てたり Python の関数をキーに割り当てたりすることもできる 詳しくは https://github.com/mooz/xkeysnail で 背景 Firefox が Quantum になり、旧来の XUL ベースのアドオンは動作しなくなった。新たな拡張機能の機構である WebExtensions ではキーボードショートカットに関する API が大幅に制限され、ぼくは拙

    xkeysnail - もうひとつの Linux 向けキーリマッパ - Qiita
    tom__bo
    tom__bo 2018/01/03
    key remapper
  • Pythonでシングルトン!! | KIWAMIDEN

    いろいろ論議がでそうなデザインパターンの1つである「Singleton」をPythonでやる方法を見ていきたいと思います! Singletonとは Singletonは、オブジェクト指向のプログラムにおけるデザインパターンの1つです。作成されるクラスのインスタンスが、1つしか生成されないことを保証する仕組みです。アプリケーション全体で、絶対に1つにしないといけない仕組みの実装に使用されています。 これはいまいちかも? 継承されることを想定して考えると、コンストラクタ(厳密には違います)の「__new__」で実装するのはいまいちかもしれません。 だいたいこんな感じのコードかと思います。 class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if cls._instance is None: c

    Pythonでシングルトン!! | KIWAMIDEN
  • ちゃんと運用するときのuWSGI設定メモ - Qiita

    某アプリのバックエンドをFlask+uWSGI+Nginxでつくったのでやったことまとめました。 Nginxとの連携 wsgiプロトコルで繋げる方法

    ちゃんと運用するときのuWSGI設定メモ - Qiita
  • 【Celery】Celery 要件と環境編 - たんたんめん日記

    ソーシャルゲームとバッチサーバー ソーシャルゲームには、バッチキューサーバーがかなり重要かと思います。 そのへん、みなさんどうやってるんでしょうね‥ あまり話に上がらないです。 ソーシャルゲームで求められる要件としては、こんな感じでしょうか。 時間指定で予約実行出来る。 レイドボスの終了処理や、イベントのランキング集計など、積み上げ型のキューバッチシステムではなく、時間指定で任意の処理を行う必要があります。 冗長性 バッチサーバーが死ぬと一大事です。レイドボスが終わらなかったりしかねません。サーバーを2重化するなど、冗長性の確保が必要です。 スケールアウト 負荷が増大してきた時、スケールアップでも良いんですが、サーバーを付け足せば負荷対策できるのがベストです。 積み上げ型のキューシステムはいくつかあるのですが、上記のような要件に答えてくれそうなシステムがなかなか見つかりませんでした。 (探

    【Celery】Celery 要件と環境編 - たんたんめん日記
  • Python Graph Gallery | The Python Graph Gallery

    👋 The Python Graph Gallery is a collection of hundreds of charts made with Python. Graphs are dispatched in about 40 sections following the data-to-viz classification. There are also sections dedicated to more general topics like matplotlib or seaborn. Each example is accompanied by its corresponding reproducible code along with comprehensive explanations. The gallery offers tutorials that cater

    Python Graph Gallery | The Python Graph Gallery
  • Python ヒッチハイク・ガイド — The Hitchhiker's Guide to Python

    Python ヒッチハイク・ガイド¶ Python ヒッチハイク・ガイド へようこそ。 これは皆さんの手により生きているガイドです。 貢献したい方は GitHub で fork してください! この手作りガイドは、初心者と熟練者のPython開発者の両方に、Python のインストール、設定、および使用に関するベスト・プラクティスを日々提供するために存在します。 このガイドは、ほとんど 独断的なもの であり、Python の公式文書では ありません 。 ここでは、すべての Python Webフレームワーク の一覧は見つからないでしょうが、強く推奨されているリストが簡潔に見つかるでしょう。 さあ、始めましょう! まずは、あなたの探しものがどこにあるかを確認しましょう。

  • Amazon EC2上でPython2.7及び各種ライブラリ環境を整える | DevelopersIO

    AWSではPythonはEC2環境にデフォルトで導入されていますし、AWS CLIもPython環境の上に成り立っています。そういう意味ではAWSを扱う人に取ってはPythonは割と身近な言語であると言えるでしょう。 そんな私もAWS CLIは普段使いしておりますが、何気にその他の環境...Pythonそのものであったり、データ分析等で使う(使える)ような各種ライブラリについては未知の分野が多いです。そこで当エントリでは、EC2上でPython環境、主にデータ分析周りのPython環境やライブラリを整える手順についてまとめて行きたいと思います。 目次 EC2環境の準備 Python2.7へのアップグレード AWS CLIのアップグレード Beautiful Soup IPython pandas scikit-learn(numpy/scipy/scikit-learn) PuLP Sim

    Amazon EC2上でPython2.7及び各種ライブラリ環境を整える | DevelopersIO
    tom__bo
    tom__bo 2015/09/24
    2.7に差し替え
  • 課題をクリアして冒険しよう!プログラミング学習ゲームCheckiOをやってみた | CodeCampus

    課題をクリアして冒険しよう!プログラミング学習ゲームCheckiOをやってみた更新日: 2018年10月12日公開日: 2015年6月12日 ゲームを遊ぶようにプログラミングを学ぶ 「プログラミングの勉強は退屈」「一つ一つのプログラムの意味は分かるけど複雑な処理を作ろうとすると、どうしたらいいか分からなくなる」そんな悩みはありませんか?こんな悩みを同時に解決してくれるのが、CheckiO(https://www.checkio.org)です。CheckiOプログラミングはゲームをしながら、プログラミングを学ぶことができるWebサービスです。 プログラマーのためのゲーム ゲームとプログラミング教育の相性は非常に高いと言われています。かねてより「ゲーミフィケーション」ともよばれる手法が提案されています。ゲーミフィケーションは、課題をクリアするとポイントなどの報酬が得られるといったゲーム的な要素

    課題をクリアして冒険しよう!プログラミング学習ゲームCheckiOをやってみた | CodeCampus
  • virtualenvを使っていろいろなライブラリを手軽にためそう | DevelopersIO

    サーモン大好き横山です。 Pythonを使うとき、システムの環境を汚さずPythonのコードを書くときに便利です。 今回その導入方法を説明していきたいと思います。 Pythonのバージョンごとのvirtualenvのインストール Amazon Linux 2015.03を使う場合に、新規AMIから使う場合と2014.09以前からアップグレードしてきた場合とで、 Pythonのバージョンが異なる事があります。 以下、バージョンによってvirtualenvのインストールして下さい。 Python2.7系の場合 $ python -V Python 2.7.9 $ sudo yum list installed | grep python27-virtualenv (何も表示されなければ、インストールされていない) $ sudo yum install -y python27-virtualen

    virtualenvを使っていろいろなライブラリを手軽にためそう | DevelopersIO
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • PythonのUnicodeEncodeErrorを知る - HDEラボ

    Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ

  • pyenv を使って macOS に Python の環境を構築する - Qiita

    pyenv という Python のバージョンマネージャを使って Python を管理する。macOS であれば元々 Python はインストールされているけど、これはシステム用なので使いたくない。もちろん Homebrew 使っても楽にインストールできるけど、Python のバージョンを複数切り替えて使いたい場合はバージョンマネージャを使うのが現実的である。 pyenv をインストールする pyenv をホームディレクトリの .pyenv にクローンしてくる。

    pyenv を使って macOS に Python の環境を構築する - Qiita
  • 1