atraktif

Laporkan masalah Lihat sumber Nightly

Ini adalah modul tingkat teratas untuk menentukan skema atribut 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

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 unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default bool; defaultnya adalah False
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan.
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; defaultnya 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 unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default int; default-nya adalah 0
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan.
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
values urut int; defaultnya 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; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty bool; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default urut int; defaultnya adalah []
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan.
doc string; atau None; default-nya 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=[])

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 unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default Label; atau string; atau LateBoundDefault; atau NativeComputedDefault; atau function; atau None; default-nya adalah None
Nilai default yang 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(default = "//a:b").
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
executable bool; defaultnya adalah False
Benar 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 defaultnya 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; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
skip_validations bool; defaultnya 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 sequence; default-nya 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 nama string untuk penyedia lama). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar internal. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK wajib mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi dianggap sebagai praktik terbaik.

allow_rules urutan string; atau None; default-nya adalah None
Target aturan mana (nama class) yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia.
cfg default-nya 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-nya 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, *, 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; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default dict; atau function; 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_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}).
doc string; atau None; default-nya 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-nya adalah None
Target aturan mana (nama class) yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia.
providers sequence; default-nya 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 nama string untuk penyedia lama). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar internal. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK wajib mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi dianggap sebagai praktik terbaik.

flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.
mandatory bool; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default-nya 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-nya 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=[], 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; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
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-nya 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-nya adalah None
Target aturan mana (nama class) yang diizinkan. Opsi ini tidak digunakan lagi (hanya mempertahankan kompatibilitas), gunakan penyedia.
providers sequence; default-nya 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 nama string untuk penyedia lama). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar internal. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen. Aturan dependensi TIDAK wajib mengiklankan penyedia tersebut dalam parameter provides-nya, tetapi dianggap sebagai praktik terbaik.

flags urutan string; default-nya adalah []
Tidak digunakan lagi, akan dihapus.
mandatory bool; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
skip_validations bool; defaultnya 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-nya 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-nya 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 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-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; 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 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; defaultnya adalah True
Benar jika atribut boleh kosong.
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; defaultnya 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 unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
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; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; 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 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; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default dict; defaultnya adalah {}
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan.
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; 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, *, configurable=unbound, default=[], doc=None)

Membuat skema untuk atribut daftar-of-string.

Parameter

Parameter Deskripsi
mandatory bool; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty bool; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default urutan string; atau NativeComputedDefault; default-nya adalah []
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.
doc string; atau None; default-nya 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; defaultnya adalah True
Benar jika atribut boleh kosong.
configurable bool; atau unbound; defaultnya adalah unbound
Jika true, atribut ini mendukung select()s
default dict; defaultnya adalah {}
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan saat membuat instance aturan.
doc string; atau None; default-nya adalah None
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory bool; defaultnya adalah False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).