過去の日記

2017-02-24 [長年日記]

Jupyter Notebookで実行されているのかチェックしたい [Python]

理由はtqdmのimport。いろいろと試したが難しかった。
こんな風にしてみた。

try:
    # noinspection PyUnresolvedReferences
    if get_ipython().__class__.__name__ == 'ZMQInteractiveShell':
        from tqdm import tnrange as trange
        from tqdm import tqdm_notebook as tqdm
    else:
        raise RuntimeError
except (NameError, RuntimeError):
    from tqdm import trange
    from tqdm import tqdm

WebのNotebookではJavaScript利用のウィジェット、それ以外ではコンソール。


あるいは、

try:
    # noinspection PyUnresolvedReferences
    if get_ipython().__class__.__name__ == 'ZMQInteractiveShell':
        from tqdm import tnrange as trange
        from tqdm import tqdm_notebook as tqdm
    else:
        from tqdm import trange
        from tqdm import tqdm
except (NameError, RuntimeError):
        trange = range
        tqdm = lambda x: x

として、ipython hoge.pyの時だけプログレスバーありにしたり。(Atom の Atom Runner みたいな、tqdm が効かない場合にオミットできる)


noinspection は PyCharm用の警告抑止。
QtConsoleは誤認識するので使わないでね。


2017-02-22 [長年日記]

name 'IntProgress' is not defined [Python]

tqdmをJupyter Notebookで使おうと思ったのだけど、

name 'IntProgress' is not defined

というエラーで使えない。

ソースとかをいろいろ見てみたら ipywidgets パッケージがインストールされていないからみたい。
なんでインストールされていなかったのかはわからない*1けど、まぁ、

conda install ipywidgets

で直った。
condaでなければ

pip install ipywidgets

で。

*1 anacondaを使っていれば入るのだけど、minicondaを使っていたので入ってなかった、ということまではわかっている。


2017-02-10 [長年日記]

scrapy で取得順をランダムにしたい [Python]

うーん。これがデフォルトで搭載されていないのだろうか。

まぁ、その辺の自由度どうにかならない? というissueはありましたけど。

https://github.com/scrapy/scrapy/issues/2435


完全にランダムでよければ、キューがメモリに収まっている範囲に限定ですが、こんな感じでできました。

import random
import collections

from scrapy.squeues import FifoMemoryQueue

class RandomizedMemoryQueue(FifoMemoryQueue):
    def __init__(self):
        super().__init__()

        assert isinstance(self.q, collections.deque)

    def pop(self):
        q = self.q

        if q:
            q.rotate(random.randint(0, len(q) - 1))

        return q.pop() if q else None

myproject/my_queue.py とかいう名前で保存します。(myproject が scrapyプロジェクト名として)
で、setting.py とか、設定に、

SCHEDULER_MEMORY_QUEUE = 'myproject.my_queue.RandomizedMemoryQueue'

を追加します。


2017-01-31 [長年日記]

仁義なきキリスト教史, パンゲアの零兆遊戯 ほか [novel]

出エジプト記がすごい。

仁義なきキリスト教史 (ちくま文庫)

  • 作者: 架神 恭介
  • 出版社/メーカー: 筑摩書房
  • 発売: 2016-12-07
  • ASIN: 4480434038
  • メディア: 文庫
  • amazon.co.jp詳細へ


あいかわらず、なにごともなかったかのように終わる。

パンゲアの零兆遊戯

  • 作者: 上遠野浩平
  • 出版社/メーカー: 祥伝社
  • 発売: 2016-11-10
  • ASIN: 4396635125
  • メディア: 単行本
  • amazon.co.jp詳細へ


新装版 ロードス島戦記 3 火竜山の魔竜(上) (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: 角川書店
  • 発売: 2013-11-30
  • ASIN: 4041011159
  • メディア: 文庫
  • amazon.co.jp詳細へ

新装版 ロードス島戦記 4 火竜山の魔竜(下) (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: KADOKAWA/角川書店
  • 発売: 2013-12-28
  • ASIN: 4041011485
  • メディア: 文庫
  • amazon.co.jp詳細へ

新装版 ロードス島戦記 5 王たちの聖戦 (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: KADOKAWA/角川書店
  • 発売: 2013-12-28
  • ASIN: 4041011493
  • メディア: 文庫
  • amazon.co.jp詳細へ

新装版 ロードス島戦記 6 ロードスの聖騎士(上) (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: KADOKAWA/角川書店
  • 発売: 2014-01-31
  • ASIN: 4041011507
  • メディア: 文庫
  • amazon.co.jp詳細へ

新装版 ロードス島戦記 7 ロードスの聖騎士(下) (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: KADOKAWA/角川書店
  • 発売: 2014-01-31
  • ASIN: 4041011515
  • メディア: 文庫
  • amazon.co.jp詳細へ

涼宮ハルヒの暴走 (角川スニーカー文庫)

  • 作者: 谷川 流
  • 出版社/メーカー: 角川書店
  • 発売: 2004-10-01
  • ASIN: 4044292051
  • メディア: ペーパーバック
  • amazon.co.jp詳細へ

〜憂鬱しか読んだことないけど適当に読んでみるかー。


2016-12-29 [長年日記]

デボラ、眠っているのか? ほか [novel][book]

SF。すごくSF。

デボラ、眠っているのか? Deborah, Are You Sleeping? (講談社タイガ)

  • 作者: 森 博嗣
  • 出版社/メーカー: 講談社
  • 発売: 2016-10-19
  • ASIN: 406294037X
  • メディア: 文庫
  • amazon.co.jp詳細へ


新装版 ロードス島戦記 灰色の魔女 (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: 角川書店
  • 発売: 2013-10-31
  • ASIN: 4041010624
  • メディア: 文庫
  • amazon.co.jp詳細へ

新装版 ロードス島戦記 2 炎の魔神 (角川スニーカー文庫)

  • 作者: 水野 良
  • 出版社/メーカー: 角川書店
  • 発売: 2013-11-30
  • ASIN: 4041011140
  • メディア: 文庫
  • amazon.co.jp詳細へ


別冊映画秘宝特撮秘宝vol.5 (洋泉社MOOK 別冊映画秘宝)

  • 出版社/メーカー: 洋泉社
  • 発売: 2016-12-05
  • ASIN: 4800311276
  • メディア: ムック
  • amazon.co.jp詳細へ