attrs
dari rule()
dan aspect()
.Lihat halaman Aturan untuk mengetahui cara menentukan dan menggunakan atribut lebih lanjut.
Pelanggan
- bool
- int
- int_list
- label
- label_kunci_string_kunci
- daftar_label
- output
- daftar_output
- string
- string_dict
- daftar_string
- string_daftar_dict
bool
Attribute attr.bool(default=False, doc='', mandatory=False)Membuat skema untuk atribut boolean. Atribut
ctx.attr
yang sesuai akan berjenis bool
.
Parameter
Parameter | Deskripsi |
---|---|
default
|
default = False Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
int
Attribute attr.int(default=0, doc='', mandatory=False, values=[])Membuat skema untuk atribut bilangan bulat. Nilai harus berada dalam rentang 32-bit yang ditandatangani. Atribut
ctx.attr
yang sesuai akan berjenis int
.
Parameter
Parameter | Deskripsi |
---|---|
default
|
default = 0 Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
sequence of ints ;
default = []Daftar nilai yang diizinkan untuk atribut. Error akan muncul jika ada nilai lain yang diberikan. |
int_daftar
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')Membuat skema untuk atribut daftar bilangan bulat. Setiap elemen harus berada dalam rentang 32-bit yang ditandatangani.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
sequence of ints ;
default = []Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
label
Attribute attr.label(default=None, doc='', 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
unik. Jika string disediakan sebagai pengganti Label
, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (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 diganti dengan Target
yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Selain file sumber biasa, atribut semacam 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 di file BUILD, Anda dapat melakukan hard code pada label alat kanonis sebagai nilai default
dari atribut ini. Jika ingin mencegah pengguna mengganti default ini, Anda dapat membuat atribut bersifat pribadi dengan memberinya nama yang diawali dengan garis bawah. Lihat halaman Aturan untuk mengetahui informasi selengkapnya.
Parameter
Parameter | Deskripsi |
---|---|
default
|
Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None ;
default = NoneNilai 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
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
executable
|
default = False True jika dependensi harus dapat dijalankan. Artinya, label harus merujuk pada file yang dapat dieksekusi, atau aturan yang menghasilkan file yang dapat dieksekusi. Akses label dengan ctx.executable.<attribute_name> .
|
allow_files
|
bool; or sequence of strings; or None ;
default = Tidak adaApakah target File diizinkan. Dapat berupa True , False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"] ).
|
allow_single_file
|
default = Tidak ada Ini mirip dengan allow_files , dengan pembatasan bahwa label harus sesuai dengan satu File. Akses melalui ctx.file.<attribute_name> .
|
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
providers
|
default = [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar penyedia -- objek |
allow_rules
|
sequence of strings; or None ; default = NoneTarget aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), gunakan penyedia sebagai gantinya. |
cfg
|
default = Tidak ada Konfigurasi atribut. Hal 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 sebagai Android atau iOS , sementara execution platform adalah Linux , macOS , atau Windows . Parameter ini diperlukan jika executable disetel ke Benar (True) untuk melindungi dari alat host yang tidak sengaja dibuat dalam konfigurasi target. "target" tidak memiliki efek semantik, jadi jangan setel saat executable disetel ke Salah kecuali itu benar-benar membantu memperjelas niat Anda.
|
aspects
|
sequence of Aspects ;
default = []Aspek yang harus diterapkan pada dependensi atau dependensi yang ditentukan oleh atribut ini. |
label_kunci_string_kunci
Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Membuat skema untuk atribut yang memiliki kamus, yang kuncinya adalah label dan nilainya adalah string. Ini adalah atribut dependensi.
Atribut ini berisi nilai Label
unik. Jika string disediakan sebagai pengganti Label
, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (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 diganti dengan Target
yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
dict; or function ;
default = {}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
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
allow_files
|
bool; or sequence of strings; or None ;
default = Tidak adaApakah target File diizinkan. Dapat berupa True , False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"] ).
|
allow_rules
|
sequence of strings; or None ; default = NoneTarget aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), gunakan penyedia sebagai gantinya. |
providers
|
default = [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar penyedia -- objek |
flags
|
sequence of strings ;
default = []Tidak digunakan lagi, akan dihapus. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
cfg
|
default = Tidak ada Konfigurasi atribut. Hal 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 sebagai Android atau iOS , sementara execution platform adalah Linux , macOS , atau Windows .
|
aspects
|
sequence of Aspects ;
default = []Aspek yang harus diterapkan pada dependensi atau dependensi yang ditentukan oleh atribut ini. |
daftar_label
Attribute attr.label_list(allow_empty=True, *, default=[], doc='', 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 Target
.
Atribut ini berisi nilai Label
unik. Jika string disediakan sebagai pengganti Label
, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (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 diganti dengan Target
yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
sequence of Labels; or function ;
default = []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"]) .
|
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
allow_files
|
bool; or sequence of strings; or None ;
default = Tidak adaApakah target File diizinkan. Dapat berupa True , False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"] ).
|
allow_rules
|
sequence of strings; or None ; default = NoneTarget aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), gunakan penyedia sebagai gantinya. |
providers
|
default = [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar penyedia -- objek |
flags
|
sequence of strings ;
default = []Tidak digunakan lagi, akan dihapus. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
cfg
|
default = Tidak ada Konfigurasi atribut. Hal 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 sebagai Android atau iOS , sementara execution platform adalah Linux , macOS , atau Windows .
|
aspects
|
sequence of Aspects ;
default = []Aspek yang harus diterapkan pada dependensi atau dependensi yang ditentukan oleh atribut ini. |
hasil
Attribute attr.output(doc='', mandatory=False)
Membuat skema untuk atribut output (label).
Atribut ini berisi nilai Label
unik. Jika string disediakan sebagai pengganti Label
, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (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
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
daftar_output
Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)Membuat skema untuk atribut daftar output.
Atribut ini berisi nilai Label
unik. Jika string disediakan sebagai pengganti Label
, string tersebut akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (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
|
default = True True jika atribut boleh kosong. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
string
Attribute attr.string(default='', doc='', mandatory=False, values=[])Membuat skema untuk atribut string.
Parameter
Parameter | Deskripsi |
---|---|
default
|
string; or NativeComputedDefault ;
default = ''Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
sequence of strings ;
default = []Daftar nilai yang diizinkan untuk atribut. Error akan muncul jika ada nilai lain yang diberikan. |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)Membuat skema untuk atribut yang menyimpan kamus, dengan kunci dan nilai berupa string.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
default = {} Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
daftar_string
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')Membuat skema untuk atribut daftar string.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
sequence of strings; or NativeComputedDefault ;
default = []Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)Membuat skema untuk atribut yang memiliki kamus, yang kuncinya adalah string dan nilainya adalah daftar string.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
default = True True jika atribut boleh kosong. |
default
|
default = {} Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan. |
doc
|
default = '' Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi. |
mandatory
|
default = False Jika true (benar), nilai ini harus ditentukan secara eksplisit (meskipun memiliki default ).
|