メンバー
- すべて
- analysis_test_transition
- 任意
- archive_override
- アスペクト
- bazel_dep
- bind
- bool
- configuration_field
- depset
- dict
- dir
- 列挙
- exec_group
- fail
- float
- getattr
- git_override
- hasattr
- hash
- int
- len
- list
- local_path_override
- max
- 分
- module
- module_extension
- multiple_version_override
- プロバイダ
- 範囲
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- reversed
- rule
- select
- single_version_override
- 並べ替え済み
- str
- tag_class
- tuple
- type
- use_extension
- use_repo
- visibility
- workspace
- zip
すべて
bool all(elements)
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
パラメータ
| パラメータ | 説明 |
|---|---|
elements
|
必須 文字列または要素のコレクション。 |
analysis_test_transition
transition analysis_test_transition(settings)
分析テストルールの依存関係に適用される構成の移行を作成します。この移行は、analysis_test = True を含むルールの属性にのみ適用できます。このようなルールは機能が制限されているため(依存関係ツリーのサイズが制限されているなど)、この関数を使用して作成されたトランジションは、transition を使用して作成されたトランジションと比較して、潜在的なスコープが制限されます。
この関数は、主に Analysis Test Framework のコア ライブラリを容易にするために設計されています。ベスト プラクティスについては、ドキュメント(または実装)をご覧ください。
パラメータ
| パラメータ | 説明 |
|---|---|
settings
|
必須 この構成の移行で設定する必要がある構成設定に関する情報を含むディクショナリ。キーはビルド設定ラベルで、値は移行後の新しい値です。その他の設定は変更されません。このアノテーションは、分析テストが合格するために設定する必要がある特定の構成設定を宣言するために使用します。 |
任意
bool any(elements)
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)
パラメータ
| パラメータ | 説明 |
|---|---|
module_name
|
必須 このオーバーライドを適用する Bazel モジュール依存関係の名前。 |
urls
|
string; or Iterable of strings;
必須アーカイブの URL。http(s):// または file:// URL を使用できます。 |
integrity
|
default = '' アーカイブ ファイルの想定されるチェックサム(Subresource Integrity 形式)。 |
strip_prefix
|
default = '' 抽出されたファイルから削除するディレクトリの接頭辞。 |
patches
|
Iterable of strings;
default = []このモジュールに適用するパッチファイルを指すラベルのリスト。パッチ ファイルは、最上位プロジェクトのソースツリーに存在する必要があります。これらはリストの順序で適用されます。 |
patch_cmds
|
Iterable of strings;
default = []パッチの適用後に Linux/Macos で適用される Bash コマンドのシーケンス。 |
patch_strip
|
default = 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)
パラメータ
| パラメータ | 説明 |
|---|---|
implementation
|
必須 このアスペクトを実装する Starlark 関数。パラメータは Target(アスペクトが適用されるターゲット)と ctx(ターゲットが作成されるルール コンテキスト)の 2 つのみです。ターゲットの属性は ctx.rule フィールドで取得できます。この関数は、ターゲットへのアスペクトの各適用について、分析フェーズで評価されます。 |
attr_aspects
|
sequence of strings;
default = []属性名のリスト。アスペクトは、これらの名前を持つターゲットの属性で指定された依存関係に沿って伝播します。一般的な値としては、 deps や exports などがあります。リストには、ターゲットのすべての依存関係に沿って伝播する単一の文字列 "*" を含めることもできます。 |
attrs
|
dict; or None;
default = Noneアスペクトのすべての属性を宣言するディクショナリ。属性名から属性オブジェクト(`attr.label` や `attr.string` など)へのマッピングを行います(attr モジュールを参照)。アスペクト属性は、 ctx パラメータのフィールドとして実装関数で使用できます。
明示的な属性は |
required_providers
|
default = [] この属性を使用すると、アスペクトは、ルールで必要なプロバイダをアドバタイズするターゲットにのみ伝播を制限できます。値は、個々のプロバイダまたはプロバイダのリストのいずれかを含むリストである必要があります。両方を含むことはできません。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効な値です。ネストされていないプロバイダのリストは、プロバイダのリストを 1 つ含むリストに自動的に変換されます。つまり、 あるルール( |
required_aspect_providers
|
default = [] この属性により、このアスペクトは他のアスペクトを検査できます。値は、個々のプロバイダまたはプロバイダのリストのいずれかを含むリストである必要があります。両方を含むことはできません。たとえば、 [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] は有効な値ですが、[FooInfo, BarInfo, [BazInfo, QuxInfo]] は無効な値です。ネストされていないプロバイダのリストは、プロバイダのリストを 1 つ含むリストに自動的に変換されます。つまり、 別の側面( |
provides
|
default = [] 実装関数が返す必要があるプロバイダのリスト。 実装関数が、ここに記載されているプロバイダのいずれかの型を戻り値から省略すると、エラーになります。ただし、実装関数は、ここに記載されていない追加のプロバイダを返す場合があります。 リストの各要素は、 |
requires
|
sequence of Aspects;
default = []このアスペクトの前に伝播する必要があるアスペクトのリスト。 |
fragments
|
sequence of strings;
default = []アスペクトがターゲット構成で必要とする構成フラグメントの名前のリスト。 |
host_fragments
|
sequence of strings;
default = []アスペクトがホスト構成で必要とする構成フラグメントの名前のリスト。 |
toolchains
|
sequence;
default = []設定されている場合、このルールに必要なツールチェーンのセット。リストには、String、Label、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_output` はターゲット `beta` の宣言された出力であるとします。`beta` には、`deps` の 1 つとしてターゲット `charlie` があるとします。アスペクトの `apply_to_generating_rules=True` の場合、アスペクトは `alpha`、`beta`、`charlie` を介して伝播します。False の場合、アスペクトは `alpha` にのみ伝播します。 デフォルトは false です。 |
exec_compatible_with
|
sequence of strings;
default = []このアスペクトのすべてのインスタンスに適用される実行プラットフォームの制約のリスト。 |
exec_groups
|
dict; or None;
default = None実行グループ名(文字列)と exec_groups のディクショナリ。設定されている場合、アスペクトは単一インスタンス内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。 |
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
パラメータ
| パラメータ | 説明 |
|---|---|
name
|
必須 直接の依存関係として追加するモジュールの名前。 |
version
|
default = '' 直接依存関係として追加するモジュールのバージョン。 |
max_compatibility_level
|
default = -1 モジュールが直接依存関係として追加されるためにサポートされる最大 compatibility_level。モジュールのバージョンは、サポートされている最小の compatibility_level と、この属性が指定されていない場合は最大の compatibility_level を意味します。 |
repo_name
|
default = '' この依存関係を表す外部リポジトリの名前。デフォルトでは、これはモジュールの名前です。 |
dev_dependency
|
default = False true の場合、現在のモジュールがルート モジュールでないか、`--ignore_dev_dependency` が有効になっている場合、この依存関係は無視されます。 |
バインド
None bind(name, actual=None)
警告: bind() の使用はおすすめしません。問題と代替手段の詳細については、バインドの削除を検討するをご覧ください。
//external パッケージでターゲットにエイリアスを付与します。
パラメータ
| パラメータ | 説明 |
|---|---|
name
|
必須 エイリアス名として機能する '//external' のラベル |
actual
|
string; or None;
default = Noneエイリアス設定する実際のラベル |
ブール値
bool bool(x=False)
None、False、空の文字列("")、数値 0、または空のコレクション(()、[] など)の場合、False を返します。それ以外の場合は True を返します。
パラメータ
| パラメータ | 説明 |
|---|---|
x
|
default = False 変換する変数。 |
configuration_field
LateBoundDefault configuration_field(fragment, name)
使用例:
ルール属性の定義:
'_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)
direct パラメータは depset の直接要素のリストで、transitive パラメータは、その要素が作成された depset の間接要素になる depset のリストです。depsset がリストに変換されるときに要素が返される順序は、order パラメータで指定します。詳しくは、Depset の概要をご覧ください。deps のすべての要素(直接および間接)は、式 type(x) で取得される同じ型でなければなりません。
ハッシュベースのセットは、反復処理中に重複を排除するために使用されるため、deps のすべての要素はハッシュ可能である必要があります。ただし、この不変条件は現在、すべてのコンストラクタで一貫してチェックされていません。--incompatible_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 = Nonedeps の direct 要素のリスト。 |
order
|
default = "default" 新しい depset のトラバーサル戦略。設定可能な値については、こちらをご覧ください。 |
transitive
|
sequence of depsets; or None;
default = None要素が depset の間接要素になる depsets のリスト。 |
dict
dict dict(pairs=[], **kwargs)
パラメータ
| パラメータ | 説明 |
|---|---|
pairs
|
default = [] 辞書、または要素の長さがそれぞれ 2(キー、値)のイテラブル。 |
kwargs
|
必須 追加エントリのディクショナリ。 |
dir
list dir(x)
パラメータ
| パラメータ | 説明 |
|---|---|
x
|
必須 確認するオブジェクト。 |
列挙する
list enumerate(list, start=0)
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
パラメータ
| パラメータ | 説明 |
|---|---|
list
|
必須の 入力シーケンス。 |
start
|
default = 0 開始インデックス。 |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)
パラメータ
| パラメータ | 説明 |
|---|---|
toolchains
|
sequence;
default = []この実行グループに必要なツールチェーンのセット。リストには、String、Label、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
|
必須 エラー メッセージに表示される値のリスト。debugPrint(デフォルトでは str と同等)でフォーマットされ、スペースで結合されます。 |
float
float float(x=unbound)
xがすでに浮動小数点数の場合、floatは変更せずに返します。xがブール値の場合、floatは True の場合は 1.0、False の場合は 0.0 を返します。xが int の場合、floatは x に最も近い有限の浮動小数点値を返します。大きさが大きすぎる場合はエラーを返します。xが文字列の場合、有効な浮動小数点リテラルであるか、NaN、Inf、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
|
required 構造体属性の名前。 |
default
|
default = unbound 構造体に指定された名前の属性がない場合に返すデフォルト値。 |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)
パラメータ
| パラメータ | 説明 |
|---|---|
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
|
default = 0 Unix パッチの --strip 引数と同じです。 |
hasattr
bool hasattr(x, name)
x に指定された name の属性またはメソッドがある場合は True、それ以外の場合は False を返します。例:hasattr(ctx.attr, "myattr")
パラメータ
| パラメータ | 説明 |
|---|---|
x
|
必須 確認するオブジェクト。 |
name
|
required 属性の名前。 |
ハッシュ
int hash(value)
String.hashCode() と同じアルゴリズム(つまり、s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
パラメータ
| パラメータ | 説明 |
|---|---|
value
|
必須 ハッシュ化する文字列値。 |
int
int int(x, base=unbound)
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 で、2 桁以上の数字がある場合、先頭の数字は 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(両端を含む)の範囲にするか、0 にして x が整数リテラルであるかのようにベースを検出します。値が文字列でない場合、このパラメータは指定しないでください。 |
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
|
必須 このモジュールがあるディレクトリのパス。 |
最大
unknown max(*args)
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
パラメータ
| パラメータ | 説明 |
|---|---|
args
|
required チェックする要素。 |
分
unknown min(*args)
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
パラメータ
| パラメータ | 説明 |
|---|---|
args
|
required チェックする要素。 |
モジュール
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
呼び出しは 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='', environ=[], os_dependent=False, arch_dependent=False)パラメータ
| パラメータ | 説明 |
|---|---|
implementation
|
必須 このモジュール拡張機能を実装する関数。 module_ctx という 1 つのパラメータを受け取る必要があります。この関数は、ビルドの開始時に 1 回呼び出され、利用可能なリポジトリのセットを決定します。 |
tag_classes
|
default = {} 拡張機能で使用されるすべてのタグクラスを宣言するディクショナリ。タグクラスの名前から tag_class オブジェクトにマッピングします。 |
doc
|
default = '' ドキュメント生成ツールで抽出できるモジュール拡張機能の説明。 |
environ
|
sequence of strings;
default = []このモジュール拡張機能が依存する環境変数のリストを提供します。このリストの環境変数が変更されると、拡張機能が再評価されます。 |
os_dependent
|
default = False この拡張機能が OS に依存するかどうかを示します。 |
arch_dependent
|
default = False この拡張機能がアーキテクチャに依存するかどうかを示します。 |
multiple_version_override
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
|
required 印刷するオブジェクト。 |
provider
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 が指定されている場合は、Provider 呼び出し可能値と raw constructor 呼び出し可能値の 2 つの要素のタプルを返します。詳しくは、ルール(カスタム プロバイダのカスタム初期化)と、下記の init パラメータの説明をご覧ください。
パラメータ
| パラメータ | 説明 |
|---|---|
doc
|
default = '' ドキュメント生成ツールで抽出できるプロバイダの説明。 |
fields
|
sequence of strings; or dict; or None;
デフォルト = None指定すると、許可されるフィールドのセットが制限されます。 指定できる値は次のとおりです。
|
init
|
callable; or None;
default = Noneインスタンス化中にプロバイダのフィールド値を前処理して検証するためのオプションのコールバック。 init が指定されている場合、provider() は 2 つの要素(通常のプロバイダ シンボルと未加工のコンストラクタ)のタプルを返します。正確な説明は次のとおりです。直感的な説明とユースケースについては、ルール(プロバイダのカスタム初期化)をご覧ください。
init コールバックが指定されていない場合、シンボル P 自体の呼び出しは、デフォルトのコンストラクタ関数 c の呼び出しとして機能します。つまり、P(*args, **kwargs) は c(*args, **kwargs) を返します。次に例を示します。MyInfo = provider() m = MyInfo(foo = 1) m が m.foo == 1 を持つ MyInfo インスタンスになります。ただし、
注: 上記の手順は、 このように、
MyInfo, _new_myinfo = provider(init = ...) |
範囲
sequence range(start_or_stop, stop_or_none=None, step=1)
step の増分を使用して、アイテムが start から stop になるリストを作成します。引数が 1 つだけ指定されている場合、アイテムの範囲は 0 からその要素までになります。range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
パラメータ
| パラメータ | 説明 |
|---|---|
start_or_stop
|
必須 stop が指定されている場合は開始要素の値。それ以外の場合は stop の値。実際の開始は 0 |
stop_or_none
|
int; or None;
default = None結果のリストに含めない最初のアイテムのオプションのインデックス。 stop に達する前にリストの生成が停止します。 |
step
|
default = 1 増分(デフォルトは 1)。負の値になることがあります。 |
register_execution_platforms()
None register_execution_platforms(*platform_labels)
パラメータ
| パラメータ | 説明 |
|---|---|
platform_labels
|
sequence of strings;
必須登録するプラットフォームのラベル。 |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)
@ または // で始まる)である必要があります。詳細については、ツールチェーン解決をご覧ください。
パラメータ
| パラメータ | 説明 |
|---|---|
dev_dependency
|
default = False true の場合、現在のモジュールがルート モジュールでないか、`--ignore_dev_dependency` が有効になっている場合、実行プラットフォームは登録されません。 |
platform_labels
|
sequence of strings;
必須登録するプラットフォームのラベル。 |
register_toolchains()
None register_toolchains(*toolchain_labels)
パラメータ
| パラメータ | 説明 |
|---|---|
toolchain_labels
|
sequence of strings;
必須登録するツールチェーンのラベル。 |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)
@ または // で始まる)である必要があります。詳細については、ツールチェーン解決をご覧ください。
パラメータ
| パラメータ | 説明 |
|---|---|
dev_dependency
|
default = False true の場合、現在のモジュールがルート モジュールでないか、`--ignore_dev_dependency` が有効になっている場合、ツールチェーンは登録されません。 |
toolchain_labels
|
sequence of strings;
必須登録するツールチェーンのラベル。 |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
パラメータ
| パラメータ | 説明 |
|---|---|
implementation
|
必須 このルールを実装する関数。単一のパラメータ 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 = '' ドキュメント生成ツールで抽出できるリポジトリ ルールの説明。 |
repr
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)
ルールは .bzl ファイルのグローバル変数に割り当てる必要があります。グローバル変数の名前がルールの名前になります。
テストルールには _test で終わる名前が必要ですが、他のすべてのルールにはこの接尾辞は使用できません。(この制限はルールにのみ適用され、ターゲットには適用されません)。
パラメータ
| パラメータ | 説明 |
|---|---|
implementation
|
必須 このルールを実装する Starlark 関数。パラメータは ctx の 1 つだけにする必要があります。この関数は、ルールのインスタンスごとに分析フェーズで呼び出されます。ユーザーが提供した属性にアクセスできます。宣言されたすべての出力を生成するアクションを作成する必要があります。 |
test
|
default = False このルールがテストルールであるかどうか、つまり blaze test コマンドの対象になるかどうか。すべてのテストルールは自動的に実行可能と見なされます。テストルールに executable = True を明示的に設定する必要はありません(また、設定することは推奨されません)。詳しくは、 ルールページをご覧ください。 |
attrs
|
dict; or None;
default = Noneルールのすべての属性を宣言するディクショナリ。属性名から属性オブジェクト(attr モジュールを参照)へのマッピングを行います。 _ で始まる属性は非公開で、ラベルへの暗黙的な依存関係を追加するために使用できます。属性 name は暗黙的に追加されるため、指定しないでください。属性 visibility、deprecation、tags、testonly、features は暗黙的に追加され、オーバーライドできません。ほとんどのルールに必要な属性はごくわずかです。メモリ使用量を制限するため、ルール関数は attrs のサイズに上限を設けます。 |
outputs
|
dict; or None; or function;
default = None非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。 ---incompatible_no_rule_outputs_param で無効になっています。このフラグを使用して、コードが削除予定の API と互換性があることを確認します。このパラメータは非推奨になりました。代わりに OutputGroupInfo または attr.output を使用するようにルールを移行します。事前宣言された出力を定義するためのスキーマ。 この引数の値は、ディクショナリまたはディクショナリを生成するコールバック関数のいずれかです。コールバックは、計算された依存関係属性と同様に機能します。関数のパラメータ名がルールの属性と照合されます。たとえば、定義 ディクショナリの各エントリは、キーが識別子で、値が出力のラベルを決定する文字列テンプレートである、事前宣言された出力を作成します。ルールの実装関数では、識別子は、
実際には、最も一般的な置換プレースホルダは |
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 = []設定されている場合、このルールに必要なツールチェーンのセット。リストには、String、Label、StarlarkToolchainTypeApi オブジェクトを任意の組み合わせで含めることができます。ツールチェーンは現在のプラットフォームをチェックすることで検出され、 ctx.toolchain を介してルール実装に提供されます。 |
incompatible_use_toolchain_transition
|
default = False 非推奨。使用されなくなったため、削除する必要があります。 |
doc
|
default = '' ドキュメント生成ツールで抽出できるルールの説明。 |
provides
|
default = [] 実装関数が返す必要があるプロバイダのリスト。 実装関数が、ここに記載されているプロバイダのいずれかの型を戻り値から省略すると、エラーになります。ただし、実装関数は、ここに記載されていない追加のプロバイダを返す場合があります。 リストの各要素は、 |
exec_compatible_with
|
sequence of strings;
default = []このルールタイプのすべてのターゲットに適用される実行プラットフォームの制約のリスト。 |
analysis_test
|
default = False true の場合、このルールは分析テストとして扱われます。 注: 分析テストルールは、主にコア Starlark ライブラリで提供されるインフラストラクチャを使用して定義されます。ガイダンスについては、テストをご覧ください。 ルールが分析テストルールとして定義されている場合、その属性で analysis_test_transition を使用して定義された構成遷移を使用できるようになりますが、いくつかの制限が適用されます。
|
build_setting
|
BuildSetting; or None;
デフォルト = None設定されている場合、このルールがどのような build setting であるかを記述します。config モジュールをご覧ください。この値を設定すると、このルールに「build_setting_default」という必須属性が自動的に追加されます。この属性の型は、ここで渡された値に対応します。 |
cfg
|
default = None 設定されている場合、ルールが分析前に独自の構成に適用する構成の移行を指します。 |
exec_groups
|
dict; or None;
default = None実行グループ名(文字列)と exec_groups のディクショナリ。設定されている場合、ルールは単一のターゲット内の複数の実行プラットフォームでアクションを実行できます。詳細については、実行グループのドキュメントをご覧ください。 |
compile_one_filetype
|
sequence of strings; or None;
default = None--compile_one_dependency で使用されます。複数のルールが指定されたファイルを使用する場合、他のルールよりもこのルールを選択する必要があります。 |
name
|
string; or None;
default = None非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。 --+incompatible_remove_rule_name_parameter で無効になっています。このフラグを使用して、コードが削除予定の API と互換性があることを確認します。非推奨: 使用しないでください。 Bazel で認識され、ロギング、 このパラメータを省略すると、ルールの名前は、宣言する .bzl モジュール内でこのルールにバインドされる最初の Starlark グローバル変数の名前に設定されます。したがって、名前が ルールに明示的な名前を指定しても、ルールをインスタンス化できる場所は変わりません。 |
選択
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
|
default = 0 Unix パッチの --strip 引数と同じです。 |
並べ替え
list sorted(iterable, *, key=None, reverse=False)
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 tag_class(attrs={}, *, doc='')
パラメータ
| パラメータ | 説明 |
|---|---|
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"
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, isolate=False)
パラメータ
| パラメータ | 説明 |
|---|---|
extension_bzl_file
|
必須 モジュール拡張機能を定義する Starlark ファイルのラベル。 |
extension_name
|
必須 使用するモジュール拡張機能の名前。この名前のシンボルは、Starlark ファイルによってエクスポートされる必要があります。 |
dev_dependency
|
デフォルト = False true の場合、現在のモジュールがルートモジュールでないか、`--ignore_dev_dependency` が有効になっている場合、このモジュール拡張機能の使用は無視されます。 |
isolate
|
default = False 試験運用中。このパラメータは試験運用版であり、いつでも変更される可能性があります。これに依存しないでください。 ---experimental_isolated_extension_usages を設定することで、試験運用として有効にできます。true の場合、このモジュール拡張機能の使用は、このモジュールと他のモジュールの両方で、他のすべての使用から分離されます。この使用目的で作成されたタグは他の使用目的に影響しません。また、この使用目的で拡張機能によって生成されたリポジトリは、拡張機能によって生成された他のすべてのリポジトリとは異なります。 このパラメータは現在試験運用中で、フラグ |
use_repo
None use_repo(extension_proxy, *args, **kwargs)
パラメータ
| パラメータ | 説明 |
|---|---|
extension_proxy
|
必須use_extension 呼び出しによって返されるモジュール拡張機能プロキシ オブジェクト。 |
args
|
必須 インポートするリポジトリの名前。 |
kwargs
|
必須 現在のモジュールのスコープに異なる名前でインポートする特定のリポジトリを指定します。キーは現在のスコープで使用する名前、値はモジュール拡張機能によってエクスポートされた元の名前にする必要があります。 |
visibility
None visibility(value)
現在初期化中の .bzl モジュールの読み込みの可視性を設定します。
モジュールの読み込み可視性は、他の BUILD ファイルと .bzl ファイルがモジュールを読み込めるかどうかを制御します。(これは、基盤となる .bzl ソースファイルのターゲットの可視性とは異なります。ターゲットの可視性は、ファイルが他のターゲットの依存関係として表示されるかどうかを制御します)。読み込みの可視性はパッケージ レベルで機能します。モジュールを読み込むには、読み込みを行うファイルが、モジュールへの可視性が付与されたパッケージに存在する必要があります。モジュールは、公開設定に関係なく、常に独自のパッケージ内で読み込むことができます。
visibility() は .bzl ファイルごとに 1 回のみ、最上位レベルでのみ呼び出すことができます。関数内では呼び出すことはできません。推奨されるスタイルは、この呼び出しを load() ステートメントと引数の決定に必要な簡単なロジックの直下に配置することです。
フラグ --check_bzl_visibility が false に設定されている場合、読み込みの可視性違反は警告を生成しますが、ビルドは失敗しません。
パラメータ
| パラメータ | 説明 |
|---|---|
value
|
必須 パッケージ仕様文字列のリスト、または単一のパッケージ仕様文字列。 パッケージの仕様は
「@」構文は使用できません。すべての仕様は、現在のモジュールのリポジトリを基準として解釈されます。
|
ワークスペース
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 で使用できます。ワークスペース名が指定されていない場合、runfile は bar.runfiles/foo/bar にシンボリック リンクされます。
リモート リポジトリ ルール名は、有効なワークスペース名である必要があります。たとえば、maven_jar(name = 'foo') は使用できますが、maven_jar(name = 'foo%bar') は使用できません。これは、Bazel が workspace(name = 'foo%bar') を含む maven_jar の WORKSPACE ファイルを書き込もうとするためです。
パラメータ
| パラメータ | 説明 |
|---|---|
name
|
必須 ワークスペースの名前。名前の先頭は英字にする必要があります。名前に含められるのは文字、数字、アンダースコア、ダッシュ、ドットのみです。 |
zip
list zip(*args)
tuple の list を返します。ここで、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 します。 |