module_ctx

問題を報告する ソースを表示 ナイトリー · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

メンバー

ダウンロード

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

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

パラメータ

パラメータ 説明
url 文字列、または文字列の iterable。必須
同じファイルを参照するミラー URL のリスト。
output 文字列ラベルパス。デフォルトは ''
。リポジトリ ディレクトリを基準とする出力ファイルのパス。
sha256 デフォルトは ''
で、ダウンロードされたファイルの想定される SHA-256 ハッシュです。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドは非密封になります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定されている場合、まずリポジトリ キャッシュで指定されたハッシュのファイルがチェックされます。キャッシュにファイルが見つからない場合のみ、ダウンロードが試行されます。ダウンロードが正常に完了すると、ファイルはキャッシュに追加されます。
executable デフォルトは False です。
作成されたファイルの実行可能フラグを設定します。デフォルトでは false です。
allow_fail デフォルトは False
です。設定すると、ダウンロードに失敗したときにエラーをスローするのではなく、戻り値でエラーを示します。
canonical_id デフォルトは ''
この値を設定すると、キャッシュ ヒットは、ファイルが同じ正規 ID でキャッシュに追加された場合にのみ発生します。デフォルトでは、キャッシュ保存はチェックサム(sha256 または integrity)を使用します。
auth デフォルトは {}
URL の認証情報を指定するオプションの辞書。
headers デフォルトは {}
すべての URL の HTTP ヘッダーを指定するオプションの辞書。
integrity デフォルトは ''
ダウンロードされたファイルの想定チェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが発生します。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定すると、指定したチェックサムを持つファイルがないか、まずリポジトリのキャッシュがチェックされます。ダウンロードは、ファイルがキャッシュに見つからなかった場合にのみ試行されます。ダウンロードが正常に完了すると、ファイルはキャッシュに追加されます。
block デフォルトは True
です。false に設定すると、呼び出しはすぐに戻り、通常の戻り値ではなく、1 つのメソッド wait() でトークンを返します。このメソッドは、ダウンロードが完了するまでブロックし、通常の戻り値を返すか、通常どおりスローします。

download_and_extract

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

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

パラメータ

パラメータ 説明
url 文字列、または文字列の iterable。必須
同じファイルを参照するミラー URL のリスト。
output 文字列ラベルパス。デフォルトは ''
。アーカイブを展開するディレクトリのパス(リポジトリ ディレクトリからの相対パス)。
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、.tb のいずれかを明示的に指定できます。
stripPrefix デフォルトは '' です。
抽出されたファイルから削除するディレクトリ接頭辞です。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。この接頭辞を build_file で何度も指定する代わりに、このフィールドを使用して、抽出されたファイルから削除できます。
allow_fail デフォルトは False
です。設定すると、ダウンロードに失敗したときにエラーをスローするのではなく、戻り値でエラーを示します。
canonical_id デフォルトは ''
この値を設定すると、キャッシュ ヒットは、ファイルが同じ正規 ID でキャッシュに追加された場合にのみ発生します。デフォルトでは、キャッシュ保存はチェックサム(sha256 または integrity)を使用します。
auth デフォルトは {}
URL の認証情報を指定するオプションの辞書。
headers デフォルトは {}
すべての URL の HTTP ヘッダーを指定するオプションの辞書。
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 required
引数のリスト。最初の要素は、実行するプログラムのパスにする必要があります。
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, reproducible=False)

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

パラメータ

パラメータ 説明
root_module_direct_deps 文字列シーケンス、または文字列、または None。デフォルトは None
拡張機能がルート モジュールの直接依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_repo を介してこれらのリポジトリをすべてインポートしない場合、Bazel は拡張機能の評価時に警告を表示し、bazel mod tidy を実行して use_repo 呼び出しを自動的に修正するようユーザーに指示します。

root_module_direct_deps のいずれかの場合、拡張機能の評価時に警告と修正コマンドが出力されます。

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

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

root_module_direct_dev_deps stringシーケンス、または string、または None。デフォルトは None です。
拡張機能がルート モジュールの直接的な開発依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_extension(..., dev_dependency = True) で作成された拡張プロキシの use_repo を介してこれらのリポジトリをすべてインポートしない場合、拡張機能が評価されると、Bazel は警告を表示し、bazel mod tidy を実行して use_repo 呼び出しを自動的に修正するようユーザーに指示します。

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

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

reproducible bool; デフォルトは False
このモジュール拡張により完全な再現性が保証されるため、ロックファイルに保存する必要がないことを示します。

extract

None module_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')

アーカイブをリポジトリ ディレクトリに抽出します。

パラメータ

パラメータ 説明
archive 文字列ラベルパス。必須
展開するアーカイブのパス(リポジトリ ディレクトリからの相対パス)。
output 文字列ラベルパス。デフォルトは ''
。アーカイブを展開するディレクトリのパス(リポジトリ ディレクトリからの相対パス)。
stripPrefix デフォルトは ''
です。解凍されたファイルから削除するディレクトリ接頭辞です。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。このフィールドを使用すると、この接頭辞を build_file で何度も指定しなくても、抽出されたファイルから削除できます。
rename_files デフォルトは {}
抽出時に名前を変更するファイルを指定するオプションの辞書。名前がキーと完全に一致するアーカイブ エントリは、ディレクトリ接頭辞の調整の前に、値に名前が変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを抽出する場合に使用できます。
watch_archive デフォルトは 'auto'
です。アーカイブ ファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれかです。「yes」を渡すと、watch() メソッドを直ちに呼び出すのと同じ結果になります。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、許可されている場合にのみ、ファイルの監視が試行されます(詳しくは、watch() のドキュメントをご覧ください)。

ファイル

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

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

パラメータ

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

getenv

string module_ctx.getenv(name, default=None)

環境変数 name の値を文字列として返します(存在する場合)。存在しない場合は default を返します。

段階的にビルドする場合、name で指定された変数の値が変更されると、このリポジトリが再取得されます。

パラメータ

パラメータ 説明
name 文字列。必須
目的の環境変数の名前
default 文字列、または None。デフォルトは None
「name」が見つからない場合に返されるデフォルト値。
None を返す場合があります。

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 文字列ラベルパス。必須
パスを作成する文字列、ラベル、パス。

read

string module_ctx.read(path, *, watch='auto')

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須
読み取り元のファイルのパス。
watch デフォルトは 'auto'
ファイルの監視を行うかどうか。文字列「yes」、「no」、「auto」のいずれかです。「yes」を渡すと、watch() メソッドがすぐに呼び出されます。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、ファイルの監視は、監視が許可されている場合にのみ試行されます(詳細については、watch() のドキュメントをご覧ください)。

report_progress

None module_ctx.report_progress(status='')

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

パラメータ

パラメータ 説明
status 文字列。デフォルトは ''
。取得の進行状況の現在のステータスを示す文字列。

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

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

再起動する

None module_ctx.watch(path)

指定したパスの変更、パスの存在、パスがファイルかディレクトリかを監視するよう Bazel に指示します。ファイルまたはディレクトリを変更すると、このリポジトリまたはモジュール拡張機能が無効になり、次回再取得または再評価されます。

「変更」には、ファイルの内容に対する変更(パスがファイルの場合)、パスがファイルであったがディレクトリになった場合、またはその逆の場合、パスが既存の開始または停止した場合が含まれます。なお、パスがディレクトリの場合、ディレクトリ内のファイルの変更は含まれません。その場合は、代わりに path.readdir() を使用します。

ただし、現在フェッチ中のリポジトリ内または現在のモジュール拡張機能の作業ディレクトリ内のパスを監視しようとすると、エラーが発生します。現在の Bazel ワークスペース外のパスをモニタリングしようとするモジュール拡張機能でも、エラーが発生します。

パラメータ

パラメータ 説明
path stringLabelpath。監視するファイルのパスの
必須パス。

これは

path module_ctx.which(program)

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

パラメータ

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