module_ctx

ヘルパー関数と、依存関係グラフ全体にわたる関連タグに関する情報が含まれるモジュール拡張機能のコンテキスト。モジュール拡張機能を作成するときに、module_LookML オブジェクトを implementation 関数の引数として取得します。

メンバー

ダウンロード

struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

指定された URL の出力パスにファイルをダウンロードし、success を含む構造体、ダウンロードが正常に完了した場合は true のフラグ、正常に完了した場合は sha256 フィールドと integrity フィールドを含むファイルのハッシュを返します。

パラメータ

パラメータ 説明
url string; or Iterable of strings; 必須
同じファイルを参照するミラー URL のリスト。
output string; or Label; or path; default = ''
出力ファイルのパス(リポジトリ ディレクトリを基準とする相対パス)。
sha256 default = ''
ダウンロードされるファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするためのオプションですが、リリース前に設定する必要があります。
executable default = False
作成されたファイルの実行可能フラグを設定します。デフォルトでは false です。
allow_fail デフォルト = False
true に設定すると、ダウンロードに失敗した場合にエラーをスローするのではなく、戻り値でエラーを示す
canonical_id デフォルト = ''
この値を設定すると、キャッシュ ヒットは、同じ正規 ID でキャッシュに追加されたファイルに限定されます
auth default = {}
URL の認証情報を指定するオプションの辞書。
integrity default = ''
ダウンロードされたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが発生します。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。

download_and_extract

struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})

指定された URL のファイルを出力パスにダウンロードし、解凍して、success を含む構造体、ダウンロードが正常に完了した場合は true のフラグ、正常に完了した場合は sha256 フィールドと integrity フィールドを含むファイルのハッシュを返します。

パラメータ

パラメータ 説明
url string; or Iterable of strings: 必須
同じファイルを参照するミラー URL のリスト。
output string; or Label; or path; デフォルト = ''
アーカイブを解凍するディレクトリのパス(リポジトリ ディレクトリからの相対パス)。
sha256 default = ''
ダウンロードされるファイルの想定される SHA-256 ハッシュ。ダウンロードしたファイルの SHA-256 ハッシュと一致している必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定されている場合、まずリポジトリ キャッシュで指定されたハッシュのファイルがチェックされます。キャッシュにファイルが見つからない場合のみ、ダウンロードが試行されます。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。
type default = ''
ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子から判断されます。ファイルに拡張子がない場合は、zip、jar、war、aar、tar、tar.gz、tgz、tar.xz、txz、.tar.zst、.tzst、tar.bz2、.ar のいずれかを明示的に指定できます。
stripPrefix デフォルト = ''
抽出されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。このフィールドを使用すると、この接頭辞を build_file で何度も指定しなくても、抽出されたファイルから削除できます。
allow_fail デフォルト = False
true に設定すると、ダウンロードに失敗したときにエラーをスローするのではなく、戻り値でエラーを示す
canonical_id デフォルト = ''
この値を設定すると、キャッシュ ヒットは、同じ正規 ID でキャッシュに追加されたファイルに限定されます
auth default = {}
URL の認証情報を指定するオプションの辞書。
integrity デフォルト = ''
ダウンロードされたファイルの想定されるチェックサム(Subresource Integrity 形式)。ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが発生します。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。
rename_files default = {}
抽出時に名前を変更するファイルを指定するオプションの辞書。名前がキーと完全に一致するアーカイブ エントリは、ディレクトリ接頭辞の調整の前に、値に名前が変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを抽出する場合に使用できます。

execute

exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

引数のリストで指定されたコマンドを実行します。コマンドの実行時間は timeout によって制限されます(秒単位、デフォルトは 600 秒)。このメソッドは、コマンドの出力を含む exec_result 構造体を返します。environment マップを使用すると、プロセスに渡される一部の環境変数をオーバーライドできます。

パラメータ

パラメータ 説明
arguments 必須
引数のリスト。最初の要素は、実行するプログラムのパスにする必要があります。
timeout デフォルト = 600
コマンドの最大時間(秒)。デフォルトは 600 秒です。
environment default = {}
一部の環境変数がプロセスに渡されるように設定されます。
quiet デフォルト = True
stdout と stderr をターミナルに出力するかどうか。
working_directory default = ""
コマンド実行用の作業ディレクトリ。 リポジトリのルート相対または絶対にできます。

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)

モジュール拡張機能の実装関数から返され、拡張機能によって生成されたリポジトリに関するメタデータを Bazel に提供する不透明なオブジェクトを構築します。

パラメータ

パラメータ 説明
root_module_direct_deps sequence of strings; or string; or None; デフォルト = None
拡張機能がルート モジュールの直接依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_repo を介してこれらのリポジトリをすべてインポートしない場合、拡張機能が評価されると、Bazel は警告と修正コマンドを出力します。

root_module_direct_depsroot_module_direct_dev_deps のいずれかを指定する場合は、もう一方も指定する必要があります。これら 2 つのパラメータで指定するリストは互いに重複している必要があります。

root_module_direct_depsroot_module_direct_dev_deps のいずれか 1 つを特別な値 "all" に設定できます。これは、拡張機能によって生成されたすべてのリポジトリの名前を含むリストが値として指定された場合と同様に扱われます。

root_module_direct_dev_deps sequence of strings; or string; or None; デフォルト = None
拡張機能がルート モジュールの直接的な開発依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_extension(..., dev_dependency = True) で作成された拡張機能プロキシの use_repo を介してこれらのリポジトリをすべてインポートしない場合、拡張機能が評価されると、Bazel は警告と修正コマンドを出力します。

root_module_direct_depsroot_module_direct_dev_deps のいずれかを指定する場合は、もう一方も指定する必要があります。これらの 2 つのパラメータで指定されたリストは重複しない必要があります。

root_module_direct_depsroot_module_direct_dev_deps のいずれか 1 つを特別な値 "all" に設定できます。これは、拡張機能によって生成されたすべてのリポジトリの名前を含むリストが値として指定された場合と同様に扱われます。

ファイル

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

指定されたコンテンツを含むファイルをリポジトリ ディレクトリに生成します。

パラメータ

パラメータ 説明
path string; or Label; or path: 必須
リポジトリ ディレクトリを基準とする、作成するファイルのパス。
content default = ''
作成するファイルの内容。デフォルトでは空です。
executable default = True
作成されたファイルに実行可能フラグを設定します。デフォルトは true です。
legacy_utf8 デフォルト = True
ファイル コンテンツを UTF-8 にエンコードします。デフォルトは true です。今後のバージョンでデフォルトが変更され、このパラメータは削除されます。

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

指定されたタグが、devDependency = True を使用した use_extension 呼び出しの結果で指定されたかどうかを返します。

パラメータ

パラメータ 説明
tag bazel_module_tag; 必須
bazel_module.tags から取得したタグ。

is_isolated

bool module_ctx.is_isolated

拡張機能のこの特定の用途に isolate = True が指定されており、他のすべての用途から分離されているかどうか。

modules

list module_ctx.modules

このモジュール拡張機能を使用している、外部依存関係グラフ内のすべての Bazel モジュールのリスト。各モジュールは、この拡張機能に指定されたすべてのタグを公開する bazel_module オブジェクトです。この辞書の反復順序は、ルート モジュールから始まる幅優先探索と同じであることが保証されます。

os

repository_os module_ctx.os

システムからの情報にアクセスするための構造体。

パス

path module_ctx.path(path)

文字列、ラベル、パスからパスを返します。パスが相対パスの場合、リポジトリ ディレクトリを基準に解決されます。パスがラベルの場合は、対応するファイルのパスに変換されます。リモート リポジトリは分析フェーズ中に実行されるため、ターゲット結果に依存することはできません(ラベルは生成されていないファイルを指す必要があります)。path がパスの場合、そのパスをそのまま返します。

パラメータ

パラメータ 説明
path string; or Label; or path; 必須
パスを作成する文字列、ラベル、パス

read

string module_ctx.read(path)

ファイル システム上のファイルの内容を読み取ります。

パラメータ

パラメータ 説明
path string; or Label; or path; 必須
読み取り元のファイルのパス。

report_progress

None module_ctx.report_progress(status='')

このリポジトリまたはモジュール拡張機能の取得の進行状況ステータスを更新します

パラメータ

パラメータ 説明
status string; default = ''
取得の進行状況の現在のステータスを説明する文字列

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

ルート モジュールがこの拡張機能を非デベロッパー依存関係として使用しているかどうか。

これは

path module_ctx.which(program)

対応するプログラムのパスを返します。パス内にそのようなプログラムが存在しない場合は None を返します。

パラメータ

パラメータ 説明
program 必須
パス内で検索するプログラム。
None が返されることがあります。