テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

Hugoでシンタックスハイライトのスタイルを変更する

Hugoの設定ファイルconfig.tomlに以下を追加するとシンタックスハイライトが有効になります。 pygmentscodefences = true スタイルを変更するには、以下を追加するとできます。 pygmentsstyle = "solarized-light" 使用できるスタイルは以下を参照すると良い…

Git hookを初期化する

Git

いろいろGit hookを試しているとどれインストールされていているか分からなくなったりして、いったんリセットしたいときは、.git/hooksを削除して、git initで再度イニシャライズをします。 $ rm -rf .git/hooks $ git init Reinitialized existing Git repo…

pyenv + toxで複数バージョンのテストを行う

pyenvを使用している環境で、toxで複数バージョンのテストをするときはまったのでそのメモです。 tox.iniに以下のように設定しておき、toxでテストを実行しました。 [tox] envlist = py36, py37 [testenv] deps = pytest commands = pytest $ tox GLOB sdist…

Clickのテストで例外をキャッチしない

PythonのCLIフレームワークであるClickでは、テストツールも用意されており、容易にテストを書くことができます。 invokeを使えば、コマンドと引数を渡すことができますが、デフォルトでは例外をキャッチします。 通常は、exit_codeの値を比較すればよいので…

Github Actionsでジョブが成功したら次のジョブを実行する

テストが成功したらデプロイするみたいに、あるジョブの実行には前のジョブが成功が必要となるワークフローを書くには、needsを使うとできます。 name: build on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@master # テス…

Pythonで優先度付きキューを使う

Pythonでの優先度付きキューはheapqを使うとできます。 import heapq 最小ヒープ はじめに、リストをキューに優先度付きキューに変換します。 que = [3, 1, 5, 2] heapq.heapify(que) 先頭に最小値がきます。(先頭以外はソートされているわけではありません…

pyproject.toml利用時にアプリのバージョンを取得する

Pythonパッケージを作成する際、__init__.pyにバージョンを書いておき、setup.pyでは__init__.pyからimportすることが一般的かと思います。しかし、pyproject.toml を利用するとPythonファイルではないので setup.py のようにバージョンをimportすることはで…