へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

Python

reduxよくわかんなかったのでPythonでredux実装した

class createStore: """ほんとはシングルトンにしないといけないけどわかりづらくなるのでやめた 関数にした場合は、Pythonだと "JavaScriptでは全然考えられてないローカルスコープ" で大変そうなのでクラスにした""" def __init__(self, reducer): self._s…

pythonでdatetime.datetime型に、単にタイムゾーンを付与したいときにやること

毎回忘れてStackoverflow見てるので(メソッドにするのもあれだな感) タイムゾーンをくっつけるだけ >>> import datetime >>> import pytz >>> now = datetime.datetime.now() >>> now datetime.datetime(2016, 9, 9, 11, 5, 34, 943737) >>> now.replace(tzi…

virtual_envの環境を保存しておく

ソース save_workon #!/bin/sh if [[ -z "$VIRTUAL_ENV" ]]; then echo '' > ~/.workonlogin else echo workon "$(basename $VIRTUAL_ENV)" > ~/.workonlogin fi 実行例 $ workon test (test)$ save_workon [ New Terminal ] (test)$

Django, Unittest, AttributeError: 'module' object has no attribute について、3分ハマったので備忘録メモ

結論 パスがおかしい or ファイルの中身がおかしい より細かな調査方法 $ ./manage.py shell $ import foo.bar.target_source_file "Error comes up HERE" このエラーから得られる重要な知見 読み込めてないときは 中身がおかしい、別の場所を示している、別…

flake8(version 2.2.5)が、急にF999エラーを伴ってこけだした話

解決法 flake8の最新版は2.5.4(2016/03/02現在)結論から言うと、flake8を最新版(2.5.4)にしたらなおる 原因 flake8 v2.2.5では、Dependenciesであるpyflakesのバージョン指定が、>=0.8.1しかなかった flake8-2.2.5/setup.py From flake8 2.2.5 : Python Pack…

Django、connection.queriesでSQLクエリが見えない場合、またはテストの中でSQLクエリを見る方法(How to show queries in django tests)

前提 DEBUG = True になっていなければいけないFAQ: Databases and models | Django documentation | Django Make sure your Django DEBUG setting is set to True. Make sure (*´∀`*)Oh Yeah クエリを見る方法 from django.db import connection print(con…

このようにして難読化するのだ[Python]

_.py _ = dict class _: class __(_): def __init__(__): __['_'] = print def _(__): __ = __['_'] __(__) def _(__): class _(__.__): def _(__): __ = __['_'] __('_') return [_] * ((__ == __) + (__ != _)) [_()._() for _ in _()._()] $ python -m_ _…

Django。URLから名前解決する

In [23]: resolve('/api/v1/players/1/home/').view_name Out[23]: 'api:player-home' ↓逆 In [25]: reverse('api:player-home', kwargs=dict(player_id=1)) Out[25]: '/api/v1/players/1/home/' わるいことしたけろ〜(´・ω・`)

Resolved "cannot build python-module libsass in [gcc 4.6 < ] environment, e.g. CentOS 6.5"

$ pip install sass # not "libsass". it's another module This module uses a C++ Library "Libsass" Older Version. This doesn't have dependencies related to gcc 4.6.In the first place, I had tried to do "cross compile" Libsass. However I gave…

Djangoで、RunPythonをマイグレーションファイルに忍び込ませた際の罠 django.db.utils.OperationalError: (1054, "Unknown column 'x_field' in 'field list'")

Migrationクラスに次の文を追加したとする operations = [ migrations.RunPython(call_change_alpha_model), migrations.AddField( model_name='alpha', name='x_field', field=models.PositiveIntegerField(default=0), ), ] call_change_alpha_modelは以下…

C言語でPythonのモジュールを書く!

はじめに 社内勉強会でつかった。 てきとうなのでまちがってたらスマソ。 さいごらへん雑。 ソースにコメント書いたので、それ見たらたぶんわかる。 注意点 makeできない!→python3.rcまでパス通ってない可能性 初歩の初歩向け https://docs.python.org/3.5/…

python. ずらーっと並んでいる日付を、月ごとに見やすくまとめる方法

じみにべんり In [60]: import datetime In [61]: start = datetime.date(2015, 9, 23) In [62]: [start + datetime.timedelta(days=n) for n in range(7)] Out[62]: [datetime.date(2015, 9, 23), datetime.date(2015, 9, 24), datetime.date(2015, 9, 25),…

AWSのマイクロインスタンスにlxmlをインストールできないときに確認すること

stackoverflow.com sudo yum install python34-devel などとする しなくてもいい気がする(´・ω・`)!とりあえず困ったら、sudo yum list | grep hogeで調べればだいたいなんとかなる。Failed to set locale, defaulting to Cなどとおこられたら LC_ALL=C su…

取りたい要素、呼びたい属性が決まっているときにいちいちメソッド定義しなくていいやつ

>>> from operator import * >>> getter = itemgetter('a', 'b', 'c') >>> d = dict(a=1, b=2, c=3, d=4) >>> getter(d) (1, 2, 3)みたいな 他にもf(r)で、r.nameと同じ意味 f = attrgetter('name') f(r)で、r.run()と同じ意味 f = methodcaller('run') f(r)…

python 条件分岐で定義するクラスを変更する

>>> def define_classA(a): ... global A ... if a: ... class A: ... hoge = 1 ... else: ... class A: ... hoge = 'h' ... >>> define_classA(1) >>> A.hoge 1 >>> define_classA(0) >>> A.hoge 'h'メソッドを変更することも可能>>> def define_classA(a):…

WindowsでPython3.4.3の実行環境つくってみた && windowsにpyquery(←lxml)をinstallした

注意 python完全初心者向けではないので、初心者の人はLinuxつかったほうが楽だとおもいます。 本編 Macでつくったpythonのアプリケーションを、WindowsでちょこっとだけGUI化して配布してPythonとか全然知らない一般人でも使えるようにしようかなとおもって…

3秒でわかるSeleniumのつかいかた(Python・ちょっとDjango)

2016/09/22 追記 3秒でわかるようになってなかったので追記。 Seleniumとはなにか 自動でブラウザ動かせれるやつ。テストとかにつかえる。 Seleniumのインストール方法 http://www.seleniumhq.org/download/ Chromeでやる場合、chromedriverをダウンロードす…

Djangoのi18nで、localeが勝手に変わってしまったと思ったらそんなことなかった話

こまってたこと activate('ja')したあと、ふんふんふーんというノリで翻訳対応してたら、いつのまにか翻訳が効かなくなった。 こわくなったのでget_language()をデバッグにさしこんで事なきを得た。下を見れば、なんだあたりまえのことじゃないかというかん…

じゃあPythonでは謎外国語文字からInteger.parseInt的なことをするとどういう挙動をするのか

インスパイアされた ↑Java - String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiitaqiita.com ためしてみた Pythonではこうなる >>> int("༡༢༣༤༥༦༧༨༩༠") 1234567890 >>> int('၁၂၃၄၅၆၇၈၉၀') 1234567890 >>> int('111') # おまけ(なんと全角…

IT用語辞典をおまかせ表示(ランダム表示)するサイトつくった

さっきトイレで「あ〜、このうんこしてる時間、なにかに有効活用できないかな〜」と考えて、 「そうだ、IT用語の辞典でも適当に見るか」とおもい、 IT用語辞典のサイトに行ったのだが、 →IT用語辞典 e-Words wikipediaのような「おまかせ表示」がなかったな…

Djangoで、pythonシェルからmigrate前のモデルのフィールドを見る方法

>>> from django.db.migrations.state import ProjectState >>> from django.apps import apps >>> for f in ProjectState.from_apps(apps).models[('applabel', 'hogemodel')].fields: ... print(f) ... ('id', <django.db.models.fields.AutoField>) ('created_at', <django.db.models.fields.DateTimeField>) ('updated_…</django.db.models.fields.datetimefield></django.db.models.fields.autofield>

pythonのシェルで書いたコマンドを再利用するためにファイルに書き出すモジュールつくった

なにしたのか このようにして、何かしらコマンドを打ったとする。その後 「似たようなコマンド打ちたいな〜」 「あ〜、最初からファイルで書けばよかった〜」 みたいなこと、発生しませんか?そんなとき、また同じコマンドを打つ……これほどだるいことはない…

pythonで、性能解析(プロファイラ)して、その結果を画像ファイル(png)で表現してくれるモジュール見つけたので使ってみた 

超便利 実験台 重いです こんな感じのpngファイルができる インストール方法 $ pip install pycallgraph こんなノリでつかう $ pycallgraph graphviz shortcut.py 『実験台』みたいに、ファイルの中でwithとともになんやかんやもできる。依存関係のやつが必…

noseの--testmatchオプションや--match、-mがうまくはたらいてくれてなかった件について

noseのソースにif options.testMatch: self.testMatch = re.compile(options.testMatch)があった。プリントデバッグしてみたら、nosetests --testmatch='^test.*'と書くと ^test.*ではなく、 '^test.*' を正規表現のものとしてコンパイルしてくれるようだ(`…

pythonのインタラクティブシェルでクラスの中の属性とかを簡易的に調べたいときにつかうメソッドつくった

使用例 さっき出力したオブジェクトの属性をみたいとき => some_object => k() さっきつくったオブジェクトの、属性が大文字でできているものだけみたいとき(主に定数) => some_object => k(s=True) あるオブジェクトの属性をみたいとき => k(some_object)…

ニコニコ動画の、動画のIDを入力すると、動画をダウンロードして、ついでにmp3に変換するツールつくりました。

harukaeru/NicoNicogithub.comつくりました!!!!!!!!!!!!!!!!!!

pythonのインタラクティブシェルをViモードでつかう

~/.inpurcに、 set editing-mode vi と書く。おわり(´・ω・`)また、readlineモジュールを使うことで python標準モジュールをいくらでもハックできそうな感じだ(`・ω・´)! さんこうにしました(パクっただけ) 13. Interactive Input Editing and History …

Pythonのデコレータであそんでみた

Enumを使っていることからお察しの通り環境は3.4です。ソースコードを動的に扱えるようになるのが最近の課題。 ついき ちなみに、furikake_dict、関数のなかにありますが、これはあくまで「こういうこともできるよ」であって、 この書き方はあまり良くないで…

L += [3, 4]は、L = L + [3, 4]と等価じゃなかった

あっとうてきに+=のほうが5倍から10倍くらいつよい $ python extends.py | grep 'はやい' | sort | uniq -c 100 +=がはやい あっとうてきではないか。わがぐんは。 +=とリストのメソッドであるextendを戦わせてみた なお内部では、L.extend([3, 4])のよう…

pythonの代入ぜんぜんわかってなかった

イコールの右側:メモリにオブジェクトつくる イコールの左側:そこへのリファレンス イコール:メモリにつくったオブジェクトへのリファレンスを作成するこのようにしてオブジェクトがインスタンスへ超進化するのだ。 インスタンスは、「リファレンスが張ら…