by shigemk2

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

memo redash-api-client

redashのAPI(のようなもの)を利用して、データソースやクエリを作成したり、クエリを実行したりできるやつ。

なんだけど、文字列補間を使っているのでPython3.6以上でないと動かないのと、公式じゃないし、API自体がそんなに便利じゃないきがする(クエリ作成APIのようなものを実行してもドラフト保存がデフォルトだったり)ので、あんまり使われていない印象。

GitHub - damnee562/redash-api-client: Redash API Client written in Python

メモ setup.py

pipでinstallして使えるコマンドを雰囲気で作っている

  • setup.pyでパッケージの情報を記録しておく
  • python setup.py sdist でソースコードをtar.gz圧縮する
  • python setup.py bdist_wheel でwheelを作る
  • scriptsを指定しておくことでsdistするときにスクリプトも一緒にまとめてくれる。というか、twine upload→ pip installするときにスクリプトをインストールしてくれるようになる。
  • ディレクトリ構成はこっちを参考にした aws-cli/setup.py at develop · aws/aws-cli · GitHub

2. setup スクリプトを書く — Python 3.6.5 ドキュメント

twineでisn't allowed to upload to project

チュートリアルをなぞってtwine uploadで403エラーなときのチェック

  • https://test.pypi.org にアカウントを作成して、verifyしたか
  • アップロードするプロジェクト名はユニークか
    • だいたい example-pkg で登録しようとするから気をつけたい
  • distの中にwhlとtar.gzが複数ないか
    • チュートリアルに沿ってガシガシリネームするので別な名前のパッケージがdistの中に複数存在する
HTTPError: 403 Client Error: The user 'xxxxx' isn't allowed to upload to project 'example-pkg'.

Packaging Python Projects — Python Packaging User Guide

MySQL Docker メモ

Environment Variables の項目を参照する。これの元ネタは、当然MySQLのリファレンスなわけど、↓に載っていないやつが使えるかどうかは分からない。max_allowed_packetなどちょっとした値をいじりたいときはdocker run--max_allowed_packetを追加する

Docker Hub

もろもろを体現したのがこちら。

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci