by shigemk2

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

Python

pytest 細かく

# ファイルごと pytest -v pandas/tests/io/formats/test_to_csv.py # クラスごと pytest -v pandas/tests/io/formats/test_to_csv.py::TestToCSV # メソッドごと pytest -v pandas/tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_file_object_wi…

Pythonのcodesのエラーハンドリングオプション一覧

Pythonのcodesのエラーハンドリングオプション一覧。 strict UnicodeError例外を出す ignore おかしなデータが来ても無視する replace おかしなデータが来たら?に置換する あとの置換方法はXML文字とかバックスラッシュエスケープ文字とかだけど、backslashr…

codes.openのerrors

codes.openのerrors strict デフォルト UnicodeErrorを発生させる ignore おかしなデータが来ても無視する replace おかしなデータが来たら?とか適当な文字に変換する codecs — Codec registry and base classes — Python 3.7.4 documentation

pandas pull request template

テストしろ flake8しろ blackしろ コードレビュー ソースコード自動生成

click.UsageError

使い方間違ってる、的なのを明示したいときの例外。 API — Click Documentation (7.x)

pandas Issue投げポイント

Issue投げてね Issueめちゃくちゃ多くてチェックするのしんどいから他に似たような内容のIssueがないか探してね バージョンを最新版にしてもう一度試してね pd.show_versions() の結果を貼っつけてね

RundeckRun

This is a lightweight wrapper written in Python to interact with the Rundeck API. It uses the awesome requests library. なんだけどコードみたらAPIのバージョンが11とかなので、実行中ジョブのリストなどは使えない… RundeckRun — RundeckRun 0.2.2 …

pyenv v1.2.13

アップデート後のpyenv rehashを忘れない python-build: Add CPython 3.7.4 python-build: Add CPython 3.6.9 Release v1.2.13 · pyenv/pyenv · GitHub

PyGitHub get_issues

Issueの情報を取得する。sinceがあってuntilがないのは、公式のAPIにuntilがないから。あとsinceは更新日時基準。 Repository — PyGithub 1.43.7 documentation Issues | GitHub Developer Guide GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" g = Github(G…

pandas read_json

pandas read_json pandasでJSONを読み込むアレ。 pandas.read_json — pandas 0.24.2 documentation

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