Modul ini adalah modul tingkat teratas untuk menentukan skema atribut dari suatu aturan atau aspek. Setiap fungsi menampilkan objek yang mewakili skema atribut tunggal. Objek ini digunakan sebagai nilai argumen kamus 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(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 simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
bool;
default adalah False Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (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 berada dalam rentang 32-bit yang ditandatangani. 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 simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
int;
default adalah 0 Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
urutan int;
default adalah [] Daftar nilai yang diizinkan untuk atribut. Error akan dimunculkan 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 yang ditandatangani.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
bool;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
urutan int;
default adalah [] Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
label
Attribute attr.label(configurable=unbound, default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], allow_rules=None, cfg=None, aspects=[], flags=[])
Membuat skema untuk atribut label. Ini adalah atribut dependensi.
Atribut ini berisi nilai Label
yang unik. Jika disediakan sebagai pengganti Label
, string akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (yang mungkin diganti namanya), diselesaikan sesuai dengan paket target yang dibuat instance.
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, atribut semacam ini sering digunakan untuk merujuk ke alat -- misalnya, compiler. Alat tersebut dianggap sebagai dependensi, seperti halnya file sumber. Agar pengguna tidak perlu menentukan label alat setiap kali mereka menggunakan aturan dalam file BUILD, Anda dapat melakukan hard code label alat kanonis sebagai nilai default
atribut ini. Jika Anda juga ingin mencegah pengguna mengganti default ini, Anda dapat membuat atribut menjadi pribadi dengan memberinya nama yang dimulai dengan garis bawah. Lihat halaman Aturan untuk informasi selengkapnya.
Parameter
Parameter | Deskripsi |
---|---|
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
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 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 ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
executable
|
bool;
default adalah False True jika dependensi harus dapat dieksekusi. Artinya, label harus merujuk pada file yang dapat dieksekusi, atau pada 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
|
default adalah None Hal 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 true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
skip_validations
|
bool;
default adalah False Jika benar, tindakan validasi dependensi transitif dari atribut ini tidak akan berjalan. Ini adalah mitigasi sementara dan AKAN dihapus pada masa mendatang. |
providers
|
urut;
default 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 adalah None Target aturan (nama class) mana yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia. |
cfg
|
default adalah None Konfigurasi atribut. 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 Benar (True) untuk mencegah pembuatan alat host secara tidak sengaja dalam konfigurasi target. "target" tidak memiliki efek semantik, jadi jangan tetapkan jika executable adalah Salah, kecuali jika benar-benar membantu memperjelas maksud Anda.
|
aspects
|
urutan Aspek;
default adalah [] Aspek yang harus diterapkan pada dependensi atau dependensi yang ditetapkan oleh atribut ini. |
flags
|
urutan string;
default 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=[], flags=[], mandatory=False, cfg=None, aspects=[])
Membuat skema untuk atribut yang menyimpan kamus, dengan kunci berupa label dan nilainya adalah string. Ini adalah atribut dependensi.
Atribut ini berisi nilai Label
yang unik. Jika disediakan sebagai pengganti Label
, string akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (yang mungkin diganti namanya), diselesaikan sesuai dengan paket target yang dibuat instance.
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;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
dict; atau function;
default adalah {} Nilai default yang akan digunakan jika tidak ada nilai 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 dengan alat penghasil 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 adalah None Target aturan (nama class) mana yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia. |
providers
|
urut;
default adalah [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar daftar penyedia -- objek |
flags
|
urutan string;
default adalah [] Tidak digunakan lagi, akan dihapus. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
cfg
|
default adalah None Konfigurasi atribut. 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 pada dependensi atau dependensi yang ditetapkan oleh atribut ini. |
label_list
Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], 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 menjadi jenis daftar dari Target
.
Atribut ini berisi nilai Label
yang unik. Jika disediakan sebagai pengganti Label
, string akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (yang mungkin diganti namanya), diselesaikan sesuai dengan paket target yang dibuat instance.
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;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
urutan Label; atau fungsi;
default-nya adalah [] Nilai default yang akan digunakan jika tidak ada nilai 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
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil 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 adalah None Target aturan (nama class) mana yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia. |
providers
|
urut;
default adalah [] Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini. Format argumen ini adalah daftar daftar penyedia -- objek |
flags
|
urutan string;
default adalah [] Tidak digunakan lagi, akan dihapus. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
skip_validations
|
bool;
default adalah False Jika benar, 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. 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 pada dependensi atau dependensi yang ditetapkan 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 disediakan sebagai pengganti Label
, string akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (yang mungkin diganti namanya), diselesaikan sesuai dengan paket target yang dibuat instance.
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 dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default 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 daftar output.
Atribut ini berisi nilai Label
yang unik. Jika disediakan sebagai pengganti Label
, string akan dikonversi menggunakan konstruktor label. Bagian relatif dari jalur label, termasuk repositori (yang mungkin diganti namanya), diselesaikan sesuai dengan paket target yang dibuat instance.
Pada waktu analisis, File
yang sesuai dapat diambil menggunakan ctx.outputs
.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
bool;
default adalah True True jika atribut boleh kosong. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (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 simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
string; atau NativeComputedDefault;
default adalah '' Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
values
|
urutan string;
default adalah [] Daftar nilai yang diizinkan untuk atribut. Error akan dimunculkan 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;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
dict;
default adalah {} Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)Membuat skema untuk atribut daftar-of-string.
Parameter
Parameter | Deskripsi |
---|---|
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|
allow_empty
|
bool;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
urutan string; atau NativeComputedDefault;
default adalah [] Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil 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 nilainya berupa daftar string.
Parameter
Parameter | Deskripsi |
---|---|
allow_empty
|
bool;
default adalah True True jika atribut boleh kosong. |
configurable
|
bool; atau tidak terikat;
default adalah unbound Argumen ini hanya dapat ditentukan untuk atribut makro simbolik. Jika Untuk atribut aturan atau aspek, |
default
|
dict;
default adalah {} Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan. |
doc
|
string; atau None ;
default adalah None Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi. |
mandatory
|
bool;
default adalah False Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default ).
|