module_ctx

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

メンバー

ダウンロード

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

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

パラメータ

パラメータ 説明
url 文字列、または 文字列の Iterable。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath。デフォルトは ''
です。 リポジトリ ディレクトリを基準とする出力ファイルのパス。
sha256 デフォルトは ''
です。ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略可能ですが、出荷前に設定する必要があります。
executable デフォルトは False
です。作成されたファイルに実行可能フラグを設定します。デフォルトは false です。
allow_fail デフォルトは False
です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。
canonical_id デフォルトは ''
です。 設定されている場合、キャッシュ ヒットは、同じ正規 ID でファイルがキャッシュに追加されたケースに制限されます。
auth デフォルトは {}
です。 一部の URL の認証情報を指定する省略可能な辞書。
integrity デフォルトは ''
です。 ダウンロードしたファイルの想定されるチェックサム(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 を含む構造体を返します。success は、ダウンロードが正常に完了した場合は true になるフラグです。ダウンロードが正常に完了した場合は、sha256 フィールドと integrity フィールドを含むファイルのハッシュも返します。

パラメータ

パラメータ 説明
url 文字列、または 文字列の Iterable。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath。デフォルトは ''
です。リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。
sha256 デフォルトは ''
です。ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたハッシュを持つファイルが最初にチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからなかった場合のみです。ダウンロードが完了すると、ファイルがキャッシュに追加されます。
type デフォルトは ''
です。ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子から判断されます。ファイルに拡張子がない場合は、ここで「zip」、「jar」、「war」、「aar」、「tar」、「tar.gz」、「tgz」、「tar.xz」、「txz」、「.tar.zst」、「.tzst」、「tar.bz2」、「.tbz」、「.ar」、「.deb」のいずれかを明示的に指定できます。
stripPrefix デフォルトは ''
です。解凍されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位のディレクトリが含まれています。build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して抽出されたファイルから接頭辞を削除できます。
allow_fail デフォルトは False
です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。
canonical_id デフォルトは ''
です。 設定されている場合、キャッシュ ヒットは、同じ正規 ID でファイルがキャッシュに追加されたケースに制限されます。
auth デフォルトは {}
です。 一部の URL の認証情報を指定する省略可能な辞書。
integrity デフォルトは ''
です。 ダウンロードしたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略可能ですが、出荷前に設定する必要があります。
rename_files デフォルトは {}
です。 抽出時に名前を変更するファイルを指定するオプションの辞書。キーと完全に一致する名前のエントリは、ディレクトリ プレフィックスの調整前に値に名前変更されます。これは、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 デフォルトは {}
です。プロセスに渡されるように、いくつかの環境変数を強制的に設定します。
quiet デフォルトは True
です。stdout と stderr をターミナルに出力するかどうか。
working_directory デフォルトは ""
です。コマンド実行の作業ディレクトリ。リポジトリ ルートからの相対パスまたは絶対パスを指定できます。

extension_metadata

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

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

パラメータ

パラメータ 説明
root_module_direct_deps 文字列シーケンス、または文字列、または 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 文字列シーケンス文字列、または 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 文字列ラベルパス。必須
リポジトリ ディレクトリを基準とする、作成するファイルのパス。
content デフォルトは ''
です。作成するファイルの内容。デフォルトは空です。
executable デフォルトは 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; required
bazel_module.tags から取得したタグ。

modules

list module_ctx.modules

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

os

repository_os module_ctx.os

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

パス

path module_ctx.path(path)

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

パラメータ

パラメータ 説明
path stringLabelpath。必須
パスの作成元となる文字列、ラベル、パス

read

string module_ctx.read(path)

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須。
読み取るファイルのパス。

report_progress

None module_ctx.report_progress(status='')

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

パラメータ

パラメータ 説明
status string; デフォルトは ''
フェッチの進行状況の現在のステータスを説明する文字列

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

ルート モジュールがこの拡張機能を非開発依存関係として使用するかどうか。

これは

path module_ctx.which(program)

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

パラメータ

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