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