プラグイン開発をスピーディーに進めるためには、企画者の意図をすべて細かく把握しなくても、Pythonコードにその意図を的確に反映させることが重要です。そのための工夫として、プロジェクトのファイル構成を以下の3つのカテゴリに分けることを提案します。
特に「main」と「components」を適切に設計しておくことで、設計書がなくても、Pythonコードと設計だけで開発を進めることが可能になります。これにより、開発の手戻りを減らし、効率的にプロジェクトを進行できます。
🚥 基本ルール
-
現在、Webページ上で利用できるPythonのバージョンは「3.11.2」です。
-
すべてのPythonコードは関数の中に記述してください。コードを直接書いて実行するのではなく、def do():という関数を定義し、その中に処理を記述してください。
-
テストや動作確認を行う際は、定義した do() を呼び出すことで実行してください。
# General main.pya = 1b = 1value = a + bprint(value)# Functionalized main.pydef summation(a, b):return a + b# If you comment out the following three lines, the Python code won't execute immediately. a = 1b = 1summation(a, b) -
UIに入力されるデータのPythonコードを記述します。例えば、「NODE」データの'X'値のみをドロップリストに表示したい場合、以下のように記述します。
# components.pydef getNodeX4CompDropList():civil = MidasAPI(Product.CIVIL, "KR")nodeEntries = civil.dbRead("NODE")nodeXs = []for entry_id, entry_values in nodeEntries.items():x_value = entry_values.get("X")if x_value is not None:nodeXs.append(x_value)return nodeXs # [1, 2, 3, ...] X value of the NODE「X座標でフィルタリングする」というのは一例にすぎず、条件は設計基準や材料種別(コンクリート・鋼材など)に置き換えても構いません。重要なのは、UIに入力されるデータの意図を反映したPythonコードが存在していれば、ドロップリストに値を表示する処理は、ほぼ完成したも同然だということです。
-
また、main.pyに記述する関数は、パラメータを受け取る形式で書くのが望ましく、再利用性や柔軟性が高まります。たとえば、ドロップリストで選択した節点のX座標の値を2倍にする処理がある場合、選択されたX値を関数に引数として渡せば、処理が簡潔かつ明確になります。
以下にその例を示します。
# main.py
def main(selectedNodeX):
result = selectedNodeX * 2print(result)# Code for the testselectedNodeX = 1 # DropList Assumed that selected 1 in (Node X)main(selectedNodeX) # output displays as 2
📁 Pythonファイルの3つのカテゴリ
main.py
UIから値を取得し、最終的に実行するPythonコードを定義します。
components.py
Define the values to be filled in the UI components. Returning actual data allows for inferring and directly populating the UI without explanations from the design document.
UIコンポーネントに入力する値を定義します。実際のデータを返すことで、詳細な設計書がなくてもUIを直接推測して入力できます。
sub_logics.py ← ファイル名は自由に設定可能
main関数を補助するロジックを定義します。すべてのコードをmain関数に記述すると、他の開発者がコードを読みづらくなります。ロジックを役割ごとに分離し、1つまたは複数の補助ファイルに整理することで、保守性と再利用性が向上します。
🌐 Pythonコードのテストガイド
ライブラリの動作確認は、開発環境内でPythonコードを実行することで即時に可能です。
プラグイン開発環境でコードを動かすと、必要な処理がすぐに確認できるため、試行錯誤がしやすくなります。
1) ウェブページを通じてPythonをテストするための拡張機能をインストール
Pythonコードを保存するだけで即時実行できるようにするため、VS Code に「Live Server」などの拡張機能をインストールしてください。
この拡張機能により、ローカルサーバーが立ち上がり、ブラウザ上で動作確認ができます。
2) engineers-api-python の GitHub リポジトリを取得する
pyscript_tester という名前の新しいディレクトリを作成します。
3) 新しいプロジェクトを作成したい場合は、このpyscript_tester フォルダをコピーして、新しい名前のフォルダとして作成します。
4) 作成したフォルダを VS Code で開きます。
5)左側のツリーメニューから index.html をクリックし、画面右下にある「Go Live」をクリックします。
Live Server が正しくインストールされていれば、画面右下に「Go Live」が表示されているはずです。
6) ブラウザが自動で立ち上がり、下図のような画面が表示されれば、テスト環境の構築は成功です。
-
この基本構成では、pyscript_main.py が中心となる実行ファイルです。
-
補助的な処理を別ファイルで行いたい場合は、新たにPythonファイルを作成し、そのファイル名をpyscript_config.jsonに追記してください。