by shigemk2

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

Python

memo PyGitHub Repository

PyGitHub Repositoryのcreate_file/update_file/delete_fileでパスを指定するときに最初にスラッシュが必要じゃなくなった $ git tag -l --contains ee9f098d910995fc5c59dbcbe9b0490804ceec6c v1.43.3 v1.43.4 v1.43.5 v1.43.6 Add a trailing slash to URL…

name '_inplacevar_' is not defined

原理がよくわからないが、RedashのPythonデータソースで+= とか |= みたいな書き方をすると死ぬ。 github.com github.com

PyGitHubで、特定ブランチのファイルの現在のコンテンツを知りたい

PyGitHubで、特定ブランチのファイルの現在のコンテンツを知りたい。 repo = g.get_organization(xxxxxxxxxxxxxxxxxxxxxxxxxxx).get_repo("xxxxxxxxxxxxxxxxxxxxxx") base64.b64decode(repo.get_contents(/path/to/file, "refs/heads/sample_branch").conten…

PEP 275

PEP 275 switch/caseがPythonにないのはif/elifで代替できるから、という説明がされている。 Design and History FAQ — Python 3.7.3 documentation でもいくつかの代替案はPEP 275で提示されている。こういう書き方ができればうれしいと個人的には思う。 if…

pyenv installあたりでさんこうにするべき1つのサイト

pyenv installあたりでさんこうにするべき1つのサイト wikiじゃ。

AttributeError

AttributeError: 'module' object has no attribute 実行するプログラムのファイル名と、importするモジュール名が一緒だと↑のエラーになることがあった Difficulty installing required libraries : learnpython

Python ipaddress

IPアドレス(とかサブネットマスクまわり)の文字列をあれこれ操作するPython標準モジュール。 IPv4Address('192.0.2.6') in IPv4Network('192.0.2.0/28') ipaddress --- IPv4/IPv6 操作ライブラリ — Python 3.7.2 ドキュメント

Redashのクエリ結果をダウンロードするコマンドを作ってみたけど

Redashのクエリ結果をダウンロードするコマンドを作ってみたけど もうあるんだよな。しかもこのライブラリを使って実装しているので再発明に近い。 両方でできること クエリパラメータ指定(複数可) redash-query-downloadだけに出来ること 文字コード指定 フ…

Presto MAP_FILTER memo

MAP_FILTER、各要素についてのフィルターなので、OR条件で 要素AがBを満たす OR 要素CがDを満たす みたいなのはダメっぽいからおとなしくELEMENT_ATを複数回使う。 6.17. Map Functions and Operators — Presto 0.215 Documentation

ast.literal_eval

dictなstringをパースして本物のdictにするやつ。 >>> import ast >>> ym = ast.literal_eval("{'year' : 2018, 'month' : 12}") >>> type(ym) <type 'dict'> ast — Abstract Syntax Trees — Python 3.7.2 documentation</type>

Pandas for-loop memo

forループなんかすると絶対に遅いから、出来る限りapplyとかすること。

Pandas read_csv

delimiterとsepはいっしょ。 pandas.read_csv — pandas 0.23.4 documentation

Pandas ix

Warning Starting in 0.20.0, the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers. とな。 ゆえに、loc(ラベル)もしくはiloc(ポジション)で代替せよと。 Indexing and Selecting Data — pandas 0.23.4 documentation

PyPIに登録されているRedashのモジュール

PyPIで欲しいモジュールはある程度検索できるけど、Redash関係のPyPIモジュールを検索してみると実質数件くらいしかないことにきづく。 Search results · PyPI

memo redash-api-client

redashのAPI(のようなもの)を利用して、データソースやクエリを作成したり、クエリを実行したりできるやつ。 なんだけど、文字列補間を使っているのでPython3.6以上でないと動かないのと、公式じゃないし、API自体がそんなに便利じゃないきがする(クエリ作成…

twine get_config

twineのデフォルト設定ファイルってどこで指定しているんだろうとおもったら、get_config関数のデフォルト引数であった。 expanduserとのコンボでチルダパスでも設定が読み込める。 twine/utils.py at master · pypa/twine · GitHub 11.2. os.path — 共通の…

メモ setup.py

pipでinstallして使えるコマンドを雰囲気で作っている setup.pyでパッケージの情報を記録しておく python setup.py sdist でソースコードをtar.gz圧縮する python setup.py bdist_wheel でwheelを作る scriptsを指定しておくことでsdistするときにスクリプト…

Python click 複数オプション

click.optionを連続して書いてパラメータを付与。 @click.command() @click.option('--count', type=click.IntRange(0, 20, clamp=True)) @click.option('--digit', type=click.IntRange(0, 10)) def repeat(count, digit): click.echo(str(digit) * count) …

twineでisn't allowed to upload to project

チュートリアルをなぞってtwine uploadで403エラーなときのチェック https://test.pypi.org にアカウントを作成して、verifyしたか https://pypi.org とは違うアカウントである アップロードするプロジェクト名はユニークか だいたい example-pkg で登録しよ…

memo in2csv

memo in2csv エクセルやJSONをCSVに変換できる JSONはネストしててもある程度はカラムで対応できる 出力先で囲い文字は出せない HTMLエスケープしてたらCSV出力がおかしくなる in2csv — csvkit 1.0.3 documentation

pyenv-update

pyenvをアップデートするやつ チュートのとおりにいれたら、pyenv update が使えるようになって、pyenvをアップデートしてインストールできるPythonを増やせる。 GitHub - pyenv/pyenv-update: update pyenv and plugins

Pythonのマルチバイト文字列出力のちょっとしたメモ

Emacsのshell-commandで以下のようなPythonワンライナーを実行するとUnicodeEncodeErrorが発生した。 (shell-command-to-string "/usr/local/bin/python2.7 -c \"import sys; sys.stdout.write(u'テスト')\"") "Traceback (most recent call last): File \"<string>\</string>…

q sqlite3

使い方はマニュアルを見たらいいとして、sqliteを使っているので各種関数もsqliteなものが使えます 内部的には、sqlite3でメモリ上でテーブルを作成してクエリを実行しているので、試しに10MBくらいのファイルで実行してみると結果が帰ってっくるのに数秒く…

pycurl メモ

解決してない。なんか引っかかってる。 PycURL Home Page

is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. などというエラーがでたときの原因と対処方法。 python - PIP: "Cannot uninstall 'ipython'. It i…

Pandasで実現したいサンプル

SELECT name, COALESCE(ROUND((test_x / test_y) * 100, 2), 0) as percentage FROM (SELECT name, TYPE, text_x FROM INPUT WHERE TYPE = 'alpha') d1 LEFT OUTER JOIN (SELECT name, TYPE, text_y FROM INPUT WHERE TYPE = 'beta') d2 ON d1.name = d2.nam…

pandas inf to zero

inf to zero import numpy as np df_fund['dly_retn'].replace(np.inf, 0, inplace=True) pandas - How to replace inf in a numpy array with zero - Stack Overflow

joblibことはじめ

まだPython2.7で消耗している from time import sleep import timeit import joblib from joblib import Parallel, delayed def heavy_square_task(x, y, z): sleep(3) return x**2p # print ([heavy_square_task(x, y, z) for x, y, z in [(1, 2, 3), (2, 2…

sphinx release/version

sphinxでGitのtagをrelease/versionにするほうほう なのだけど、git describe の挙動がいまいちよくわからない 注釈付きのタグのなかで最新のタグの情報を引っ張ってきているようだけど、 注釈付きタグがないと No annotated tags can describe って出るし、…

DataFrame カラムだけ

pandas.DataFrame — pandas 0.23.4 documentation こういうふうにしてカラムだけ定義することができる。 pds = pd.DataFrame(columns=[ 'id', 'name' ])