atraktif

Ini adalah modul tingkat atas 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.

Pelanggan

bool

Attribute attr.bool(default=False, doc='', mandatory=False)

Membuat skema untuk atribut boolean.

Parameter

Parameter Deskripsi
default default = Salah
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai 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 dalam rentang 32-bit yang ditandatangani.

Parameter

Parameter Deskripsi
default default = 0
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai 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_list

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

Membuat skema untuk atribut list-of-integer. Setiap elemen harus berada dalam rentang 32-bit yang ditandatangani.

Parameter

Parameter Deskripsi
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty default = Benar
Benar 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 dengan alat penghasil 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 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 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 semacam itu dianggap sebagai dependensi, seperti halnya file sumber. Agar tidak mewajibkan pengguna untuk menentukan label alat setiap kali mereka menggunakan aturan dalam file BUILD, Anda dapat melakukan hard code pada label alat kanonis sebagai nilai default untuk 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 selengkapnya.

Parameter

Parameter Deskripsi
default Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None; default = Tidak ada
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(default = "//a:b").
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
executable default = False
Benar jika dependensi harus dapat dieksekusi. Artinya label harus mengacu pada file yang dapat dieksekusi, atau pada 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 ada
Apakah target File diizinkan atau tidak. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_single_file default = None
Ini mirip dengan allow_files, dengan batasan bahwa label harus berkaitan dengan satu File. Akses melalui ctx.file.<attribute_name>.
mandatory default = Salah
Jika benar, nilai 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 daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau untuk penyedia lama, nama string-nya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan setidaknya dalam SALAH SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen.

allow_rules sequence of strings; or None; default = Tidak ada
Target aturan mana (nama class) yang diizinkan. Penggunaan ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), sebagai gantinya gunakan penyedia.
cfg default = 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 menetapkannya saat executable bernilai Salah kecuali jika benar-benar membantu memperjelas maksud Anda.
aspects sequence of Aspects; default = []
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='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

Membuat skema untuk atribut yang menyimpan kamus, dengan kunci adalah label dan nilainya 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 (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 diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Parameter

Parameter Deskripsi
allow_empty default = Benar
Benar jika atribut boleh kosong.
default dict; or function; default = {}
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 default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
allow_files bool; or sequence of strings; or None; default = Tidak ada
Apakah target File diizinkan atau tidak. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_rules sequence of strings; or None; default = Tidak ada
Target aturan mana (nama class) yang diizinkan. Penggunaan ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), sebagai gantinya gunakan penyedia.
providers default = []
Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau untuk penyedia lama, nama string-nya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan setidaknya dalam SALAH SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen.

flags sequence of strings; default = []
Tidak digunakan lagi, akan dihapus.
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default = 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 sequence of Aspects; default = []
Aspek yang harus diterapkan ke dependensi atau dependensi yang ditentukan oleh atribut ini.

label_list

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 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 diganti dengan Target yang sesuai. Hal ini memungkinkan Anda mengakses penyedia dependensi target saat ini.

Parameter

Parameter Deskripsi
allow_empty default = Benar
Benar jika atribut boleh kosong.
default sequence of Labels; or function; default = []
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 default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
allow_files bool; or sequence of strings; or None; default = Tidak ada
Apakah target File diizinkan atau tidak. Dapat berupa True, False (default), atau daftar ekstensi file yang diizinkan (misalnya, [".cc", ".cpp"]).
allow_rules sequence of strings; or None; default = Tidak ada
Target aturan mana (nama class) yang diizinkan. Penggunaan ini tidak digunakan lagi (hanya dipertahankan untuk kompatibilitas), sebagai gantinya gunakan penyedia.
providers default = []
Penyedia yang harus diberikan oleh dependensi yang muncul dalam atribut ini.

Format argumen ini adalah daftar daftar penyedia -- objek *Info yang ditampilkan oleh provider() (atau untuk penyedia lama, nama string-nya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan setidaknya dalam SALAH SATU daftar dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar penyedia tingkat tunggal, yang dalam hal ini digabungkan dalam daftar luar dengan satu elemen.

flags sequence of strings; default = []
Tidak digunakan lagi, akan dihapus.
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default = 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 sequence of Aspects; default = []
Aspek yang harus diterapkan ke 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 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 default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).

output_list

Attribute attr.output_list(allow_empty=True, *, doc='', 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 default = Benar
Benar jika atribut boleh kosong.
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai 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 dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai 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 nilainya berupa string.

Parameter

Parameter Deskripsi
allow_empty default = Benar
Benar jika atribut boleh kosong.
default default = {}
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).

string_list

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

Membuat skema untuk atribut list-of-string.

Parameter

Parameter Deskripsi
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).
allow_empty default = Benar
Benar 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 dengan alat penghasil dokumentasi.

string_list_dict

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

Membuat skema untuk atribut yang menyimpan kamus, dengan kuncinya adalah string dan nilainya adalah daftar string.

Parameter

Parameter Deskripsi
allow_empty default = Benar
Benar jika atribut boleh kosong.
default default = {}
Nilai default yang akan digunakan jika tidak ada nilai yang diberikan untuk atribut ini saat membuat instance aturan.
doc default = ''
Deskripsi atribut yang dapat diekstrak dengan alat penghasil dokumentasi.
mandatory default = Salah
Jika benar, nilai harus ditentukan secara eksplisit (meskipun memiliki default).