属性

問題を報告 ソースを表示 ナイトリー · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

これは、ルールまたはアスペクトの属性スキーマを定義するための最上位モジュールです。各関数は、1 つの属性のスキーマを表すオブジェクトを返します。これらのオブジェクトは、rule()aspect()repository_rule()tag_class()attrs 辞書引数の値として使用されます。

属性の定義使用の詳細については、ルール ページをご覧ください。

メンバー

ブール値

Attribute attr.bool(configurable=unbound, default=False, doc=None, mandatory=False)

ブール値属性のスキーマを作成します。対応する ctx.attr 属性の型は bool です。

パラメータ

パラメータ 説明
configurable bool、または未バインド。デフォルトは unbound
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。Starlark ルールのほとんどの属性は、常に構成可能です。ただし、attr.output()attr.output_list()attr.license() ルール属性は常に構成できません。

default bool; デフォルトは False
この属性の値がルールのインスタンス化時に指定されていない場合に使用するデフォルト値。
doc 文字列、または None。デフォルトは None
ドキュメント生成ツールによって抽出できる属性の説明。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。

int

Attribute attr.int(configurable=unbound, default=0, doc=None, mandatory=False, values=[])

整数属性のスキーマを作成します。値は符号付き 32 ビットの範囲内である必要があります。対応する ctx.attr 属性の型は int です。

パラメータ

パラメータ 説明
configurable bool、またはアンバインド。デフォルトは unbound です。
この引数は、シンボリック マクロの属性に対してのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。Starlark ルールのほとんどの属性は、常に構成可能です。ただし、attr.output()attr.output_list()attr.license() ルール属性は常に構成できません。

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)

整数のリスト属性のスキーマを作成します。各要素は符号付き 32 ビットの範囲内にする必要があります。

パラメータ

パラメータ 説明
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。
allow_empty bool。デフォルトは True
。属性が空の可能性がある場合は true です。
configurable bool、またはアンバインド。デフォルトは unbound です。
この引数は、シンボリック マクロの属性に対してのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable がバインドされていないか、明示的に True に設定されている場合、この属性は構成可能で、select() 値を取ることができます。

ルールまたはアスペクトの属性の場合、configurable はバインドされていないままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定することはできません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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 ターゲットが許可されるかどうか。TrueFalse(デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"])を指定できます。
allow_single_file デフォルトは None
これは allow_files に似ていますが、ラベルが単一のファイルに対応している必要があります。ctx.file.<attribute_name> からアクセスできます。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。
skip_validations bool。デフォルトは False
。true の場合、この属性からの伝播依存関係の検証アクションは実行されません。これは一時的な緩和策であり、今後削除される予定です。
providers sequence(順序): デフォルトは []
。この属性に表示される依存関係によって指定する必要があるプロバイダ。

この引数の形式は、プロバイダのリスト(provider() によって返される *Info オブジェクト)のリストです(レガシー プロバイダの場合は、その文字列名)。依存関係は、内部リストの少なくとも 1 つに言及されているすべてのプロバイダを返す必要があります。便宜上、この引数はプロバイダの単一レベルのリストにすることもできます。その場合は、1 つの要素を持つ外側のリストにラップされます。依存関係のルールで、これらのプロバイダを provides パラメータでアドバタイズする必要はありませんが、ベスト プラクティスと見なされます。

for_dependency_resolution デフォルトは unbound
この属性が設定されている場合、マテリアル ライザで使用できます。このような属性を通じて参照できるのは、同じ名前のフラグでマークされたルールのみです。
allow_rules 文字列シーケンス、または None。デフォルトは None です。
許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。
cfg デフォルトは None です。
属性の Configuration"exec"(依存関係が execution platform 用にビルドされたことを示す)か、"target"(依存関係が target platform 用にビルドされたことを示す)のいずれかになります。違いの典型的な例は、モバイルアプリの作成です。target platformAndroid または iOS で、execution platformLinuxmacOS、または 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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable はバインドされていないままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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 ターゲットを許可するかどうか。TrueFalse(デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"])を指定できます。
allow_rules 文字列シーケンス、または None。デフォルトは None です。
許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。
providers sequence(順序): デフォルトは []
。この属性に表示される依存関係によって指定する必要があるプロバイダ。

この引数の形式は、プロバイダのリスト(provider() によって返される *Info オブジェクト)のリストです(レガシー プロバイダの場合は、その文字列名)。依存関係は、内部リストの少なくとも 1 つに記載されているすべてのプロバイダを返す必要があります。便宜上、この引数はプロバイダの単一レベルのリストにすることもできます。その場合、1 つの要素を含む外側のリストにラップされます。依存関係のルールで、これらのプロバイダを provides パラメータでアドバタイズする必要はありませんが、ベスト プラクティスと見なされます。

for_dependency_resolution デフォルトは unbound
この属性を設定すると、マテリアル ビューアで使用できるようになります。このような属性を介して参照できるのは、同じ名前のフラグが付加されたルールのみです。
flags 文字列シーケンス。デフォルトは []
非推奨で、今後削除されます。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。
cfg デフォルトは None です。
属性の Configuration"exec"(依存関係が execution platform 用にビルドされていることを示す)または "target"(依存関係が target platform 用にビルドされていることを示す)のいずれかです。違いの典型的な例は、モバイルアプリの作成です。target platformAndroid または iOS で、execution platformLinuxmacOS、または 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 属性は、Targetlist 型です。

この属性には一意の Label 値が含まれます。Label の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。

分析時(ルールの実装関数内)に、ctx.attr から属性値を取得すると、ラベルは対応する Target に置き換えられます。これにより、現在のターゲットの依存関係のプロバイダにアクセスできます。

パラメータ

パラメータ 説明
allow_empty bool。デフォルトは True
。属性が空の可能性がある場合は true です。
configurable bool、または未バインド。デフォルトは unbound
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable がバインドされていないか、明示的に True に設定されている場合、この属性は構成可能で、select() 値を取ることができます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

default ラベルシーケンス、または関数。デフォルトは []
です。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。文字列または Label 関数を使用して、デフォルト値(attr.label_list(default = ["//a:b", "//a:c"]) など)を指定します。
materializer 関数。デフォルトは None
試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。--experimental_dormant_deps
を設定すると、試験運用版に基づいて有効にできます。設定されている場合、この属性は推移的クロージャからの休止状態の依存関係を実体化します。このパラメータの値は、依存関係ではないか、依存関係解決の対象としてマークされているルールの属性の値にアクセスする関数である必要があります。属性のタイプに応じて、休止状態の依存関係またはそのリストを返す必要があります。
doc 文字列、または None。デフォルトは None
ドキュメント生成ツールによって抽出できる属性の説明。
allow_files bool文字列シーケンス、または None。デフォルトは None
File ターゲットが許可されるかどうか。TrueFalse(デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"])を指定できます。
allow_rules 文字列シーケンス、または None。デフォルトは None
どのルール ターゲット(クラスの名前)を許可するか。これは非推奨です(互換性確保のためだけに維持されます)。代わりにプロバイダを使用してください。
providers sequence(デフォルトは []
): この属性に表示される依存関係によって指定する必要があるプロバイダ。

この引数の形式は、プロバイダのリスト(provider() によって返される *Info オブジェクト)のリストです(レガシー プロバイダの場合は、その文字列名)。依存関係は、内部リストの少なくとも 1 つに記載されているすべてのプロバイダを返す必要があります。便宜上、この引数はプロバイダの単一レベルのリストにすることもできます。その場合は、1 つの要素を持つ外側のリストにラップされます。依存関係のルールで、これらのプロバイダを provides パラメータでアドバタイズする必要はありませんが、ベスト プラクティスと見なされます。

for_dependency_resolution デフォルトは unbound です。
これが設定されている場合、属性はマテリアライザで使用できます。このような属性を介して参照できるのは、同じ名前のフラグが付加されたルールのみです。
flags 文字列シーケンス。デフォルトは []
非推奨で、今後削除されます。
mandatory bool。デフォルトは False です。
true の場合、値は(default がある場合でも)明示的に指定する必要があります。
skip_validations bool。デフォルトは False
。true の場合、この属性からの伝播依存関係の検証アクションは実行されません。これは一時的な緩和策であり、将来的に削除される予定です。
cfg デフォルトは None
です。属性の構成"exec"(依存関係が execution platform 用にビルドされていることを示す)または "target"(依存関係が target platform 用にビルドされていることを示す)のいずれかです。違いの典型的な例は、モバイルアプリの作成です。target platformAndroid または iOS で、execution platformLinuxmacOS、または Windows です。
aspects アスペクトシーケンス。デフォルトは []
。この属性で指定された依存関係に適用するアスペクト。

output

Attribute attr.output(doc=None, mandatory=False)

出力(ラベル)属性のスキーマを作成します。

この属性には一意の Label 値が含まれます。Label の代わりに文字列を指定すると、ラベル コンストラクタを使用して変換されます。リポジトリを含むラベルパスの相対部分は、インスタンス化されたターゲットのパッケージに対して解決されます。

分析時に、対応する Filectx.outputs を使用して取得できます。

パラメータ

パラメータ 説明
doc 文字列、または None。デフォルトは None
ドキュメント生成ツールによって抽出できる属性の説明。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。

output_list

Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)

list-of-outputs 属性のスキーマを作成します。

この属性には一意の 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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable がバインドされていないか、明示的に True に設定されている場合、この属性は構成可能で、select() 値を取ることができます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定できません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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 ターゲットが許可されるかどうか。TrueFalse(デフォルト)、または許可されているファイル拡張子のリスト(例: [".cc", ".cpp"])を指定できます。
allow_rules 文字列シーケンス、または None。デフォルトは None です。
許可されるルールのターゲット(クラス名)。これは非推奨です(互換性のためのみ保持されています)。代わりにプロバイダを使用してください。
providers sequence(順序): デフォルトは []
。この属性に表示される依存関係によって指定する必要があるプロバイダ。

この引数の形式は、プロバイダのリストです。provider() から返される *Info オブジェクトです(以前のプロバイダの場合は文字列名)。依存関係は、内部リストの少なくとも 1 つに記載されているすべてのプロバイダを返す必要があります。便宜上、この引数はプロバイダの単一レベルのリストにすることもできます。その場合は、1 つの要素を持つ外側のリストにラップされます。依存関係のルールで、これらのプロバイダを provides パラメータでアドバタイズする必要はありませんが、ベスト プラクティスと見なされます。

for_dependency_resolution デフォルトは unbound
この属性を設定すると、マテリアル ビューアで使用できるようになります。このような属性を通じて参照できるのは、同じ名前のフラグでマークされたルールのみです。
flags 文字列シーケンス。デフォルトは []
。非推奨で、削除される予定です。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。
cfg デフォルトは None
です。属性の構成"exec"(依存関係が execution platform 用にビルドされたことを示す)か、"target"(依存関係が target platform 用にビルドされたことを示す)のいずれかになります。この違いの一般的な例としては、モバイルアプリをビルドする場合が挙げられます。この場合、target platformAndroid または iOS で、execution platformLinuxmacOS、または 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 です。
この引数は、シンボリック マクロの属性に対してのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定することはできません。configurable が未バインドの場合、または明示的に True に設定されている場合、この属性は構成可能で、select() 値を指定できます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。ほとんどの Starlark ルール属性は常に構成可能ですが、attr.output()attr.output_list()attr.license() のルール属性は常に構成できません。

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
。この引数は、シンボリック マクロの属性にのみ指定できます。

configurable が明示的に False に設定されている場合、シンボリック マクロ属性は構成できません。つまり、select() 値を指定することはできません。configurable がバインドされていないか、明示的に True に設定されている場合、この属性は構成可能で、select() 値を取ることができます。

ルールまたはアスペクトの属性の場合、configurable は未バインドのままにする必要があります。Starlark ルールのほとんどの属性は、常に構成可能です。ただし、attr.output()attr.output_list()attr.license() ルール属性は例外です。

default dict: デフォルトは {}
。ルールのインスタンス化時にこの属性の値が指定されていない場合に使用するデフォルト値。
doc 文字列、または None。デフォルトは None
ドキュメント生成ツールによって抽出できる属性の説明。
mandatory bool。デフォルトは False
。true の場合、値は明示的に指定する必要があります(default があっても同様です)。