これは、ルールまたはアスペクトの属性スキーマを定義するための最上位モジュールです。各関数は、1 つの属性のスキーマを表すオブジェクトを返します。これらのオブジェクトは、rule()
、aspect()
、repository_rule()
、tag_class()
の attrs
辞書引数の値として使用されます。
属性の定義と使用の詳細については、ルール ページをご覧ください。
メンバー
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- output
- output_list
- 文字列
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
ブール値
Attribute attr.bool(configurable=unbound, default=False, doc=None, mandatory=False)
ctx.attr
属性の型は bool
です。
パラメータ
パラメータ | 説明 |
---|---|
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
bool;
デフォルトは False この属性の値がルールのインスタンス化時に指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
int
Attribute attr.int(configurable=unbound, default=0, doc=None, mandatory=False, values=[])
ctx.attr
属性の型は int
です。
パラメータ
パラメータ | 説明 |
---|---|
configurable
|
bool、またはアンバインド。デフォルトは unbound です。この引数は、シンボリック マクロの属性に対してのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
int;
デフォルトは 0 ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
values
|
int のシーケンス。デフォルトは [] 。属性に使用できる値のリスト。他の値を指定すると、エラーが発生します。 |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
allow_empty
|
bool。デフォルトは True 。属性が空の可能性がある場合は true です。 |
configurable
|
bool、またはアンバインド。デフォルトは unbound です。この引数は、シンボリック マクロの属性に対してのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
int のシーケンス。デフォルトは [] 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
ラベル
Attribute attr.label(configurable=unbound, default=None, materializer=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], for_dependency_resolution=unbound, allow_rules=None, cfg=None, aspects=[], flags=[])
ラベル属性のスキーマを作成します。これは依存関係の属性です。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。ラベルパスの相対部分(名前が変更されている場合もあるリポジトリを含む)は、インスタンス化されたターゲットのパッケージを基準に解決されます。
分析時(ルールの実装関数内)に、ctx.attr
から属性値を取得すると、ラベルは対応する Target
に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
この種の属性は、通常のソースファイルに加えて、ツール(コンパイラなど)を参照するためによく使用されます。このようなツールは、ソースファイルと同様に依存関係と見なされます。BUILD ファイルでルールを使用するたびにツールのラベルを指定する必要がないようにするには、この属性の default
値として標準ツールのラベルをハードコードします。ユーザーがこのデフォルトをオーバーライドできないようにするには、アンダースコアで始まる名前を付けて属性を非公開にします。詳細については、ルール ページをご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
ラベル、文字列、LateBoundDefault、NativeComputedDefault、関数、None 。デフォルトは None 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label(default = "//a:b") )。 |
materializer
|
function;
デフォルトは None 試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。 --experimental_dormant_deps を設定すると、試験運用版に基づいて有効にできます。設定されている場合、この属性は推移的クロージャからの休止状態の依存関係を実体化します。このパラメータの値は、依存関係ではない、または依存関係の解決が可能としてマークされているルールの属性の値にアクセスできる関数である必要があります。属性のタイプに応じて、休止状態の依存関係またはそのリストを返す必要があります。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
executable
|
bool: デフォルトは False です。依存関係を実行可能にする必要がある場合は true です。つまり、実行可能なファイル、または実行可能ファイルを出力するルールを参照している必要があります。 ctx.executable.<attribute_name> を使用してラベルにアクセスします。 |
allow_files
|
bool、文字列のシーケンス、または None 。デフォルトは None 。File ターゲットが許可されるかどうか。True 、False (デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。 |
allow_single_file
|
デフォルトは None これは allow_files に似ていますが、ラベルが単一のファイルに対応している必要があります。ctx.file.<attribute_name> からアクセスできます。
|
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
skip_validations
|
bool。デフォルトは False 。true の場合、この属性からの伝播依存関係の検証アクションは実行されません。これは一時的な緩和策であり、今後削除される予定です。 |
providers
|
sequence(順序): デフォルトは [] 。この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
for_dependency_resolution
|
デフォルトは unbound この属性が設定されている場合、マテリアル ライザで使用できます。このような属性を通じて参照できるのは、同じ名前のフラグでマークされたルールのみです。 |
allow_rules
|
文字列のシーケンス、または None 。デフォルトは None です。許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
cfg
|
デフォルトは None です。属性の Configuration。 "exec" (依存関係が execution platform 用にビルドされたことを示す)か、"target" (依存関係が target platform 用にビルドされたことを示す)のいずれかになります。違いの典型的な例は、モバイルアプリの作成です。target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。executable が True の場合、ターゲット構成でホストツールが誤ってビルドされないように、このパラメータは必須です。"target" は意味的な効果がないため、意図を明確にするために本当に必要でない限り、executable が False の場合に設定しないでください。
|
aspects
|
Aspect のシーケンス。デフォルトは [] この属性で指定された依存関係に適用する必要があるアスペクトです。 |
flags
|
文字列のシーケンス。デフォルトは [] 。非推奨で、削除される予定です。 |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, cfg=None, aspects=[])
ディクショナリを保持する属性のスキーマを作成します。キーはラベルで、値は文字列です。これは依存関係の属性です。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。ラベルパスの相対部分(名前が変更されている場合もあるリポジトリを含む)は、インスタンス化されたターゲットのパッケージを基準に解決されます。
分析時(ルールの実装関数内)に、ctx.attr
から属性値を取得すると、ラベルは対応する Target
に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool: デフォルトは True です属性を空にできる場合は true。 |
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
dict、または function。デフォルトは {} 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) )。 |
doc
|
string: None :
デフォルトは None ドキュメント生成ツールで抽出できる属性の説明。 |
allow_files
|
bool、または string のシーケンス、または None 。デフォルトは None File ターゲットを許可するかどうか。True 、False (デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。 |
allow_rules
|
文字列のシーケンス、または None 。デフォルトは None です。許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
providers
|
sequence(順序): デフォルトは [] 。この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
for_dependency_resolution
|
デフォルトは unbound この属性を設定すると、マテリアル ビューアで使用できるようになります。このような属性を介して参照できるのは、同じ名前のフラグが付加されたルールのみです。 |
flags
|
文字列のシーケンス。デフォルトは [] 非推奨で、今後削除されます。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
cfg
|
デフォルトは None です。属性の Configuration。 "exec" (依存関係が execution platform 用にビルドされていることを示す)または "target" (依存関係が target platform 用にビルドされていることを示す)のいずれかです。違いの典型的な例は、モバイルアプリの作成です。target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。
|
aspects
|
アスペクトのシーケンス。デフォルトは [] 。この属性で指定された依存関係に適用するアスペクト。 |
label_list
Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], materializer=None, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])
ラベルのリスト属性のスキーマを作成します。これは依存関係属性です。対応する ctx.attr
属性は、Target
の list 型です。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に、ctx.attr
から属性値を取得すると、ラベルは対応する Target
に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool。デフォルトは True 。属性が空の可能性がある場合は true です。 |
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
ラベルのシーケンス、または関数。デフォルトは [] です。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用して、デフォルト値(attr.label_list(default = ["//a:b", "//a:c"]) など)を指定します。
|
materializer
|
関数。デフォルトは None 。試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。 --experimental_dormant_deps を設定すると、試験運用版に基づいて有効にできます。設定されている場合、この属性は推移的クロージャからの休止状態の依存関係を実体化します。このパラメータの値は、依存関係ではないか、依存関係解決の対象としてマークされているルールの属性の値にアクセスする関数である必要があります。属性のタイプに応じて、休止状態の依存関係またはそのリストを返す必要があります。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
allow_files
|
bool、文字列のシーケンス、または None 。デフォルトは None 。File ターゲットが許可されるかどうか。True 、False (デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。 |
allow_rules
|
文字列のシーケンス、または None 。デフォルトは None どのルール ターゲット(クラスの名前)を許可するか。これは非推奨です(互換性確保のためだけに維持されます)。代わりにプロバイダを使用してください。 |
providers
|
sequence(デフォルトは [] ): この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリスト( |
for_dependency_resolution
|
デフォルトは unbound です。これが設定されている場合、属性はマテリアライザで使用できます。このような属性を介して参照できるのは、同じ名前のフラグが付加されたルールのみです。 |
flags
|
文字列のシーケンス。デフォルトは [] 非推奨で、今後削除されます。 |
mandatory
|
bool。デフォルトは False です。true の場合、値は( default がある場合でも)明示的に指定する必要があります。 |
skip_validations
|
bool。デフォルトは False 。true の場合、この属性からの伝播依存関係の検証アクションは実行されません。これは一時的な緩和策であり、将来的に削除される予定です。 |
cfg
|
デフォルトは None です。属性の構成。 "exec" (依存関係が execution platform 用にビルドされていることを示す)または "target" (依存関係が target platform 用にビルドされていることを示す)のいずれかです。違いの典型的な例は、モバイルアプリの作成です。target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。
|
aspects
|
アスペクトのシーケンス。デフォルトは [] 。この属性で指定された依存関係に適用するアスペクト。 |
output
Attribute attr.output(doc=None, mandatory=False)
出力(ラベル)属性のスキーマを作成します。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時に、対応する File
は ctx.outputs
を使用して取得できます。
パラメータ
パラメータ | 説明 |
---|---|
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。ラベルパスの相対部分(名前が変更されている場合もあるリポジトリを含む)は、インスタンス化されたターゲットのパッケージを基準に解決されます。
分析時に、ctx.outputs
を使用して、対応する File
を取得できます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool。デフォルトは True 。属性が空の可能性がある場合は true です。 |
doc
|
string: None :
デフォルトは None ドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
文字列
Attribute attr.string(configurable=unbound, default='', doc=None, mandatory=False, values=[])
パラメータ
パラメータ | 説明 |
---|---|
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
string、または NativeComputedDefault。デフォルトは '' 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
values
|
文字列のシーケンス。デフォルトは [] 。この属性に指定できる値のリスト。他の値が指定された場合はエラーが発生します。 |
string_dict
Attribute attr.string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool: デフォルトは True です属性を空にできる場合は true。 |
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
dict: デフォルトは {} 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False です。true の場合、値は( default がある場合でも)明示的に指定する必要があります。 |
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, cfg=None, aspects=[])
値がディクショナリ(キーが文字列で値がラベル)である属性のスキーマを作成します。これは依存関係の属性です。
この属性には一意の Label
値が含まれます。Label
の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。
分析時(ルールの実装関数内)に、ctx.attr
から属性値を取得すると、ラベルは対応する Target
に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool: デフォルトは True です属性を空にできる場合は true。 |
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
dict、または function。デフォルトは {} 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}) )。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
allow_files
|
bool、文字列のシーケンス、または None 。デフォルトは None 。File ターゲットが許可されるかどうか。True 、False (デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。 |
allow_rules
|
文字列のシーケンス、または None 。デフォルトは None です。許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。 |
providers
|
sequence(順序): デフォルトは [] 。この属性に表示される依存関係によって指定する必要があるプロバイダ。 この引数の形式は、プロバイダのリストです。 |
for_dependency_resolution
|
デフォルトは unbound この属性を設定すると、マテリアル ビューアで使用できるようになります。このような属性を通じて参照できるのは、同じ名前のフラグでマークされたルールのみです。 |
flags
|
文字列のシーケンス。デフォルトは [] 。非推奨で、削除される予定です。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
cfg
|
デフォルトは None です。属性の構成。 "exec" (依存関係が execution platform 用にビルドされたことを示す)か、"target" (依存関係が target platform 用にビルドされたことを示す)のいずれかになります。この違いの一般的な例としては、モバイルアプリをビルドする場合が挙げられます。この場合、target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。 |
aspects
|
アスペクトのシーケンス。デフォルトは [] 。この属性で指定された依存関係に適用するアスペクト。 |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |
allow_empty
|
bool。デフォルトは True 。属性が空の可能性がある場合は true です。 |
configurable
|
bool、またはアンバインド。デフォルトは unbound です。この引数は、シンボリック マクロの属性に対してのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
string のシーケンス、または NativeComputedDefault。デフォルトは [] ルールをインスタンス化する際に、この属性に値が指定されていない場合に使用するデフォルト値。 |
doc
|
string: None :
デフォルトは None ドキュメント生成ツールで抽出できる属性の説明。 |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
bool。デフォルトは True 。属性が空の可能性がある場合は true です。 |
configurable
|
bool、または未バインド。デフォルトは unbound 。この引数は、シンボリック マクロの属性にのみ指定できます。
ルールまたはアスペクトの属性の場合、 |
default
|
dict: デフォルトは {} 。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。 |
doc
|
文字列、または None 。デフォルトは None 。ドキュメント生成ツールによって抽出できる属性の説明。 |
mandatory
|
bool。デフォルトは False 。true の場合、値は明示的に指定する必要があります( default があっても同様です)。 |