グローバル

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
問題を報告

グローバル環境に登録されているオブジェクト、関数、モジュール。

メンバー

all

bool all(elements)

すべての要素が True と評価された場合、またはコレクションが空の場合は true を返します。要素は bool 関数を使用してブール値に変換されます。
all(["hello", 3, True]) == True
all([-1, 0, 1]) == False

パラメータ

パラメータ 説明
elements 必須
文字列または要素のコレクション。

analytics_test_migration

transition analysis_test_transition(settings)

analytics-test ルールの依存関係に適用する構成遷移を作成します。この移行は、analysis_test = True を持つルールの属性にのみ適用されます。このようなルールは機能において制限があります(たとえば、依存関係ツリーのサイズに制限があるため)。そのため、この関数を使用して作成する移行は、migration を使用して実行される遷移と比較して潜在的な範囲が限定されます。

この関数は主に、分析テスト フレームワークのコアライブラリを促進するように設計されています。ベスト プラクティスについては、ドキュメント(またはその実装)をご覧ください。

パラメータ

パラメータ 説明
settings 必須
この構成の遷移により設定される構成設定に関する情報を含む辞書。キーはビルド設定ラベルであり、値は移行後の新しい値です。その他の設定はすべて変更されません。これを使用して、解析テストで合格するために必要な特定の構成設定を宣言します。

任意

bool any(elements)

少なくとも 1 つの要素が true と評価された場合に true を返します。要素は bool 関数を使用してブール値に変換されます。
any([-1, 0, 1]) == True
any([False, 0, ""]) == False

パラメータ

パラメータ 説明
elements 必須
文字列または要素のコレクション。

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

この依存関係は、レジストリではなく特定の場所にあるアーカイブ ファイル(zip、gzip など)に由来することを指定します。このディレクティブはルート モジュールでのみ使用できます。つまり、モジュールがオーバーライドを指定している場合、他のモジュールは依存関係として使用できません。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュールの依存関係の名前。
urls string; or Iterable of strings 必須
アーカイブの URL。http(s):// または file:// の URL です。
integrity default = ''
サブリソースの完全性形式のアーカイブ ファイルの想定チェックサム。
strip_prefix default = ''
抽出されたファイルから削除するディレクトリ接頭辞。
patches Iterable of strings; default = []
このモジュールに適用するパッチファイルを指すラベルのリスト。パッチファイルはトップレベル プロジェクトのソースツリーに存在している必要があります。これらはリストの順序で適用されます。
patch_cmds Iterable of strings; default = []
パッチの適用後に Linux / macOS に適用される Bash コマンドのシーケンス。
patch_strip デフォルト = 0
Unix パッチの --strip 引数と同じです。

アスペクト

Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)

新しい要素を作成します。この関数の結果は、グローバル値に保存する必要があります。詳しくは、Aspective の概要をご覧ください。

パラメータ

パラメータ 説明
implementation 必須
ターゲットの属性は ctx.rule フィールドを介して使用できます。この関数は、分析対象の各フェーズで対象に個々のアプリケーションを適用するたびに評価されます。
attr_aspects sequence of strings; default = []
属性名のリスト。アスペクトは、これらの名前を持つターゲットの属性で指定された依存関係に沿って伝播されます。一般的な値には depsexports があります。このリストには、ターゲットのすべての依存関係を伝播する単一の文字列 "*" を含めることもできます。
attrs dict; or None; default = None
特徴のすべての属性を宣言する辞書。この属性は、属性名から「attr.label」や「attr.string」などの属性オブジェクトにマッピングされます(attr モジュールを参照)。実装属性は、アスペクトの属性を ctx パラメータのフィールドとして利用できます。

_ で始まる暗黙の属性は、デフォルト値かつ label 型または label_list 型にする必要があります。

明示的な属性は string 型で、values 制限を使用する必要があります。明示的な属性を使用すると、制限に従い、同じ名前、型、有効な値の属性を持つルールでのみアスペクトを使用できます。

required_providers default = []
この属性により、アスペクトは、ルールが必須のプロバイダをアドバタイズするターゲットにのみ伝播を制限できます。値は、個々のプロバイダまたはリストのいずれかで、両方を含まないリストである必要があります。たとえば、[[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。

ネストされていないプロバイダのリストは、1 つのプロバイダのリストを含むリストに自動的に変換されます。つまり、[FooInfo, BarInfo] は自動的に [[FooInfo, BarInfo]] に変換されます。

一部のルール(some_rule など)を特定の要素で表示できるようにするには、some_rule を、少なくとも 1 つの必須プロバイダ リストにあるすべてのプロバイダにアドバタイズする必要があります。たとえば、あるアスペクトの required_providers[[FooInfo], [BarInfo], [BazInfo, QuxInfo]] である場合、some_ruleFooInfo * または * BarInfo * または * BazInfo * および QuxInfo の両方を提供する場合に限り、このアスペクトは some_rule ターゲットを参照できます。

required_aspect_providers デフォルト = []
この属性を使用すると、このアスペクトは他の側面を検査できます。値は、個々のプロバイダまたはリストのいずれかで、両方を含まないリストである必要があります。たとえば、[[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効です。

ネストされていないプロバイダのリストは、1 つのプロバイダのリストを含むリストに自動的に変換されます。つまり、[FooInfo, BarInfo] は自動的に [[FooInfo, BarInfo]] に変換されます。

別の側面(other_aspect など)をこの側面から参照できるようにするには、other_aspect で少なくとも 1 つのリストのすべてのプロバイダを指定する必要があります。[[FooInfo], [BarInfo], [BazInfo, QuxInfo]] の例では、other_aspectFooInfo * または * BarInfo * または* BazInfo * と QuxInfo の両方を提供している場合にのみ、この側面に other_aspect が表示されます。

provides default = []
実装関数が返すプロバイダのリスト。

実装関数が、ここに記載されているいずれかのタイプのプロバイダを戻り値から省略するとエラーになります。ただし、実装関数は、ここに示されていない追加のプロバイダを返すことがあります。

リストの各要素は、provider() から返される *Info オブジェクトです。ただし、レガシー プロバイダは文字列名で表されます。

requires sequence of Aspects default = []
このアスペクトの前に伝播する必要があるアスペクトのリスト。
fragments sequence of strings default = []
ターゲット構成でアスペクトが必要とする構成フラグメントの名前のリスト。
host_fragments sequence of strings default = []
ホスト構成で必要な側面である構成フラグメントの名前のリスト。
toolchains sequence; default = []
設定した場合、このルールに必要なツールチェーンのセット。このリストには、任意の組み合わせで、文字列、ラベル、または StarlarkToolchainTypeApi オブジェクトを含めることができます。ツールチェーンは現在のプラットフォームを確認することで検出され、ctx.toolchain を介してルールの実装に提供されます。
incompatible_use_toolchain_transition default = False
非推奨。使用しなくなったため、削除する必要があります。
doc default = ''
ドキュメント生成ツールで抽出できる特徴の説明。
apply_to_generating_rules default = False
true の場合、出力ファイルに適用されると、アスペクトは出力ファイルの生成ルールに適用されます。

たとえば、ある側面が属性「deps」によって推移的に伝播し、それがターゲット `alpha` に適用されると仮定します。たとえば、`alpha` に `deps = ‘':beta_output'] がある場合に、`beta` にターゲットの `beta` が宣言された出力であると仮定します。

デフォルトは false です。

exec_compatible_with sequence of strings default = []
このアスペクトのすべてのインスタンスに適用される、実行プラットフォーム上の制約のリスト。
exec_groups dict; or None デフォルト = なし
exec_group の実行グループ名(文字列)です。設定されている場合、アスペクトは 1 つのインスタンス内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。

bazel_dep

None bazel_dep(name, version='', repo_name='', dev_dependency=False)

別の Bazel モジュールへの直接的な依存関係を宣言します。

パラメータ

パラメータ 説明
name required
直接依存関係として追加されるモジュールの名前。
version default = ''
直接依存関係として追加されるモジュールのバージョン。
repo_name default = ''
この依存関係を表す外部リポジトリの名前。デフォルトでは、モジュールの名前です。
dev_dependency default = False
true の場合、現在のモジュールがルート モジュールでない場合、または「--ignore_dev_dependency」が有効になっている場合、この依存関係は無視されます。

bind

None bind(name, actual=None)

警告: bind() の使用はおすすめしません。問題と代替方法については、バインドの削除を検討するをご覧ください。

ターゲットに //external パッケージのエイリアスを付与します。

パラメータ

パラメータ 説明
name 必須
エイリアス名として使用する「//external」のラベル
actual string; or None default = None
エイリアスとなる実際のラベル

ブール値

bool bool(x=False)

ブール値のコンストラクタ。オブジェクトが None の場合は、空の文字列("")、数値 0、または空のコレクション(()[] など)の場合は False が返されます。それ以外の場合は True が返されます。

パラメータ

パラメータ 説明
x default = False
変換する変数。

構成フィールド

LateBoundDefault configuration_field(fragment, name)

label 型の属性に対する遅延デフォルト値を参照します。値を決定する前に構成を作成する必要がある場合、値は「遅延」になります。これを属性として使用するすべての属性は非公開である必要があります。

使用例:

ルール属性の定義:

'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))

ルールの実装でアクセスする:

  def _rule_impl(ctx):
    foo_info = ctx.attr._foo
    ...

パラメータ

パラメータ 説明
fragment 必須
遅延値を含む構成フラグメントの名前。
name 必須
構成フラグメントから取得する値の名前。

Depset

depset depset(direct=None, order="default", *, transitive=None)

depset を作成します。direct パラメータは、デプセットの直接要素のリストです。transitive パラメータは、作成したデプセットの間接的な要素となるデプセットのリストです。デプセットがリストに変換されたときに要素が返される順序は、order パラメータで指定されます。詳細については、Depset の概要をご覧ください。

デプセットのすべての要素(直接的および間接的)は、式 type(x) で得られるのと同じ型でなければなりません。

ハッシュベースのセットはイテレーション中の重複を排除するために使用されます。したがって、デプセットのすべての要素はハッシュ可能でなければなりません。ただし、現在、この不変性はすべてのコンストラクタで一貫して確認されているわけではありません。整合性チェックを有効にするには、--compatible_always_check_depset_elements フラグを使用します。これが今後のリリースでデフォルトの動作となります。問題 10313 をご覧ください。

また、要素は現在不変である必要がありますが、この制限は今後緩和される予定です。

作成した Depset の順序は、transitive Depset の順序と互換性がある必要があります。"default" の注文は他の注文と互換性があります。他のすべての注文は、他のデベロッパーとのみ互換性があります。

下位互換性と上位互換性に関する注意事項。この関数は現在、位置を示す items パラメータを受け入れます。これは非推奨であり、今後削除され、direct が削除されると depset 関数の唯一の位置パラメータになります。したがって、以下の呼び出しはどちらも同等で、常に問題ありません。

depset(['a', 'b'], transitive = [...])
depset(direct = ['a', 'b'], transitive = [...])

パラメータ

パラメータ 説明
direct sequence; or None default = None
デプトの direct 要素のリスト。
order default = "default"
新しいデプセットのトラバーサル戦略。有効な値については、こちらをご覧ください。
transitive sequence of depsets; or None; default = None
要素がデプトの間接的な要素になるデプセットのリスト。

辞書

dict dict(pairs=[], **kwargs)

オプションの位置引数とオプションのキーワード引数のセットから辞書を作成します。同じキーが複数回指定された場合は、最後の値が使用されます。キーワード引数で指定したエントリは、位置引数で指定したエントリの後にあるとみなされます。

パラメータ

パラメータ 説明
pairs default = []
要素 2(キー、値)をそれぞれ含む辞書または反復処理。
kwargs 必須
追加エントリの辞書。

dir

list dir(x)

文字列のリスト(パラメータ オブジェクトの属性とメソッド)を返します。

パラメータ

パラメータ 説明
x 必須
チェックするオブジェクト。

列挙する

list enumerate(list, start=0)

インデックス(int)と入力シーケンスのアイテムを含むペア(2 要素のタプル)のリストを返します。
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

パラメータ

パラメータ 説明
list 必須の
入力シーケンス。
start デフォルト = 0
開始インデックス。

exec_group

exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)

ルールの実装中に特定の実行プラットフォームのアクションを作成するために使用できる実行グループを作成します。

パラメータ

パラメータ 説明
toolchains sequence; default = []
この実行グループに必要なツールチェーンのセット。このリストには、任意の組み合わせで、文字列、ラベル、または StarlarkToolchainTypeApi オブジェクトを含めることができます。
exec_compatible_with sequence of strings default = []
実行プラットフォーム上の制約のリスト。
copy_from_rule default = False
true に設定すると、この exec グループは、このグループが適用されているルールのツールチェーンと制約を継承します。他の文字列に設定すると、エラーがスローされます。

fail

None fail(msg=None, attr=None, *args)

実行がエラーで失敗します。

パラメータ

パラメータ 説明
msg default = None
非推奨: 位置引数を使用してください。この引数は、暗黙的な先頭位置引数として機能します。
attr string; or None。 default = None
非推奨。この文字列を含むオプションの接頭辞をエラー メッセージに追加します。
args 必須
エラー メッセージに表示される(str の形式で書式設定され、スペースで結合された)値のリスト。

float

float float(x=unbound)

x を浮動小数点値として返します。
  • x がすでに浮動小数点数である場合は、float はそのまま変更を返します。
  • x がブール値の場合、float は true では 1.0、False では 0.0 を返します。
  • x が整数の場合、float は最も近い有限数の浮動小数点値を x に、マグニチュードが大きすぎる場合はエラーを返します。
  • x が文字列の場合、有効な浮動小数点のリテラルであるか、NaNInf、または Infinity と等しい(大文字と小文字を区別しない)必要があります。必要に応じて、先頭に + または - の記号を付けることができます。
これ以外の値を使用すると、エラーが発生します。引数がない場合、float() は 0.0 を返します。

パラメータ

パラメータ 説明
x default = unbound
変換する値。

Getattr

unknown getattr(x, name, default=unbound)

指定された名前の構造体のフィールドを返します(フィールドが存在する場合)。使用できない場合は、default(指定された場合)またはエラーになります。getattr(x, "foobar")x.foobar と同等です。
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

パラメータ

パラメータ 説明
x 必須
属性にアクセスする構造体。
name 必須
構造体属性の名前。
default default = unbound
構造体に特定の名前の属性がない場合に返されるデフォルト値。

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)

依存関係が Git リポジトリの特定の commit に由来することを指定します。このディレクティブはルート モジュールでのみ使用できます。つまり、モジュールがオーバーライドを指定している場合、他のモジュールは依存関係として使用できません。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュールの依存関係の名前。
remote 必須
リモートの Git リポジトリの URL。
commit default = ''
チェックアウトする必要がある commit。
patches Iterable of strings; default = []
このモジュールに適用するパッチファイルを指すラベルのリスト。パッチファイルはトップレベル プロジェクトのソースツリーに存在している必要があります。これらはリストの順序で適用されます。
patch_cmds Iterable of strings; default = []
パッチの適用後に Linux/macOS に適用される Bash コマンドのシーケンス。
patch_strip デフォルト = 0
Unix パッチの --strip 引数と同じです。

ハッシャー

bool hasattr(x, name)

オブジェクトの x に、指定された name の属性またはメソッドがある場合は true を返します。それ以外の場合は False を返します。例:
hasattr(ctx.attr, "myattr")

パラメータ

パラメータ 説明
x 必須
チェックするオブジェクト。
name 必須
属性の名前。

ハッシュ

int hash(value)

文字列のハッシュ値を返します。これは、Java の String.hashCode() と同じアルゴリズムを使用して確定的に計算されます。つまり、
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
文字列以外の値のハッシュは現在サポートされていません。

パラメータ

パラメータ 説明
value 必須
ハッシュする文字列値。

int

int int(x, base=unbound)

x を整数値として返します。
  • x がすでに int である場合、int はそのまま変更を返します。
  • x がブール値の場合、int は True を 1、False を 0 として返します。
  • x が文字列の場合、<sign><prefix><digits> の形式にする必要があります。<sign> は、"+""-"、または空(正と解釈)のいずれかです。<digits> は 0 から base - 1 までの数字の並びで、a ~ z(またはこれに相当する A ~ Z)は 10 ~ 35 の数字として使用されます。base が 2/8/16 の場合、<prefix> はオプションで、それぞれ 0b/0o/0x(または同等の 0B/0O/0X)です。base がこれらのベースの底、または特別な値 0 以外の値である場合は、接頭辞を空にする必要があります。base が 0 の場合、使用されるプレフィックスに応じて基数 2/8/10/16 のいずれかが選択されるという意味で、文字列は整数リテラルとして解釈されます。base が 0 で、接頭辞を使用せず、1 桁以上の数字がある場合は、先頭の桁を 0 にすることはできません。これは、8 進数と 10 進数の混同を回避するためです。文字列で表される数値の大きさは、int 型の許容範囲内でなければなりません。
  • x が浮動小数点数の場合、int は浮動小数点数の整数値を返し、ゼロに丸めます。x が非有限(NaN または無限大)の場合、エラーが発生します。
x がその他の型である場合、または値が上記の形式に準拠していない文字列の場合、この関数は失敗します。Python の int 関数と異なり、この関数ではゼロ引数を指定することはできません。また、文字列引数に余分な空白を入れることはできません。

例:

int("123") == 123
int("-123") == -123
int("+123") == 123
int("FF", 16) == 255
int("0xFF", 16) == 255
int("10", 0) == 10
int("-0x10", 0) == -16
int("-0x10", 0) == -16
int("123.456") == 123

パラメータ

パラメータ 説明
x 必須
変換する文字列。
base default = unbound
文字列値の解釈に使用されるベース。デフォルトは 10 です。2 から 36 までの範囲で指定する必要があります。または、x が整数リテラルであるかのように 0 を返すこともできます。値が文字列でない場合は、このパラメータを指定しないでください。

len

int len(x)

文字列、シーケンス(リストやタプルなど)、辞書、またはその他のイテラブルの長さを返します。

パラメータ

パラメータ 説明
x 必須
レポートする長さの値。

list

list list(x=[])

指定されたイテラブル値と同じ要素を持つ新しいリストを返します。
list([1, 2]) == [1, 2]
list((2, 3, 2)) == [2, 3, 2]
list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]

パラメータ

パラメータ 説明
x default = []
変換するオブジェクト。

local_path_override

None local_path_override(module_name, path)

依存関係がローカル ディスク上の特定のディレクトリからのものであることを指定します。このディレクティブはルート モジュールでのみ使用できます。つまり、モジュールがオーバーライドを指定している場合、他のモジュールは依存関係として使用できません。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュールの依存関係の名前。
path required
このモジュールがあるディレクトリのパス。

最高

unknown max(*args)

すべての引数の中で最大の引数を返します。1 つの引数のみ指定する場合は、空でないイテラブルである必要があります。要素が比較可能でない場合(たとえば、文字列を含む int の場合)、または引数が指定されていない場合はエラーになります。
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

パラメータ

パラメータ 説明
args 必須
確認対象の要素。

min

unknown min(*args)

指定されたすべての引数の中で最小の値を返します。1 つの引数のみを指定する場合は、空でないイテラブルである必要があります。要素が比較できない場合(文字列を含む int など)、引数が指定されていない場合はエラーになります。
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

パラメータ

パラメータ 説明
args 必須
確認対象の要素。

モジュール

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

現在の Bazel リポジトリで表される Bazel モジュールの特定のプロパティを宣言します。これらのプロパティは、モジュールに不可欠なメタデータ(名前やバージョンなど)であり、現在のモジュールとその依存関数の動作に影響します。

1 回だけ呼び出す必要があります。このモジュールがルート モジュールである場合にのみ省略できます(別のモジュールに依存しない場合と同様)。

パラメータ

パラメータ 説明
name default = ''
モジュールの名前。このモジュールがルート モジュールである場合にのみ省略できます(別のモジュールに依存しない場合など)。有効なモジュール名: 1)英小文字(a ~ z)、数字(0 ~ 9)、ドット(.)、ハイフン(-)、アンダースコア(_)のみ、2)先頭は英小文字、3)末尾は英小文字または数字である必要があります。
version default = ''
モジュールのバージョン。このモジュールがルート モジュールである場合にのみ省略できます(別のモジュールに依存しない場合など)。
compatibility_level default = 0
モジュールの互換性レベル。互換性のない大きな変更が行われるたびに変更する必要があります。基本的に SemVer の観点からはモジュールの「メジャー バージョン」です。バージョン文字列自体には埋め込まれませんが、別のフィールドとして存在します。互換性レベルの異なるモジュールは、異なる名前のモジュールであるかのようにバージョン解決に参加しますが、最終的な依存関係グラフには、同じ名前で互換性のレベルが異なる複数のモジュールを含めることはできません(multiple_version_override が有効でない限り、詳細はこちらを参照)。
repo_name default = ''
モジュール自体から見た、このモジュールを表すリポジトリの名前。デフォルトでは、リポジトリの名前はモジュールの名前です。これを指定すると、モジュール名と異なるリポジトリ名を使用しているプロジェクトを簡単に移行できます。
bazel_compatibility Iterable of strings; default = []
このモジュールと互換性のある Bazel バージョンを宣言できる Bazel バージョンのリスト。依存関係の解決には影響しませんが、bzlmod はこの情報を使用して現在の Bazel のバージョンに互換性があるかどうかを確認します。この値の形式は、制約値のカンマ区切りの文字列です。次の 3 つの制約がサポートされています: <=X.X.X: Bazel のバージョンは X.X.X 以降である必要があります。新しいバージョンで互換性のない既知の変更がある場合に使用されます。>=X.X.X: Bazel バージョンは X.X.X 以降である必要があります。X.X.X 以降でのみ利用可能な機能を使用している場合に使用します。-X.X.X: Bazel バージョン X.X.X と互換性がありません。互換性を破るバグが X.X.X にあるものの、新しいバージョンで修正された場合に使用されます。

module_extension

unknown module_extension(implementation, *, tag_classes={}, doc='')

新しいモジュール拡張機能を作成します。この関数をグローバル値で保存し、MODULE.bazel ファイルでエクスポートして使用できるようにします。

パラメータ

パラメータ 説明
implementation required
このモジュール拡張機能を実装する関数です。単一のパラメータ module_ctx を指定する必要があります。この関数はビルド開始時に 1 回呼び出され、使用可能なリポジトリのセットが決定されます。
tag_classes default = {}
拡張機能で使用されるすべてのタグクラスを宣言する辞書。タグクラスの名前から tag_class オブジェクトにマッピングされます。
doc default = ''
ドキュメント生成ツールで抽出できるモジュール拡張機能の説明。

複数のバージョンをオーバーライドする

None multiple_version_override(module_name, versions, registry='')

依存関係をレジストリから取得する必要がありますが、その複数のバージョンを共存できるように指定します。このディレクティブはルート モジュールでのみ使用できます。つまり、モジュールがオーバーライドを指定している場合、他のモジュールは依存関係として使用できません。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュールの依存関係の名前。
versions Iterable of strings; 必須
併用できるバージョンを明示的に指定します。これらのバージョンは、依存関係グラフの事前選択にすでに存在している必要があります。このモジュールへの依存関係は、同じ互換性レベルで最も近い上位のバージョンに「アップグレード」されますが、同じ互換性レベルの許可されたバージョンよりも高いバージョンの依存関係はエラーになります。
registry default = ''
このモジュールのレジストリをオーバーライドします。デフォルト レジストリのリストからこのモジュールを見つける代わりに、特定のレジストリを使用する必要があります。

プリント

None print(sep=" ", *args)

デバッグ出力として args を出力します。先頭に文字列 "DEBUG" が付き、この呼び出しの場所(ファイルと行番号)が付加されます。引数を文字列に変換する具体的な方法は指定されておらず、随時変更される可能性があります。特に、str()repr() で行われる形式とは異なる(またはより詳しい)場合があります。

製品版のコードで print を使用することは、ユーザーに生成される迷惑メールのため推奨されません。非推奨となる場合は、可能な限り fail() を使用してハードエラーを優先することをおすすめします。

パラメータ

パラメータ 説明
sep default = " "
オブジェクト間の区切り文字は、デフォルトでスペース(" ")です。
args 必須
出力するオブジェクト。

プロバイダ

unknown provider(doc='', *, fields=None, init=None)

プロバイダ シンボルを定義します。プロバイダは、呼び出すことでインスタンス化できます。または、ターゲットからそのプロバイダのインスタンスを取得するためのキーとして直接使用することもできます。例:
MyInfo = provider()
...
def _my_library_impl(ctx):
    ...
    my_info = MyInfo(x = 2, y = 3)
    # my_info.x == 2
    # my_info.y == 3
    ...

プロバイダの使用方法については、ルール(プロバイダ)をご覧ください。

init が指定されていない場合は、Provider の呼び出し可能な値を返します。

init を指定すると、2 つの要素(Provider 呼び出し可能値と未加工コンストラクタ呼び出し可能値)のタプルを返します。詳しくは、ルール(カスタム プロバイダのカスタム初期化)init パラメータに関する説明をご覧ください。

パラメータ

パラメータ 説明
doc default = ''
ドキュメント生成ツールで抽出できるプロバイダの説明。
fields sequence of strings; or dict; or None。 デフォルト = なし
指定すると、使用可能なフィールドのセットが制限されます。
有効な値は次のとおりです。
  • フィールドのリスト:
    provider(fields = ['a', 'b'])

  • 辞書のフィールド名 -> ドキュメント:
    provider(
           fields = { 'a' : 'Documentation for a', 'b' : 'Documentation for b' })
すべてのフィールドは省略可能です。
init callable; or None。デフォルト = なし
。インスタンス化中にプロバイダのフィールド値を前処理して検証するためのオプションのコールバック。init を指定すると、provider() は、通常のプロバイダ シンボルと未加工のコンストラクタの 2 つの要素のタプルを返します。

正確な説明を以下に示します。直感的な議論とユースケースについては、ルール(プロバイダのカスタム初期化)をご覧ください。

P を、provider() を呼び出して作成したプロバイダ シンボルにします。概念的には、P のインスタンスは、次の処理を行うデフォルトのコンストラクタ関数 c(*args, **kwargs) を呼び出して生成されます。

  • args が空でない場合、エラーが発生します。
  • provider() が呼び出されたときに fields パラメータが指定され、kwargsfields にリストされていないキーが含まれている場合、エラーが発生します。
  • それ以外の場合は、c は、kwargsk: v エントリごとに、k という名前で値 v を持つフィールドを持つ新しいインスタンスを返します。
init コールバックが指定されていない場合、シンボル P 自体の呼び出しは、デフォルトのコンストラクタ関数 c の呼び出しとして機能します。つまり、P(*args, **kwargs)c(*args, **kwargs) を返します。たとえば、
MyInfo = provider()
m = MyInfo(foo = 1)
を使用すると、mm.foo == 1 を持つ MyInfo インスタンスになるように簡単にできます。

ただし、init が指定されている場合、P(*args, **kwargs) は代わりに次の手順を実行します。

  1. コールバックは init(*args, **kwargs) として呼び出されます。つまり、P に渡したものとまったく同じ位置引数とキーワード引数で呼び出されます。
  2. init の戻り値は辞書の d であり、そのキーはフィールド名の文字列であると想定されます。そうでない場合、エラーが発生します。
  3. P の新しいインスタンスは、c(**d) のように、d のエントリをキーワード引数としてデフォルト コンストラクタを呼び出すかのように生成されます。

注意: 上記の手順は、*args または **kwargsinit のシグネチャと一致しない場合や、init の本文の評価が失敗した場合(意図的に fail() の呼び出しによって失敗した場合)や、init の戻り値が想定されたスキーマを持つ辞書でない場合にエラーになります。

このように、init コールバックは、位置引数と任意のロジックを前処理と検証に使用することで、通常のプロバイダ構築を一般化します。許可された fields のリストを回避することはできません

init を指定すると、provider() の戻り値はタプル (P, r) になります。ここで、r未加工のコンストラクタです。実際、r の動作は、前述のデフォルトのコンストラクタ関数 c の動作とまったく同じです。通常、r は、名前の先頭にアンダースコアが付いた変数にバインドされるため、現在の .bzl ファイルのみが直接アクセスできます。

MyInfo, _new_myinfo = provider(init = ...)

範囲

sequence range(start_or_stop, stop_or_none=None, step=1)

step 単位で start から stop までのアイテムのリストを作成します。単一の引数を指定した場合、アイテムの範囲は 0 ~その要素です。
range(4) == [0, 1, 2, 3]
range(3, 9, 2) == [3, 5, 7]
range(3, 0, -1) == [3, 2, 1]

パラメータ

パラメータ 説明
start_or_stop 必須
停止が提供される場合の start 要素の値。そうでない場合、stop の値と実際の開始値は 0
stop_or_none int; or None デフォルト = なし
結果リストから除外される最初の項目のオプションのインデックスstop に達する前にリストの生成が停止します。
step デフォルト = 1
インクリメント(デフォルトは 1)。負の値の場合もあります。

register_execution_platforms()

None register_execution_platforms(*platform_labels)

事前定義されたプラットフォームを登録して、Bazel がツールチェーンの解決中に実行プラットフォームとして使用できるようにします。

パラメータ

パラメータ 説明
platform_labels sequence of strings 必須
登録するプラットフォームのラベル。

register_execution_platforms()

None register_execution_platforms(*platform_labels)

このモジュールが選択されたときに登録する、定義済みの実行プラットフォームを指定します。絶対的なターゲット パターンである必要があります(@ または // で始めます)。詳細については、ツールチェーンの解決をご覧ください。

パラメータ

パラメータ 説明
platform_labels sequence of strings 必須
登録するプラットフォームのラベル。

register_toolchains()

None register_toolchains(*toolchain_labels)

Bazel がツールチェーンの解決中に使用できるように、定義済みのツールチェーンを登録します。ツールチェーンの定義ツールチェーンの登録の例をご覧ください。

パラメータ

パラメータ 説明
toolchain_labels sequence of strings 必須
登録するツールチェーンのラベル。

register_toolchains()

None register_toolchains(*toolchain_labels)

このモジュールが選択されたときに登録される、事前定義済みのツールチェーンを指定します。絶対的なターゲット パターンである必要があります(@ または // で始めます)。詳細については、ツールチェーンの解決をご覧ください。

パラメータ

パラメータ 説明
toolchain_labels sequence of strings 必須
登録するツールチェーンのラベル。

repository_rule(implementation、attrs、local、environ、configure、remotable、doc)

callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')

新しいリポジトリ ルールを作成します。グローバル値に格納することで、WORKSPACE ファイルで読み込みと呼び出しができるようになります。

パラメータ

パラメータ 説明
implementation required
このルールを実装する関数。単一のパラメータ repository_ctx を指定する必要があります。この関数は、ルールの各インスタンスの読み込みフェーズ中に呼び出されます。
attrs dict; or None; default = None
ルール。ルールのすべての属性を宣言します。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。_ で始まる属性は非公開であり、ファイルにラベルへの暗黙的な依存関係を追加するために使用できます(リポジトリ ルールは生成されたアーティファクトに依存できません)。属性 name は暗黙的に追加されており、指定できません。
local default = False
このルールがローカル システムからすべてのものを取得し、フェッチのたびに再評価する必要があることを示します。
environ sequence of strings; default = []
このリポジトリ ルールが依存する環境変数のリスト。そのリストの環境変数が変更されると、リポジトリが再取得されます。
configure default = False
リポジトリが構成目的でシステムを検査することを示します
remotable default = False
試験運用版。このパラメータは試験運用版であり、いつでも変更される可能性があります。依存させないでください。この機能は、---experimental_repo_remote_exec
リモート実行と互換性を設定することで試験運用版になります。
doc default = ''
ドキュメント生成ツールで抽出できるリポジトリ ルールの説明。

repository_rule(implementation、attrs、local、environ、configure、remotable、doc)

callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')

新しいリポジトリ ルールを作成します。グローバル値に格納することで、WORKSPACE ファイルで読み込みと呼び出しができるようになります。

パラメータ

パラメータ 説明
implementation required
このルールを実装する関数。単一のパラメータ repository_ctx を指定する必要があります。この関数は、ルールの各インスタンスの読み込みフェーズ中に呼び出されます。
attrs dict; or None; default = None
ルール。ルールのすべての属性を宣言します。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。_ で始まる属性は非公開であり、ファイルにラベルへの暗黙的な依存関係を追加するために使用できます(リポジトリ ルールは生成されたアーティファクトに依存できません)。属性 name は暗黙的に追加されており、指定できません。
local default = False
このルールがローカル システムからすべてのものを取得し、フェッチのたびに再評価する必要があることを示します。
environ sequence of strings; default = []
このリポジトリ ルールが依存する環境変数のリスト。そのリストの環境変数が変更されると、リポジトリが再取得されます。
configure default = False
リポジトリが構成目的でシステムを検査することを示します
remotable default = False
試験運用版。このパラメータは試験運用版であり、いつでも変更される可能性があります。依存させないでください。この機能は、---experimental_repo_remote_exec
リモート実行と互換性を設定することで試験運用版になります。
doc default = ''
ドキュメント生成ツールで抽出できるリポジトリ ルールの説明。

RPR

string repr(x)

任意のオブジェクトを文字列表現に変換します。これはデバッグに役立ちます。
repr("ab") == '"ab"'

パラメータ

パラメータ 説明
x 必須
変換するオブジェクト。

取り消し済み

list reversed(sequence)

元の反復可能シーケンスの要素を逆順に含む、新しい固定されていないリストを返します。
reversed([3, 5, 4]) == [4, 5, 3]

パラメータ

パラメータ 説明
sequence 必須
逆順にする反復可能なシーケンス(リストなど)。

ルール

callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)

新しいルールを作成します。このルールは、BUILD ファイルまたはマクロから呼び出して、ターゲットを作成できます。

ルールは、.bzl ファイルのグローバル変数に割り当てる必要があります。グローバル変数の名前は、ルール名です。

テストルールの名前には _test で終わる必要がありますが、他のすべてのルールにこのサフィックスを付けないでください。(この制限はルールにのみ適用され、ターゲットには適用されません)。

パラメータ

パラメータ 説明
implementation 必須
このルールを実装する Starlark 関数には、ctx パラメータが 1 つだけ必要です。この関数は、分析の各段階でルールのインスタンスごとに呼び出されます。ユーザーから提供された属性にアクセスできます。宣言されたすべての出力を生成するアクションを作成する必要があります。
test default = False
このルールがテストルールであるかどうか、つまり blaze test コマンドのサブジェクトであるかどうか。すべてのテストルールは、自動的に実行可能と見なされます。テストルールに executable = True を明示的に設定する必要はありません(推奨されません)。詳細については、ルールページをご覧ください。
attrs dict; or None; default = None
ルール。ルールのすべての属性を宣言します。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。_ で始まる属性は非公開であり、ラベルに暗黙的な依存関係を追加するために使用できます。属性 name は暗黙的に追加されており、指定できません。属性 visibilitydeprecationtagstestonlyfeatures は暗黙的に追加され、オーバーライドできません。ほとんどのルールはわずかな属性だけで済みます。メモリ使用量を抑えるために、ルール関数で attr のサイズに上限が設定されています。
outputs dict; or None; or function、デフォルト = なし
非推奨。このパラメータは非推奨であり、まもなく削除されます。依存させないでください。---incompatible_no_rule_outputs_param では無効になっています。このフラグを使用して、コードが即時削除に対応しているかどうか確認してください。
このパラメータは非推奨になりました。代わりに OutputGroupInfo または attr.output を使用するようにルールを移行してください。

事前に宣言された出力を定義するスキーマ。output 属性や output_list 属性とは異なり、ユーザーはこれらのファイルのラベルを指定しません。宣言された出力について詳しくは、ルールに関するページをご覧ください。

この引数の値は、辞書または辞書を生成するコールバック関数のいずれかです。このコールバックは、計算された依存関係属性と同様に機能します。つまり、関数のパラメータ名はルールの属性と照合されます。たとえば、定義 def _my_func(srcs, deps): ... とともに outputs = _my_func を渡すと、関数は属性 srcsdeps にアクセスできます。辞書が直接指定されているか、関数を介して指定されたかにかかわらず、次のように解釈されます。

辞書内の各エントリで、宣言された出力が作成されます。ここで、キーは識別子、値は出力のラベルを決定する文字列テンプレートです。ルールの実装関数では、この ID が、ctx.outputs の出力の File へのアクセスに使用されるフィールド名になります。出力のラベルにはルールと同じパッケージが含まれます。"%{ATTR}" という形式の各プレースホルダを、属性 ATTR の値から形成される文字列に置き換えることで、パッケージの後の部分が生成されます。

  • 文字列型の属性は、そのまま置き換えます。
  • ラベル付き属性は、パッケージの拡張子からファイル拡張子を除いたラベルの一部になります。たとえば、ラベル "//pkg:a/b.c""a/b" になります。
  • 出力型の属性は、ファイル拡張子を含め、パッケージの後のラベルの一部になります(上記の例では "a/b.c")。
  • プレースホルダで使用されるリストタイプの属性(attr.label_list など)には、要素が 1 つだけ必要です。コンバージョンがリストに含まれないバージョン(attr.label)と同じです。
  • その他の属性タイプは、プレースホルダに表示されない場合があります。
  • 特別な属性以外のプレースホルダ %{dirname}%{basename} は、パッケージのラベルを除いて、ルールのラベルの該当部分に展開されます。たとえば、"//pkg:a/b.c" の場合、ディレクトリ名は a、ベース名は b.c です。

実際には、最も一般的な置換プレースホルダは "%{name}" です。たとえば、「foo」という名前のターゲットの場合、出力ディクショナリ {"bin": "%{name}.exe"} は、実装関数で ctx.outputs.bin としてアクセス可能な foo.exe という名前の出力をあらかじめ宣言しています。

executable default = False
このルールが実行可能とみなされるかどうか(blaze run コマンドのサブジェクトになる場合があります)。詳細については、ルールページをご覧ください。
output_to_genfiles default = False
true の場合、ファイルは bin ディレクトリではなく genfiles ディレクトリに生成されます。既存のルールとの互換性が必要な場合(C++ のヘッダー ファイルを生成する場合など)は、このフラグを設定しないでください。
fragments sequence of strings default = []
ターゲット構成でルールに必要な構成フラグメントの名前のリスト。
host_fragments sequence of strings default = []
ホスト構成でルールに必要な構成フラグメントの名前のリスト。
_skylark_testable default = False
(試験運用版)

true の場合、このルールは、Actions プロバイダを介して、このルールに依存するルールによって検査するアクションを公開します。プロバイダは ctx.created_actions() を呼び出してルール自体でも使用できます。

これは、Starlark ルールの分析時の動作をテストする場合にのみ使用する必要があります。このフラグは今後削除される可能性があります。
toolchains sequence; default = []
設定した場合、このルールに必要なツールチェーンのセット。このリストには、任意の組み合わせで、文字列、ラベル、または StarlarkToolchainTypeApi オブジェクトを含めることができます。ツールチェーンは現在のプラットフォームを確認することで検出され、ctx.toolchain を介してルールの実装に提供されます。
incompatible_use_toolchain_transition default = False
非推奨。使用しなくなったため、削除する必要があります。
doc default = ''
ドキュメント生成ツールで抽出できるルールの説明。
provides default = []
実装関数が返すプロバイダのリスト。

実装関数が、ここに記載されているいずれかのタイプのプロバイダを戻り値から省略するとエラーになります。ただし、実装関数は、ここに示されていない追加のプロバイダを返すことがあります。

リストの各要素は、provider() から返される *Info オブジェクトです。ただし、レガシー プロバイダは文字列名で表されます。

exec_compatible_with sequence of strings; default = []
このルールタイプのすべてのターゲットに適用される、実行プラットフォーム上の制約のリスト。
analysis_test default = False
true の場合、このルールは分析テストとして扱われます。

注: 分析テストルールは、主にコア Starlark ライブラリのインフラストラクチャを使用して定義されます。ガイダンスについては、テストをご覧ください。

ルールを分析テストルールとして定義する場合、属性に対して analysis_test_migration を使用して定義された構成の遷移を使用できますが、いくつかの制限が適用されます。

  • このルールのターゲットは、推移的依存関係の数が制限されています。
  • このルールはテストルールとみなされます(test=True が設定されている場合と同様)。test の値よりも優先されます
  • ルール実装関数ではアクションを登録できません。代わりに、AnalysisTestResultInfo を提供して、合否結果を登録する必要があります。
build_setting BuildSetting; or None。 デフォルト = なし
設定されている場合、このルールの種類 build setting を記述します。config モジュールをご覧ください。設定すると、「build_setting_default」という名前の必須属性が自動的にこのルールに追加され、ここで渡された値に対応する型になります。
cfg デフォルト = なし
設定した場合、ルールが分析の前にその設定に適用する構成の遷移を指定します。
exec_groups dict; or None デフォルト = なし
exec_group の実行グループ名(文字列)です。設定すると、単一のターゲット内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。
compile_one_filetype sequence of strings; or None default = None
--compile_one_dependency で使用されます。指定されたファイルを複数のルールで消費する場合は、このルールを他より優先する必要があります。
name string; or None、デフォルト = なし
非推奨。このパラメータは非推奨であり、まもなく削除されます。依存させないでください。--+incompatible_remove_rule_name_parameter では無効になっています。このフラグを使用して、コードが即時削除に対応しているかどうか確認してください。
非推奨: 使用しないでください。

Bazel で認識され、ロギング、native.existing_rule(...)[kind]bazel query などのコンテキストで報告されるこのルールの名前。通常、これはこのルールにバインドされる Starlark 識別子と同じです。たとえば、foo_library というルールは通常 foo_library = rule(...) として宣言され、BUILD ファイルで foo_library(...) としてインスタンス化されます。

このパラメータを省略すると、ルール名は、宣言する .bzl モジュール内で、このルールにバインドされる最初の Starlark グローバル変数の名前に設定されます。したがって、名前が foo_library の場合、foo_library = rule(...) でこのパラメータを指定する必要はありません。

ルールの明示的な名前を指定しても、ルールをインスタンス化できる場所は変更されません。

select

unknown select(x, no_match_error='')

select() は、ルール属性を構成可能にするヘルパー関数です。詳細については、ビルドの百科事典をご覧ください。

パラメータ

パラメータ 説明
x required
構成条件を値にマッピングする辞書。各キーは、ラベル、または config_setting インスタンスまたは constraint_value インスタンスを識別するラベル文字列です。文字列の代わりにラベルを使用するタイミングについては、マクロに関するドキュメントをご覧ください。
no_match_error default = ''
一致する条件がない場合にレポートするカスタム エラー(省略可)。

#single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

依存関係をレジストリから取得する必要があるが、そのバージョンを固定するか、レジストリをオーバーライドするか、適用したパッチのリストを指定するように指定します。このディレクティブはルート モジュールでのみ使用できます。つまり、モジュールがオーバーライドを指定している場合、他のモジュールは依存関係として使用できません。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュールの依存関係の名前。
version default = ''
依存関係グラフ内で、このモジュールの宣言バージョンをオーバーライドします。つまり、このモジュールはこのオーバーライド バージョンに「固定」されます。オーバーライドする対象がレジストリまたはパッチのみの場合は、この属性を省略できます。
registry default = ''
このモジュールのレジストリをオーバーライドします。デフォルト レジストリのリストからこのモジュールを見つける代わりに、特定のレジストリを使用する必要があります。
patches Iterable of strings; default = []
このモジュールに適用するパッチファイルを指すラベルのリスト。パッチファイルはトップレベル プロジェクトのソースツリーに存在している必要があります。これらはリストの順序で適用されます。
patch_cmds Iterable of strings; default = []
パッチの適用後に Linux/macOS に適用される Bash コマンドのシーケンス。
patch_strip デフォルト = 0
Unix パッチの --strip 引数と同じです。

並べ替え済み

list sorted(iterable, *, key=None, reverse=False)

指定されたイテラブル シーケンスのすべての要素を含む、並べ替えられた新しいリストを返します。要素 x、y のペアが x < y を使用して比較できない場合、エラーが発生することがあります。逆引数が True の場合、要素は降順で並べ替えられます。並べ替えは安定しています。比較する要素が元の相対順序を維持します。
sorted([3, 5, 4]) == [3, 4, 5]

パラメータ

パラメータ 説明
iterable 必須
並べ替えるイテラブル シーケンス。
key default = None
比較の前に各要素に適用されるオプションの関数。
reverse default = False
結果を降順で返します。

str

string str(x)

任意のオブジェクトを文字列に変換します。これはデバッグに役立ちます。
str("ab") == "ab"
str(8) == "8"

パラメータ

パラメータ 説明
x 必須
変換するオブジェクト。

タグクラス

tag_class tag_class(attrs={}, *, doc='')

新しい tag_class オブジェクトを作成します。このオブジェクトは、タグのクラス用の属性スキーマを定義します。これは、モジュール拡張で使用できるデータ オブジェクトです。

パラメータ

パラメータ 説明
attrs default = {}
このタグクラスのすべての属性を宣言するための辞書。属性名から属性オブジェクトにマッピングされます(attr モジュールを参照)。
doc default = ''
ドキュメント生成ツールで抽出できるタグクラスの説明。

tuple

tuple tuple(x=())

指定されたイテラブル値と同じ要素を持つタプルを返します。
tuple([1, 2]) == (1, 2)
tuple((2, 3, 2)) == (2, 3, 2)
tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)

パラメータ

パラメータ 説明
x default = ()
変換するオブジェクト。

type

string type(x)

引数の型名を返します。これは、デバッグや型チェックに役立ちます。例:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
この関数は将来変更される可能性があります。Python 互換のコードを記述して将来の変更に対応するには、戻り値を比較するためにのみ使用してください。
if type(x) == type([]):  # if x is a list

パラメータ

パラメータ 説明
x 必須
タイプを確認するオブジェクト。

#use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False)

モジュール拡張機能を表すプロキシ オブジェクトを返します。そのオブジェクトのメソッドは、モジュール拡張タグを作成するために呼び出すことができます。

パラメータ

パラメータ 説明
extension_bzl_file required
モジュール拡張を定義する Starlark ファイルのラベル。
extension_name 必須
使用するモジュール拡張機能の名前。この名前のシンボルは Starlark ファイルでエクスポートする必要があります。
dev_dependency default = False
true の場合、現在のモジュールがルート モジュールでない場合、または「--ignore_dev_dependency」が有効になっている場合、このモジュール拡張機能の使用は無視されます。

#use_repo

None use_repo(extension_proxy, *args, **kwargs)

特定のモジュール拡張機能によって生成された 1 つ以上のリポジトリを現在のモジュールのスコープにインポートします。

パラメータ

パラメータ 説明
extension_proxy 必須
use_extension 呼び出しによって返されるモジュール拡張プロキシ オブジェクト。
args 必須
インポートするリポジトリの名前。
kwargs 必須
さまざまな名前で現在のモジュールのスコープにインポートする特定のリポジトリを指定します。キーは現在のスコープで使用する名前であるのに対し、値はモジュール拡張機能によってエクスポートされる元の名前である必要があります。

visibility

None visibility(value)

現在初期化されている .bzl モジュールの読み込みの公開設定を設定します。

モジュールの読み込みの公開設定によって、他の BUILD ファイルと .bzl ファイルの読み込みが可能かどうかが決まります。(これは、ファイルが他のターゲットの依存関係として表示されるかどうかを決定する、基盤となる .bzl ソースファイルのターゲットの公開設定とは異なります)。読み込みの可視性はパッケージのレベルで機能します。モジュールを読み込むには、読み込みを行うファイルが、モジュールへのアクセスが許可されているパッケージ内に存在している必要があります。モジュールの公開設定に関係なく、モジュールはいつでも独自のパッケージ内で読み込むことができます。

visibility() は .bzl ファイルごとに 1 回だけ呼び出すことができ、関数内ではなく最上位でのみ呼び出すことができます。推奨されるスタイルは、この呼び出しを load() ステートメントのすぐ下に配置し、引数を特定するために必要な簡単なロジックを用意することです。

フラグ --check_bzl_visibility が false に設定されている場合、読み込みの可視性違反は警告を出力しますが、ビルドは失敗しません。

パラメータ

パラメータ 説明
value 必須
パッケージ仕様文字列のリスト、または単一のパッケージ仕様文字列。

パッケージの仕様は、package_group と同じ形式に従いますが、否定的なパッケージの仕様は使用できません。つまり、仕様は次の形式になります。

  • "//foo": パッケージ //foo
  • "//foo/...": パッケージ //foo とそのすべてのサブパッケージ。
  • "public" または "private": すべてのパッケージ、またはパッケージなし

「@」構文は使用できません。すべての仕様は、現在のモジュールのリポジトリを基準にして解釈されます。

value が文字列のリストの場合、このモジュールへの公開が許可されているパッケージのセットは、各仕様で表されるパッケージのユニオンです。(空のリストは private と同じ効果があります)。value が単一の文字列の場合、シングルトン リスト [value] と同様に扱われます。

--incompatible_package_group_has_public_syntax フラグと --incompatible_fix_package_group_reporoot_syntax フラグはこの引数に影響しません。"public""private" の値は常に利用でき、"//..." は常に「現在のリポジトリにあるすべてのパッケージ」として解釈されます。

workspace

None workspace(name)

この関数は WORKSPACE ファイル内でのみ使用でき、WORKSPACE ファイル内の他のすべての関数より前で宣言する必要があります。各 WORKSPACE ファイルには workspace 関数が必要です。

このワークスペースの名前を設定します。ワークスペース名は、Java パッケージ形式のプロジェクトの記述にする必要があります。アンダースコアは区切り文字として使用します。例: github.com/bazelbuild/bazel は com_github_bazelbuild_bazel を使用します。

この名前は、リポジトリのランファイルが格納されているディレクトリに使用されます。たとえば、ローカル リポジトリにランファイル foo/bar があり、WORKSPACE ファイルに workspace(name = 'baz') が含まれている場合、ランファイルは mytarget.runfiles/baz/foo/bar で使用可能になります。ワークスペース名が指定されていない場合、実行ファイルは bar.runfiles/foo/bar にシンボリック リンクされます。

リモート リポジトリのルール名は有効なワークスペース名にする必要があります。たとえば、Bazel は workspace(name = 'foo%bar') を含む maven_jar に WORKSPACE ファイルを書き込むため、maven_jar(name = 'foo%bar') ではなく maven_jar(name = 'foo') を使用できます。

パラメータ

パラメータ 説明
name 必須
ワークスペースの名前。名前は先頭を英字にする必要があり、英字、数字、アンダースコア、ダッシュ、ドットのみを使用できます。

zip

list zip(*args)

tuplelist を返します。i 番目のタプルには、各引数シーケンスまたはイテラブルの i 番目の要素が含まれます。リストには、入力が短い方のサイズがあります。単一のイテラブル引数を持つ 1 タプルのリストを返します。引数がない場合、空のリストが返されます。例:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

パラメータ

パラメータ 説明
args 必要な
リストの zip ファイル。