API
registerCallbacks
プラグインのイベント処理エントリ ポイントをフレームワークに伝えるために使用する、すべてのプラグインのグローバル レベル関数。
registerCallbacks(reg)
- reg: 呼び出す関数をフレームワークに伝えるために使用する
Registrar。
Registrar
Registrar はプラグインの操作方法をフレームワークに伝えるために使用するオブジェクトです。これは、registerCallbacks 関数に渡されます。
アトリビュート
「getLogger」を参照してください。
メソッド
プラグイン内からメッセージをログに記録するために使用する python Logger オブジェクトを取得します。
setEmails(*emails)
このプラグインまたはそのコールバックのいずれかで問題が発生した場合に、エラーや重要な通知を受け取る電子メールを設定します。
設定ファイルで指定されている既定のアドレスに電子メールを送信する場合(既定)
reg.setEmails(True)
電子メールを無効にする場合(エラー メッセージが表示されないため、この設定は推奨しません)
reg.setEmails(False)
特定のアドレスに電子メールを送信する場合
reg.setEmails('user1@domain.com')
または
reg.setEmails('user1@domain.com', 'user2@domain.com')
registerCallback(sgScriptName, sgScriptKey, callback, matchEvents=None, args=None, stopOnError=True)
このプラグインのエンジンにコールバックを登録します。
sgScriptName: ShotGrid スクリプト ページから取得したスクリプトの名前。sgScriptKey: ShotGrid スクリプト ページから取得したスクリプトのアプリケーション キー。callback:__call__メソッドを使用する関数またはオブジェクト。「exampleCallback」を参照してください。matchEvents: コールバックに渡すイベントのフィルタ。args: フレームワークをコールバックに戻す任意のオブジェクト。stopOnError: ブール型。このコールバックの例外は、このプラグイン内のすべてのコールバックによるイベントの処理を停止します。既定値はTrueです。
sgScriptName は、ShotGrid のプラグインを特定するために使用します。任意の名前を任意の数のコールバックで共有することも、1 つののコールバックに 1 つのみにすることもできます。
sgScriptKey は、ShotGrid のプラグインを特定するために使用し、指定した sgScriptName の適切なキーである必要があります。
指定したコールバック オブジェクトは、フィルタに一致するイベントの処理が必要な場合に呼び出されます。呼び出し可能なオブジェクトを実行することはできますが、ここでクラスを使用することは推奨しません。__call__ メソッドを操作する関数やインスタンスを使用するほうが妥当です。
matchEvent 引数は、登録されているコールバックが関係するイベントを指定するフィルタです。matchEvents が指定されていない場合、または None が指定されている場合、すべてのイベントがコールバックに渡されます。それ以外の場合、matchEvents フィルタの各キーはイベント タイプです。各値は使用可能なアトリビュート名のリストです。
matchEvents = {
'Shotgun_Task_Change': ['sg_status_list'],
}
複数のイベント タイプやアトリビュート名を指定できます。
matchEvents = {
'Shotgun_Task_Change': ['sg_status_list'],
'Shotgun_Version_Change': ['description', 'sg_status_list']
}
指定したアトリビュート名のイベント タイプをフィルタすることができます。
matchEvents = {
'*': ['sg_status_list'],
}
また、特定のイベント タイプの任意のアトリビュート名をフィルタすることもできます。
matchEvents = {
'Shotgun_Version_Change': ['*']
}
以下のように指定することもできますが、何も指定しない場合と同じようにしか機能しないため、実際には指定しても無意味です。
matchEvents = {
'*': ['*']
}
「_New」や「_Retirement」などのフィールド固有でないイベント タイプと照合する場合には、リストを指定するのではなく、None という値を渡します。
matchEvents = {
'Shotgun_Version_New': None
}
args 引数は、イベント フレームワーク自体では使用されません。変更せずにコールバックに戻されるだけです。
注
: args 引数のポイントは、registerCallbacks 関数で時間のかかる処理を行い、イベント処理時に戻り値を渡せるようにすることです。
args 引数の別の使用方法として、dict などの一般的な可変値を複数のコールバックに渡してデータを共有するように指定できます。
stopOnError 引数は、このコールバックの例外によってプラグインのすべてのコールバックのイベント処理を停止するかどうかを伝えます。既定では True ですが、False に切り替えることもできます。イベントの処理を停止しない場合でも、エラーの通知メールが送信されます。コールバックごとに設定するため、重要なコールバックをユーザによって True または False にすることができます。
コールバック
Registrar.registerCallback によって登録するプラグイン エントリ ポイントは通常、次のようなグローバル レベル関数です。
exampleCallback(sg, logger, event, args)
sg: ShotGrid の接続インスタンス。logger: Python logging.Logger オブジェクトがあらかじめ設定されています。event: 処理する ShotGrid イベント。args: コールバックの登録時に指定する args 引数。
注
: オブジェクト インスタンスで __call__ メソッドとしてコールバックを使用できますが、ユーザの演習のみに使用するものとしておきます。