Skip to content

Python

Python で Cisco Webex Teams のスペースに所属するメンバー一覧を取得する

Python で webexteamssdk を使い、Webex Teams のスペース (≒ チャット) に参加しているメンバー一覧を取得するスクリプト例をメモしておきます。 Ubuntu 22.04LTS + Python 3.10.4 環境で動作確認しました。 メンバー取得出来るのは後の手順で作成する bot が所属しているスペースが対象です。

resopnder で「 'typesystem' has no attribute 'SchemaDefinitions'」エラーを回避する

responder でアプリケーションを書いても AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions' というエラーになる場合があります。 例えば以下のように pip で gunicorn や responder をインストールせずにインストールし、アプリケーションを実行した場合にエラーになるかも知れません。

Python の venv 環境を direnv で自動的に有効/無効化する

Python で venv 環境を作成した際、該当ディレクトリに移動する毎に source venv/bin/activate する必要があります。 direnv を使うことでこれを自動化することが出来ます。 direnv は現時点で Release v2.31.0 が最新ですがバイナリが登録されていない為、今回は Release v2.30.3 を利用します。 尚、今回は Ubuntu 20.04LTS 上でテストしました。

pybatfish で対象コンフィグが更新されている場合のみ、スナップショットを再作成する

batfish に同梱されているサンプルスクリプトや、インターネット上で見かけるスクリプト例は「スナップショットの有無に関わらず、スナップショットを生成する」ものが多いと思います ("例" なので、そういうものなのだと思います)。 仮に何度もスクリプトを実行し直す場合は、「コンフィグに変化が無いのであれば、毎回のスナップショット再作成は不要」という場合もあると思います。 そういった場合の実装例をメモしておきます。

例として Question には ipOwners を利用していますが、どの Question を利用してもスナップショット初期化部分の考え方は同じです。