attrs
dari rule()
dan aspect()
.Lihat halaman Aturan untuk informasi selengkapnya tentang menentukan dan menggunakan atribut.
Anggota
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- output
- output_list
- string
- string_dict
- string_list
- string_list_dict
bool
Attribute attr.bool(default=False, doc=None, mandatory=False)Membuat skema untuk atribut boolean. Atribut
ctx.attr
yang sesuai akan berjenis bool
.
Parameter
Parameter | Deskripsi |
---|---|
default
|
defaultnya adalah False Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])Membuat skema untuk atribut bilangan bulat. Nilai harus dalam rentang 32-bit yang ditandai. Atribut
ctx.attr
yang sesuai akan berjenis int
.
Parameter
Parameter | Deskripsi |
---|---|
default
|
defaultnya adalah 0 Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
urut dari int;
defaultnya adalah [] Daftar nilai yang diizinkan untuk atribut ini. Error terjadi jika ada nilai lain yang diberikan. |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)Membuat skema untuk atribut daftar bilangan bulat. Setiap elemen harus berada dalam rentang 32-bit yang ditandai.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
urut dari int;
defaultnya adalah [] Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
label
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=[])
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 (yang mungkin diganti namanya), diselesaikan 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. Ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Selain file sumber biasa, atribut semacam ini sering digunakan untuk merujuk pada alat -- misalnya, compiler. Alat tersebut dianggap sebagai dependensi, seperti file sumber. Agar pengguna tidak perlu menentukan label alat setiap kali mereka menggunakan aturan di file BUILD, Anda dapat melakukan hard code pada label alat kanonis sebagai nilai default
atribut ini. Jika Anda juga ingin mencegah pengguna mengganti nilai default ini, Anda dapat membuat atribut menjadi pribadi dengan memberinya nama yang dimulai dengan garis bawah. Lihat halaman Aturan untuk informasi lebih lanjut.
Parameter
Parameter | Deskripsi |
---|---|
default
|
Label; atau string; atau LateBoundDefault; atau NativeComputedDefault; atau fungsi; atau None ; default-nya 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") .
|
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
executable
|
defaultnya adalah False Benar jika dependensi harus dapat dieksekusi. Artinya, label harus mengacu pada file yang dapat dieksekusi, atau aturan yang menghasilkan file yang dapat dieksekusi. Akses label dengan ctx.executable.<attribute_name> .
|
allow_files
|
bool; atau urutan string; atau None ;
default-nya adalah None Apakah target File diizinkan. Dapat berupa True , False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"] ).
|
allow_single_file
|
defaultnya adalah None Ini mirip dengan allow_files , dengan batasan bahwa label harus sesuai dengan satu File. Akses melalui ctx.file.<attribute_name> .
|
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
providers
|
default-nya adalah [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar daftar penyedia -- objek |
allow_rules
|
urutan string; atau None ;
default-nya adalah None Target aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), sebagai gantinya gunakan penyedia. |
cfg
|
defaultnya adalah None Konfigurasi atribut. Parameter 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 membuat aplikasi seluler, dengan target platform adalah Android atau iOS , sedangkan execution platform adalah Linux , macOS , atau Windows . Parameter ini diperlukan jika executable disetel ke Benar (True) untuk mencegah pembuatan alat host secara tidak sengaja dalam konfigurasi target. "target" tidak memiliki efek semantik, jadi jangan tetapkan jika executable bernilai Salah kecuali jika hal ini benar-benar membantu memperjelas maksud Anda.
|
aspects
|
urutan Aspek;
defaultnya adalah [] Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini. |
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=[])
Membuat skema untuk atribut yang menyimpan kamus, dengan kunci sebagai label dan nilainya sebagai 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 (yang mungkin diganti namanya), diselesaikan 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. Ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
dict; atau fungsi;
defaultnya adalah {} Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini 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 ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
allow_files
|
bool; atau urutan string; atau None ;
default-nya 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-nya adalah None Target aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), sebagai gantinya gunakan penyedia. |
providers
|
default-nya adalah [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar daftar penyedia -- objek |
flags
|
sequence dari string;
default-nya adalah [] Tidak digunakan lagi, akan dihapus. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
cfg
|
defaultnya adalah None Konfigurasi atribut. Parameter 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 membuat aplikasi seluler, dengan target platform adalah Android atau iOS , sedangkan execution platform adalah Linux , macOS , atau Windows .
|
aspects
|
urutan Aspek;
defaultnya adalah [] Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini. |
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=[])
Membuat skema untuk atribut daftar label. Ini adalah atribut dependensi. Atribut ctx.attr
yang sesuai akan berjenis daftar dari 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 (yang mungkin diganti namanya), diselesaikan 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. Ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
urutan Label; atau fungsi;
default-nya adalah [] Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.Gunakan string atau fungsi Label untuk menentukan nilai default, misalnya, attr.label_list(default = ["//a:b", "//a:c"]) .
|
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
allow_files
|
bool; atau urutan string; atau None ;
default-nya 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-nya adalah None Target aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), sebagai gantinya gunakan penyedia. |
providers
|
default-nya adalah [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar daftar penyedia -- objek |
flags
|
sequence dari string;
default-nya adalah [] Tidak digunakan lagi, akan dihapus. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
cfg
|
defaultnya adalah None Konfigurasi atribut. Parameter 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 membuat aplikasi seluler, dengan target platform adalah Android atau iOS , sedangkan execution platform adalah Linux , macOS , atau Windows .
|
aspects
|
urutan Aspek;
defaultnya 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 (yang mungkin diganti namanya), diselesaikan 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 ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (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 list-of-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 (yang mungkin diganti namanya), diselesaikan sehubungan dengan paket target yang dibuat instance-nya.
Pada waktu analisis, File
yang sesuai dapat diambil menggunakan ctx.outputs
.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
string
Attribute attr.string(default='', doc=None, mandatory=False, values=[])Membuat skema untuk atribut string.
Parameter
Parameter | Deskripsi |
---|---|
default
|
string; atau NativeComputedDefault;
defaultnya adalah '' Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
urutan string;
defaultnya adalah [] Daftar nilai yang diizinkan untuk atribut. Error terjadi jika ada nilai lain yang diberikan. |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)Membuat skema untuk atribut yang menyimpan kamus, dengan kunci dan nilai berupa string.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
defaultnya adalah {} Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)Membuat skema untuk atribut list-of-string.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
urutan string; atau NativeComputedDefault; defaultnya adalah [] Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)Membuat skema untuk atribut yang menyimpan kamus, dengan kunci adalah string dan nilainya adalah daftar string.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
defaultnya adalah True Benar jika atribut boleh kosong. |
default
|
defaultnya adalah {} Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
defaultnya adalah None Deskripsi atribut yang dapat diekstrak dengan alat pembuat dokumentasi. |
mandatory
|
defaultnya adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|