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