Skip to content

Python

pybatfish 2024.7.22.1569 では bfq や load_questions が廃止

pybatfish の古いバージョンでは bfqload_questions というモジュールが必要でした。 ですが、これらのモジュールは廃止になっているようです (おそらく pybatfish: delete legacy default session #907) のあたり?)。 基本的には Session を利用することで Batfish に接続出来るようです。 今回は「新しいバージョンでのサンプルスクリプト」をメモしておきます。

Python で CiscoConfParse2 を使って Cisco コンフィグから必要部分を抽出する

Python の ciscoconfparse を使うと Cisco 機器のコンフィグファイルから必要な箇所を抽出することが出来ます。 このライブラリに関して以前に以下のメモを書きました。

このライブラリは後継になるバージョン 2 が別パッケージとしてリリースされています。

バージョン 1 のページには「バージョン 2 へアップグレードすべき理由」として下記の記載があります。

  • It supports all major network vendor text configuration files (Arista, Cisco, F5, Juniper, Palo Alto)
  • It supports searching across any number of configuration levels (ciscoconfparse only supports two config levels : a parent and child)
  • It adds a string methods so you don't need to use regex matching if you don't want to
  • It adds a CLI command
  • Revamped documentation
  • It simplifies the user interface and fixes broken ciscoconfparse default parameters (this could require changing old scripts using the original API)
  • It intentionally uses a new python import to minimize confusion between itself and the original

今回は ciscoconfparse2 のチュートリアルページに掲載されている簡単な使い方をメモしておきます。

textfsm で利用するテンプレートを Python スクリプトに含める

以前に IOS-XE の show ip route を textfsm で解析する というメモを書きました。 このメモでは TextFSM で利用するテンプレートを外部ファイルとして保存していました。 テンプレートを外部ファイルでは無く、Python スクリプトに同梱してしまうサンプルスクリプトをメモしておきます。

direnv で Python 仮想環境を有効化した際にプロンプト表示も変更するスクリプト

以前に以下のメモを書きました。

一般的に「手動で Python 仮想環境を有効化」した際はプロンプトに仮想環境名が表示される場合が多いと思います。 ですが、上記の過去メモでは direnv で Python 仮想環境を有効化した際、プロンプト表示が変更されない仕様になっていました。 そこで今回は「direnv で Python 仮想環境を有効化した際に、プロンプトに仮想環境名を表示する」ようにスクリプトを改修しました。

Ubuntu 24.04LTS に asdf + uv + direnv で Python 環境を構築する

以前に以下のメモを書きました。

2024/4/24 に Ubuntu 24.04LTS が正式リリースされましたので、改めて Ubuntu 24.04LTS に以下をインストールして Python 環境を構築する手順をメモしておきます。

Ubuntu 22.04.4LTS に uv を入れて Python のパッケージを管理する

比較的新しい Python のパッケージ管理ツールに uv があります。 Rye Grows With UV には以下の記載があります。

Two weeks ago I asked the question again about What Rye should be. There has been one thing that I have not publicly shared before and that is that ever since Rye exists I have also been talking to Charlie Marsh about Python packaging and Python tooling. It turns out that we had some shared ideas of what an ideal Python tooling landscape would look like. That has lead to some very interesting back and forths. To make a potentially very long story short: Together with Astral's release of uv they will take stewardship of Rye. For the details read on.

今回は Ubuntu 24.04.4LTS に uv を入れる手順と基本的な使い方をメモしておきます。 尚、uv で作成した仮想環境へ切り替える際は direnv が便利です。 direnv は過去に以下のメモで触れています。