atraktif

Laporkan masalah Lihat sumber Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Ini adalah modul tingkat atas untuk menentukan skema atribut aturan atau aspek. Setiap fungsi menampilkan objek yang mewakili skema satu atribut. Objek ini digunakan sebagai nilai argumen kamus attrs dari rule(), aspect(), repository_rule(), dan tag_class().

Lihat halaman Aturan untuk mengetahui informasi selengkapnya tentang cara menentukan dan menggunakan atribut.

Anggota

bool

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

Membuat skema untuk atribut boolean. Atribut ctx.attr yang sesuai akan berjenis bool.

Parameter

Parameter Deskripsi
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut tersebut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default bool; default adalah False
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).

int

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

Membuat skema untuk atribut bilangan bulat. Nilai harus dalam rentang 32-bit yang telah ditandai. Atribut ctx.attr yang sesuai akan berjenis int.

Parameter

Parameter Deskripsi
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default int; default adalah 0
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
values urutan int; default adalah []
Daftar nilai yang diizinkan untuk atribut. Error akan muncul jika nilai lain diberikan.

int_list

Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)

Membuat skema untuk atribut daftar bilangan bulat. Setiap elemen harus berada dalam rentang 32-bit bertanda.

Parameter

Parameter Deskripsi
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default urutan int; default adalah []
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.

label

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=[])

Membuat skema untuk atribut label. Ini adalah atribut dependensi.

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis (dalam fungsi penerapan aturan), saat mengambil nilai atribut dari ctx.attr, label akan diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Selain file sumber biasa, jenis atribut ini sering digunakan untuk merujuk ke alat -- misalnya, compiler. Alat tersebut dianggap sebagai dependensi, sama seperti file sumber. Agar pengguna tidak perlu menentukan label alat setiap kali mereka menggunakan aturan dalam file BUILD, Anda dapat melakukan hard code pada label alat kanonis sebagai nilai default atribut ini. Jika Anda juga ingin mencegah pengguna mengganti setelan default ini, Anda dapat membuat atribut menjadi pribadi dengan memberinya nama yang diawali dengan garis bawah. Lihat halaman Aturan untuk mengetahui informasi selengkapnya.

Parameter

Parameter Deskripsi
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default Label; atau string; atau LateBoundDefault; atau NativeComputedDefault; atau function; atau None; default adalah None
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.Gunakan string atau fungsi Label untuk menentukan nilai default, misalnya, attr.label(default = "//a:b").
materializer function; defaultnya adalah None
Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah sewaktu-waktu. Jangan bergantung pada hal ini. Ini dapat diaktifkan secara eksperimental dengan menetapkan --experimental_dormant_deps
Jika ditetapkan, atribut akan mewujudkan dependensi yang tidak aktif dari penutupan transitif. Nilai parameter ini harus berupa fungsi yang mendapatkan akses ke nilai atribut aturan yang bukan dependensi atau ditandai sebagai tersedia untuk resolusi dependensi. Fungsi ini harus menampilkan dependensi yang tidak aktif atau daftar dependensi, bergantung pada jenis atribut
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
executable bool; defaultnya adalah False
Benar jika dependensi harus dapat dieksekusi. Artinya, label harus merujuk ke file yang dapat dieksekusi, atau ke aturan yang menghasilkan file yang dapat dieksekusi. Akses label dengan ctx.executable.<attribute_name>.
allow_files bool; atau urutan string; atau None; defaultnya adalah None
Apakah target File diizinkan. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_single_file default adalah None
Ini mirip dengan allow_files, dengan batasan bahwa label harus sesuai dengan satu File. Akses melalui ctx.file.<attribute_name>.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
skip_validations bool; default adalah False
Jika benar (true), tindakan validasi dependensi transitif dari atribut ini tidak akan berjalan. Ini adalah mitigasi sementara dan AKAN dihapus pada masa mendatang.
providers sequence; default adalah []
Penyedia yang harus diberikan oleh dependensi apa pun yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan di setidaknya SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia satu tingkat, dalam hal ini argumen akan digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK diwajibkan untuk mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi hal ini dianggap sebagai praktik terbaik.

for_dependency_resolution default adalah unbound
Jika ditetapkan, atribut ini tersedia untuk materializer. Hanya aturan yang ditandai dengan tanda nama yang sama yang diizinkan untuk direferensikan melalui atribut tersebut.
allow_rules urutan string; atau None; default adalah None
Target aturan mana (nama class) yang diizinkan. Fungsi ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), gunakan penyedia sebagai gantinya.
cfg default adalah None
Konfigurasi atribut. Nilai ini dapat berupa "exec", yang menunjukkan bahwa dependensi dibuat untuk execution platform, atau "target", yang menunjukkan bahwa dependensi dibuat untuk target platform. Contoh umum perbedaannya adalah saat mem-build aplikasi seluler, dengan target platform adalah Android atau iOS, sedangkan execution platform adalah Linux, macOS, atau Windows. Parameter ini diperlukan jika executable bernilai True untuk mencegah pembuatan alat host secara tidak sengaja dalam konfigurasi target. "target" tidak memiliki efek semantik, jadi jangan tetapkan jika executable bernilai Salah (False), kecuali jika benar-benar membantu memperjelas niat Anda.
aspects urutan Aspek; default adalah []
Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini.
flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.

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=[])

Membuat skema untuk atribut yang menyimpan kamus, dengan kunci adalah label dan nilai adalah string. Ini adalah atribut dependensi.

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis (dalam fungsi penerapan aturan), saat mengambil nilai atribut dari ctx.attr, label akan diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default dict; atau function; default adalah {}
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.Gunakan string atau fungsi Label untuk menentukan nilai default, misalnya, attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}).
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
allow_files bool; atau urutan string; atau None; defaultnya adalah None
Apakah target File diizinkan. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_rules urutan string; atau None; default adalah None
Target aturan mana (nama class) yang diizinkan. Fungsi ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), gunakan penyedia sebagai gantinya.
providers sequence; default adalah []
Penyedia yang harus diberikan oleh dependensi apa pun yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan di setidaknya SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia satu tingkat, dalam hal ini argumen akan digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK diwajibkan untuk mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi hal ini dianggap sebagai praktik terbaik.

for_dependency_resolution default adalah unbound
Jika ditetapkan, atribut ini tersedia untuk materializer. Hanya aturan yang ditandai dengan tanda nama yang sama yang diizinkan untuk direferensikan melalui atribut tersebut.
flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default adalah None
Konfigurasi atribut. Nilainya dapat berupa "exec", yang menunjukkan bahwa dependensi dibuat untuk execution platform, atau "target", yang menunjukkan bahwa dependensi dibuat untuk target platform. Contoh umum perbedaannya adalah saat mem-build aplikasi seluler, dengan target platform adalah Android atau iOS, sedangkan execution platform adalah Linux, macOS, atau Windows.
aspects urutan Aspek; default adalah []
Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini.

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=[])

Membuat skema untuk atribut daftar label. Ini adalah atribut dependensi. Atribut ctx.attr yang sesuai akan berjenis daftar Target.

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis (dalam fungsi penerapan aturan), saat mengambil nilai atribut dari ctx.attr, label akan diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default urutan Label; atau fungsi; default adalah []
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.Gunakan string atau fungsi Label untuk menentukan nilai default, misalnya, attr.label_list(default = ["//a:b", "//a:c"]).
materializer function; defaultnya adalah None
Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah sewaktu-waktu. Jangan bergantung pada hal ini. Ini dapat diaktifkan secara eksperimental dengan menetapkan --experimental_dormant_deps
Jika ditetapkan, atribut akan mewujudkan dependensi yang tidak aktif dari penutupan transitif. Nilai parameter ini harus berupa fungsi yang mendapatkan akses ke nilai atribut aturan yang bukan dependensi atau ditandai sebagai tersedia untuk resolusi dependensi. Fungsi ini harus menampilkan dependensi yang tidak aktif atau daftar dependensi, bergantung pada jenis atribut
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
allow_files bool; atau urutan string; atau None; defaultnya adalah None
Apakah target File diizinkan. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_rules urutan string; atau None; default adalah None
Target aturan mana (nama class) yang diizinkan. Fungsi ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), gunakan penyedia sebagai gantinya.
providers sequence; default adalah []
Penyedia yang harus diberikan oleh dependensi apa pun yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan di setidaknya SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia satu tingkat, dalam hal ini argumen akan digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK diwajibkan untuk mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi hal ini dianggap sebagai praktik terbaik.

for_dependency_resolution default adalah unbound
Jika ditetapkan, atribut ini tersedia untuk materializer. Hanya aturan yang ditandai dengan tanda nama yang sama yang diizinkan untuk direferensikan melalui atribut tersebut.
flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
skip_validations bool; default adalah False
Jika benar (true), tindakan validasi dependensi transitif dari atribut ini tidak akan berjalan. Ini adalah mitigasi sementara dan AKAN dihapus pada masa mendatang.
cfg default adalah None
Konfigurasi atribut. Nilainya dapat berupa "exec", yang menunjukkan bahwa dependensi dibuat untuk execution platform, atau "target", yang menunjukkan bahwa dependensi dibuat untuk target platform. Contoh umum perbedaannya adalah saat mem-build aplikasi seluler, dengan target platform adalah Android atau iOS, sedangkan execution platform adalah Linux, macOS, atau Windows.
aspects urutan Aspek; default adalah []
Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini.

hasil

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

Membuat skema untuk atribut output (label).

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis, File yang sesuai dapat diambil menggunakan ctx.outputs.

Parameter

Parameter Deskripsi
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).

output_list

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

Membuat skema untuk atribut daftar output.

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis, File yang sesuai dapat diambil menggunakan ctx.outputs.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).

string

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

Membuat skema untuk atribut string.

Parameter

Parameter Deskripsi
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default string; atau NativeComputedDefault; default adalah ''
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
values urutan string; default adalah []
Daftar nilai yang diizinkan untuk atribut. Error akan muncul jika nilai lain diberikan.

string_dict

Attribute attr.string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)

Membuat skema untuk atribut yang menyimpan kamus, dengan kunci dan nilai berupa string.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut tersebut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default dict; default adalah {}
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki 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=[])

Membuat skema untuk atribut yang nilainya adalah kamus dengan kunci berupa string dan nilai berupa label. Ini adalah atribut dependensi.

Atribut ini berisi nilai Label yang unik. Jika string diberikan sebagai pengganti Label, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (mungkin diganti namanya), di-resolve sehubungan dengan paket target yang dibuat instance-nya.

Pada waktu analisis (dalam fungsi penerapan aturan), saat mengambil nilai atribut dari ctx.attr, label akan diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default dict; atau function; default adalah {}
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.Gunakan string atau fungsi Label untuk menentukan nilai default, misalnya, attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}).
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
allow_files bool; atau urutan string; atau None; defaultnya adalah None
Apakah target File diizinkan. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_rules urutan string; atau None; default adalah None
Target aturan mana (nama class) yang diizinkan. Fungsi ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), gunakan penyedia sebagai gantinya.
providers sequence; default adalah []
Penyedia yang harus diberikan oleh dependensi apa pun yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan di setidaknya SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia satu tingkat, dalam hal ini argumen akan digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK diwajibkan untuk mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi hal ini dianggap sebagai praktik terbaik.

for_dependency_resolution default adalah unbound
Jika ditetapkan, atribut ini tersedia untuk materializer. Hanya aturan yang ditandai dengan tanda nama yang sama yang diizinkan untuk direferensikan melalui atribut tersebut.
flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default adalah None
Konfigurasi atribut. Nilainya dapat berupa "exec", yang menunjukkan bahwa dependensi dibuat untuk execution platform, atau "target", yang menunjukkan bahwa dependensi dibuat untuk target platform. Contoh umum perbedaannya adalah saat mem-build aplikasi seluler, dengan target platform adalah Android atau iOS, sedangkan execution platform adalah Linux, macOS, atau Windows.
aspects urutan Aspek; default adalah []
Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini.

string_list

Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)

Membuat skema untuk atribut daftar string.

Parameter

Parameter Deskripsi
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default urutan string; atau NativeComputedDefault; default adalah []
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.

string_list_dict

Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)

Membuat skema untuk atribut yang menyimpan kamus, dengan kunci berupa string dan nilai berupa daftar string.

Parameter

Parameter Deskripsi
allow_empty bool; defaultnya adalah True
Benar jika atribut dapat kosong.
configurable bool; atau tidak terikat; default adalah unbound
Argumen ini hanya dapat ditentukan untuk atribut makro simbolis.

Jika configurable ditetapkan secara eksplisit ke False, atribut makro simbolis tidak dapat dikonfigurasi - dengan kata lain, atribut tersebut tidak dapat menggunakan nilai select(). Jika configurable tidak terikat atau ditetapkan secara eksplisit ke True, atribut dapat dikonfigurasi dan dapat menggunakan nilai select().

Untuk atribut aturan atau aspek, configurable harus dibiarkan tidak terikat. Sebagian besar atribut aturan Starlark selalu dapat dikonfigurasi, dengan pengecualian atribut aturan attr.output(), attr.output_list(), dan attr.license(), yang selalu tidak dapat dikonfigurasi.

default dict; default adalah {}
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; atau None; default adalah None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory bool; default adalah False
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).