by shigemk2

当面は技術的なことしか書かない

Python

flask limiter

flaskでrate limitを制御しているところ。 redashだと1日50回のrate limitがデフォルトでかかっている。 Flask-Limiter — Flask-Limiter 1.0.1+0.gb390e64.dirty documentation

PyAthena

PyAthena ローカルでRedashを構築 + データソースでAthena export REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.athena" だけではだめで、PyAthenaを別途入れる必要がある query runner enabled but not supported, not registering. Either disab…

Lambda Python Logging

Lambda Python Logging ログ出力はprint 返却はreturn

RDS describe_db_instances

RDS describe_db_instances boto3のアレ。 http://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.describe_db_instances import boto3 # おきらくdescribe # rds:DescribeDBInstancesがひつよう dbinstance = 'test-db' rds = bot…

sqlformat

SQLを整形するCUI # これが $ cat test.sql select E1.proc_id, MAX((SELECT SUM(E2.event_type) FROM Events E2 WHERE E2.proc_id = E1.proc_id AND E2.event_time < E1.event_time)) AS max_inst_count FROM Events E1 GROUP BY E1.proc_id ORDER BY E1.pr…

JSON_AS_ASCII

JSON_AS_ASCII JSONの中の文字(non ASCII)をASCIIにエンコードしない。 By default Flask serialize object to ascii-encoded JSON. If this is set to False Flask will not encode to ASCII and output strings as-is and return unicode strings. jsonify…

memo: sqlitebck 1.3

memo: sqlitebck 1.3 Sqlite3 online backup API implementation. Sqlite3のPython実装

memo: q

memo: q csvとかtsvに対してクエリを投げられるCLI 2017/12/26の雑感 Python3未対応 Python2.7だと動く サンプルとしては、こんな感じのコマンド q -t -H "select name from exampledatafile.tsv where name != '' limit 5" -t でtsv -H でヘッダ行をスキッ…

boto3 ec2.instances

boto3 ec2.instances 適当に。IAMロールとかはちゃんとしようね。 import boto3 ec2 = boto3.resource('ec2') instances = ec2.instances.filter( Filters=[{'Name': 'instance-state-name', 'Values': ['running']}]) for instance in instances: print(ins…

Python map/filter

Python map/filter こんな感じ。 >>> items = [{"id":1,"name":"Alice"}, {"id":2,"name":"Bob"}, {"id":3,"name":"Charles"}] >>> list(filter(lambda x: x["id"], items)) [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}, {'id': 3, 'name': 'Cha…

pip vs easy-install

pip vs easy-install easy_installが2004で、pipが2008。easy_installって、アンインストール出来ないんだ。。 https://packaging.python.org/discussions/pip-vs-easy-install/;embed

easy_install list

easy_install list easy_install listみたいなオプションは2017年現在でもないようなので、やっぱり /usr/lib/python2.4/site-packages/easy-install.pth とか、easy-install.pthを探すしかなさそう。

pycodestyle

pycodestyle Python style guide checker pypiでインストールできるようだ

PEP 8

PEP 8 Style Guide for Python Code Pythonのコードスタイルガイド

cheat cp

cheat cp iオプションとrオプション

paramiko

typoじゃない pycharmだとtypo扱いされるけどそれはもう、しゃあない pythonのsshv2ライブラリ https://tools.ietf.org/html/rfc4250

pycharm jump to next/previous error

はい。 Use keyboard shortcuts F2 and Shift+F2 respectively. Navigating to Next/Previous Error - Help | PyCharm

nose nose2 unittest

noseもnose2もunittestも微妙に違う noseは2.4をサポートしているが、nose2は2.4をサポートしてない nose2はunittest2のpluginブランチを起点にしているが、代替は不可能。 https://docs.python.jp/3/library/unittest.html http://nose.readthedocs.io/en/l…

cheat command 2017/09/05

気長に待てばいずれはマージされるかもねっていう感想。4ヶ月位経ってるけど。 あると少しだけ便利になるからプルリクを投げている。 github.com github.com これは他のプルリクと重複しているためクローズ。 github.com

boto

Python interface to Amazon Web Services aws-cliのなかでよくアプデされるアレ

about sphinx_rtd_theme

ドキュメント作成ツールsphinxで、APIドキュメントを作りたいときに使われるテーマ。 github.com Sphinxのインストール — Sphinx 1.5.6 ドキュメント python3系だと不具合が起きるようで。 こいつでドキュメントをビルドしようとしたら、sphinx_rtd_theme is…

airflow backend db

postgreかMySQLを推奨。 Configuration — Airflow Documentation

airflow example

サンプルコード。digdagに比べるとあんまり品揃えはよくない印象。 github.com

airflow tutorial memo

なんとなく参考。 なお、from airflow.operators import BashOperator って書き方は非推奨でairflow2.0から書けなくなるから from airflow.operators.bash_operator import BashOperator こっち推奨で。 tech.lalitbhatt.net

Celery

Airflowのタスクキューで使われているアレ。 Homepage | Celery: Distributed Task Queue

airflow documentation

airflow 入門とかでググっても、initdbとwebserver立ち上げだけやった記事しか見つからないのだ Apache Airflow (incubating) Documentation — Airflow Documentation

airflow sqla

対応していたりしていなかったり github.com

aws-cli PYTHONIOENCODING

aws-cliのlsをリダイレクトしてgrep検索するとlsしたファイルに日本語が入っていると文字化けする。 変数 PYTHONIOENCODINGを使う qiita.com PYTHONIOENCODINGについてのPython公式ドキュメント 1. Command line and environment — Python 3.6.1rc1 document…

luigi: 雑に触ってみての所感

導入は楽(pip install luigiするだけでよい) 複雑なことをしようとするとPythonの作り込みが必要で、Pythonのコードが複雑になりがち ちゃんと運用しようとするとすごいパイソニスタが必要 データのメール転送はdigdagほど簡単じゃない ログ出力が邪魔な時が…

python venv pyenv

別にpyenv使わなくてもいいかなという感じ 普通に使う文にはpython3でよさそう ただし、apt-get install python3で入るバージョンは3.5.2 素のpythonは2.7 もう少し調べて見る必要はありそう 28.3. venv — 仮想環境の作成 — Python 3.6.0 ドキュメント askub…