rule()
と aspect()
の attrs
辞書引数の値です。属性の定義と使用の詳細については、[ルール] ページをご覧ください。
メンバー
- ブール値
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- 出力
- output_list
- 文字列
- string_dict
- 文字列リスト
- string_list_dict
ブール値
Attribute attr.bool(default=False, doc=None, mandatory=False)ブール値属性のスキーマを作成します。対応する
ctx.attr
属性の型は bool
になります。
パラメータ
パラメータ | 説明 |
---|---|
default
|
default = False ルールをインスタンス化する際にこの属性の値が指定されていない場合に使用されるデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])整数属性のスキーマを作成します。値は 32 ビット符号付き範囲にする必要があります。対応する
ctx.attr
属性の型は int
になります。
パラメータ
パラメータ | 説明 |
---|---|
default
|
default = 0 ルールをインスタンス化する際にこの属性の値が指定されていない場合に使用されるデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
values
|
sequence of ints ;
default = []属性で許可される値のリスト。他の値を指定すると、エラーが発生します。 |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)整数のリスト属性のスキーマを作成します。各要素は、符号付き 32 ビット範囲内に存在する必要があります。
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
allow_empty
|
default = True 属性を空にできる場合は True。 |
default
|
sequence of ints ;
default = []ルールをインスタンス化する際にこの属性に値が指定されていない場合に使用するデフォルト値。 |
doc
|
string; or None ;
default = 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
|
Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None ; default = Noneルールをインスタンス化する際にこの属性に値が指定されていない場合に使用されるデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label(default = "//a:b") )。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
executable
|
default = False 依存関係を実行可能にする必要がある場合は true。つまり、ラベルは実行可能ファイル、または実行可能ファイルを出力するルールを参照する必要があります。 ctx.executable.<attribute_name> を使用してラベルにアクセスします。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = なしFile ターゲットが許可されているかどうか。True 、False (デフォルト)、またはファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。
|
allow_single_file
|
default = None これは allow_files に似ていますが、ラベルが単一の File に対応している必要があるという制限があります。ctx.file.<attribute_name> からアクセスします。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
providers
|
デフォルト = [] この属性になんらかの依存関係がある場合に指定する必要があるプロバイダです。 この引数の形式は、プロバイダのリスト( |
allow_rules
|
sequence of strings; or None ; default = Noneどのルール ターゲット(クラスの名前)が許可されます。これは非推奨です(互換性の維持のみのため)。代わりにプロバイダを使用してください。 |
cfg
|
デフォルト = なし 属性の構成。 "exec" には、依存関係が execution platform に対してビルドされたことが示されます。"target" は、依存関係が target platform に対してビルドされていることを示します。違いの典型的な例は、モバイルアプリの構築時です。ここで、target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。executable が true の場合、ターゲット構成でホストツールを誤ってビルドするのを防ぐために、このパラメータは必須です。"target" にはセマンティック効果がないため、executable が False の場合は設定しないでください(意図が明確になる場合は除きます)。
|
aspects
|
sequence of Aspects ;
default = []この属性で指定された依存関係に適用される必要がある要素。 |
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
|
default = True 属性を空にできる場合は True。 |
default
|
dict; or function ;
default = {}ルールをインスタンス化する際にこの属性の値が指定されていない場合に使用されるデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) )。
|
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = なしFile ターゲットが許可されているかどうか。True 、False (デフォルト)、またはファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。
|
allow_rules
|
sequence of strings; or None ; default = Noneどのルール ターゲット(クラスの名前)が許可されます。これは非推奨です(互換性の維持のみのため)。代わりにプロバイダを使用してください。 |
providers
|
デフォルト = [] この属性になんらかの依存関係がある場合に指定する必要があるプロバイダです。 この引数の形式は、プロバイダのリスト( |
flags
|
sequence of strings ;
default = []非推奨。削除される予定です。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
cfg
|
デフォルト = なし 属性の構成。 "exec" には、依存関係が execution platform に対してビルドされたことが示されます。"target" は、依存関係が target platform に対してビルドされていることを示します。違いの典型的な例は、モバイルアプリの構築時です。ここで、target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。 |
aspects
|
sequence of Aspects ;
default = []この属性で指定された依存関係に適用される必要がある要素。 |
ラベルリスト
Attribute attr.label_list(allow_empty=True, *, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
ラベルの list 属性のスキーマを作成します。これは依存関係の属性です。対応する ctx.attr
属性は、Target
s のリスト型になります。
この属性には、一意の Label
値が含まれます。文字列を Label
の代わりに指定すると、ラベルのコンストラクタを使用して変換されます。ラベルパスの相対部分(名前を変更したリポジトリも含む)は、インスタンス化されたターゲットのパッケージに関して解決されます。
分析時(ルールの実装関数内)、ctx.attr
から属性値を取得すると、ラベルは対応する Target
に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性を空にできる場合は True。 |
default
|
sequence of Labels; or function ; default = []ルールをインスタンス化する際にこの属性の値が指定されていない場合に使用されるデフォルト値。文字列または Label 関数を使用してデフォルト値を指定します(例: attr.label_list(default = ["//a:b", "//a:c"]) )。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
allow_files
|
bool; or sequence of strings; or None ;
デフォルト = なしFile ターゲットが許可されているかどうか。True 、False (デフォルト)、またはファイル拡張子のリスト(例: [".cc", ".cpp"] )を指定できます。
|
allow_rules
|
sequence of strings; or None ; default = Noneどのルール ターゲット(クラスの名前)が許可されます。これは非推奨です(互換性の維持のみのため)。代わりにプロバイダを使用してください。 |
providers
|
デフォルト = [] この属性になんらかの依存関係がある場合に指定する必要があるプロバイダです。 この引数の形式は、プロバイダのリスト( |
flags
|
sequence of strings ;
default = []非推奨。削除される予定です。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
cfg
|
デフォルト = なし 属性の構成。 "exec" には、依存関係が execution platform に対してビルドされたことが示されます。"target" は、依存関係が target platform に対してビルドされていることを示します。違いの典型的な例は、モバイルアプリの構築時です。ここで、target platform は Android または iOS で、execution platform は Linux 、macOS 、または Windows です。 |
aspects
|
sequence of Aspects ;
default = []この属性で指定された依存関係に適用される必要がある要素。 |
出力
Attribute attr.output(doc=None, mandatory=False)
出力(ラベル)属性のスキーマを作成します。
この属性には、一意の Label
値が含まれます。文字列を Label
の代わりに指定すると、ラベルのコンストラクタを使用して変換されます。ラベルパスの相対部分(名前を変更したリポジトリも含む)は、インスタンス化されたターゲットのパッケージに関して解決されます。
分析時には、ctx.outputs
を使用して、対応する File
を取得できます。
パラメータ
パラメータ | 説明 |
---|---|
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
出力リスト
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)出力リスト属性のスキーマを作成します。
この属性には、一意の Label
値が含まれます。文字列を Label
の代わりに指定すると、ラベルのコンストラクタを使用して変換されます。ラベルパスの相対部分(名前を変更したリポジトリも含む)は、インスタンス化されたターゲットのパッケージに関して解決されます。
分析時には、ctx.outputs
を使用して、対応する File
を取得できます。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性を空にできる場合は True。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
string
Attribute attr.string(default='', doc=None, mandatory=False, values=[])string 属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
default
|
string; or NativeComputedDefault ; default = ''ルールをインスタンス化する際にこの属性に値がない場合に使うデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
values
|
sequence of strings ;
default = []属性で許可される値のリスト。他の値を指定すると、エラーが発生します。 |
文字列辞書
Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)辞書を保持する属性のスキーマを作成します。キーと値は文字列です。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性を空にできる場合は True。 |
default
|
default = {} ルールをインスタンス化する際にこの属性に値がない場合に使うデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
文字列リスト
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)文字列リスト属性のスキーマを作成します。
パラメータ
パラメータ | 説明 |
---|---|
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |
allow_empty
|
default = True 属性を空にできる場合は True。 |
default
|
sequence of strings; or NativeComputedDefault ;
default = []ルールをインスタンス化する際にこの属性に値が指定されていない場合に使用するデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
文字列リスト辞書
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)辞書を保持する属性のスキーマを作成します。キーは文字列、値は文字列のリストです。
パラメータ
パラメータ | 説明 |
---|---|
allow_empty
|
default = True 属性を空にできる場合は True。 |
default
|
default = {} ルールをインスタンス化する際にこの属性に値がない場合に使うデフォルト値。 |
doc
|
string; or None ;
default = Noneドキュメント生成ツールで抽出できる属性の説明。 |
mandatory
|
default = False true の場合、( default がある場合でも)値を明示的に指定する必要があります。 |