module_ctx

問題を報告 ソースを表示 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

メンバー

ダウンロード

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

指定された URL のファイルを出力パスにダウンロードし、success を含む構造体を返します。success は、ダウンロードが正常に完了した場合は true になるフラグです。ダウンロードが正常に完了した場合は、sha256 フィールドと integrity フィールドを含むファイルのハッシュも返します。sha256 または integrity がユーザー指定の場合、明示的な canonical_id を設定することを強くおすすめします。例: get_default_canonical_id

パラメータ

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

download_and_extract

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

指定された URL のファイルをダウンロードして出力パスに保存し、抽出して、success を含む構造体を返します。success は、ダウンロードが正常に完了した場合は true になるフラグです。ダウンロードが正常に完了した場合は、sha256 フィールドと integrity フィールドを含むファイルのハッシュも返します。sha256 または integrity がユーザー指定の場合、明示的な canonical_id を設定することを強くおすすめします。例: get_default_canonical_id

パラメータ

パラメータ 説明
url string、または string の Iterable。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath のいずれか。デフォルトは ''
です。 リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。
sha256 string; デフォルトは ''
ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非密閉型になります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたハッシュを持つファイルが最初にチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからなかった場合のみです。ダウンロードが成功すると、ファイルがキャッシュに追加されます。
type string。デフォルトは ''
です。 ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子から判断されます。ファイルに拡張子がない場合は、ここで「zip」、「jar」、「war」、「aar」、「nupkg」、「tar」、「tar.gz」、「tgz」、「tar.xz」、「txz」、「.tar.zst」、「.tzst」、「tar.bz2」、「.tbz」、「.ar」、「.deb」のいずれかを明示的に指定できます。
strip_prefix string; デフォルトは ''
抽出されたファイルから削除するディレクトリの接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して、抽出されたファイルから接頭辞を削除できます。

互換性を確保するため、このパラメータは非推奨の名前 stripPrefix でも使用できます。

allow_fail bool; デフォルトは False
設定されている場合、ダウンロードの失敗に対してエラーを発生させるのではなく、戻り値でエラーを示します。
canonical_id 文字列。デフォルトは ''
です。 設定すると、ファイルが同じ正規 ID でキャッシュに追加された場合にのみ、キャッシュ ヒットが制限されます。デフォルトでは、キャッシュ保存はチェックサム(sha256 または integrity)を使用します。
auth dict; デフォルトは {}
一部の URL の認証情報を指定する省略可能な dict。
headers dict; デフォルトは {}
すべての URL の HTTP ヘッダーを指定するオプションの辞書。
integrity 文字列。デフォルトは ''
です。 ダウンロードしたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非密閉型になります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたチェックサムを持つファイルが最初に確認されます。ダウンロードは、ファイルがキャッシュで見つからなかった場合にのみ試行されます。ダウンロードが成功すると、ファイルがキャッシュに追加されます。
rename_files dict; デフォルトは {}
抽出時に名前を変更するファイルを指定する省略可能な dict。キーと完全に一致する名前のエントリは、ディレクトリ プレフィックスの調整前に値に名前変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを含むアーカイブを抽出するために使用できます。

execute

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

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

パラメータ

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

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

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

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

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

extract

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

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

パラメータ

パラメータ 説明
archive stringLabelpath。必須。
解凍されるアーカイブへのパス。リポジトリ ディレクトリからの相対パスです。
output stringLabelpath。デフォルトは ''
です。リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。
strip_prefix string; デフォルトは ''
抽出されたファイルから削除するディレクトリの接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して抽出されたファイルから接頭辞を削除できます。

互換性を確保するため、このパラメータは非推奨の名前 stripPrefix でも使用できます。

rename_files dict; デフォルトは {}
抽出時に名前を変更するファイルを指定する省略可能な dict。キーと完全に一致する名前のエントリは、ディレクトリ プレフィックスの調整前に値に名前変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを含むアーカイブを抽出するために使用できます。
watch_archive string; デフォルトは 'auto'
アーカイブ ファイルを監視するかどうか。文字列「yes」、「no」、「auto」を指定できます。「yes」を渡すと、watch() メソッドがすぐに呼び出されます。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、ファイルの監視が許可されている場合にのみ、ファイルの監視が試行されます(詳しくは、watch() のドキュメントをご覧ください)。

ファイル

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

指定された内容でリポジトリ ディレクトリにファイルを作成します。

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須
リポジトリ ディレクトリを基準とする、作成するファイルのパス。
content string; デフォルトは ''
作成するファイルの内容。デフォルトは空です。
executable bool; デフォルトは True
作成されたファイルに実行可能フラグを設定します。デフォルトは true です。
legacy_utf8 bool; デフォルトは False
No-op。このパラメータは非推奨であり、今後のバージョンの Bazel で削除される予定です。

getenv

string module_ctx.getenv(name, default=None)

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

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

パラメータ

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

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

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

パラメータ

パラメータ 説明
tag bazel_module_tag; 必須
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。必須
パスの作成元となる stringLabelpath

read

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

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

パラメータ

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

report_progress

None module_ctx.report_progress(status='')

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

パラメータ

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

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)

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

パラメータ

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