atraksi

Laporkan masalah Lihat sumber

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 mengetahui informasi selengkapnya tentang cara menentukan dan menggunakan atribut.

Anggota

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 default = False
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini diberikan saat membuat instance aturan.
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = 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 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 string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
values sequence of ints; default = []
Daftar nilai yang diizinkan untuk atribut. Error akan dilaporkan jika ada nilai lain yang diberikan.

int_daftar

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 ditandatangani.

Parameter

Parameter Deskripsi
mandatory default = False
Jika true (benar), nilai 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 string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh 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 disediakan, Label akan dikonversi menggunakan konstruktor label sebagai penggantinya. Bagian relatif jalur label, termasuk repositori (mungkin diganti namanya), diselesaikan sehubungan dengan paket target instance.

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 dalam file BUILD, Anda dapat melakukan hard code pada label alat kanonis sebagai nilai default dari atribut ini. Jika juga ingin mencegah pengguna mengganti default ini, Anda dapat membuat atribut tersebut menjadi 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 = 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; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
executable default = False
Benar jika dependensi harus dapat dieksekusi. Artinya, label harus merujuk ke 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 = None
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 pembatasan bahwa label harus sesuai dengan satu File. Akses melalui ctx.file.<attribute_name>.
mandatory default = False
Jika true (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 penyedia -- objek *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar bagian dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar satu tingkat penyedia. Dalam hal ini, argumen tersebut digabungkan dalam daftar luar dengan satu elemen. TIDAK wajib bahwa aturan dependensi mengiklankan penyedia tersebut di provides parameter, however, it is considered best practice. -nya

allow_rules sequence of strings; or None; default = None
Target aturan mana (nama class) yang diizinkan. Ini tidak digunakan lagi (disimpan hanya untuk kompatibilitas), gunakan penyedia sebagai gantinya.
cfg default = Tidak ada
Konfigurasi atribut. Nilai 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 mem-build aplikasi seluler, dengan target platform yang berupa Android atau iOS, sedangkan execution platform adalah Linux, macOS, atau Windows. Parameter ini diperlukan jika executable Benar untuk melindungi dari alat host yang tidak sengaja dibuat dalam konfigurasi target. "target" tidak memiliki efek semantik, jadi jangan setel jika executable Salah kecuali jika benar-benar membantu memperjelas intent Anda.
aspects sequence of Aspects; default = []
Aspek yang harus diterapkan pada dependensi atau dependensi yang ditentukan oleh atribut ini.

label_kunci_kunci_label

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 memiliki kamus. Kuncinya adalah label dan nilainya adalah string. Ini adalah atribut dependensi.

Atribut ini berisi nilai Label yang unik. Jika string disediakan, Label akan dikonversi menggunakan konstruktor label sebagai penggantinya. Bagian relatif jalur label, termasuk repositori (mungkin diganti namanya), diselesaikan sehubungan dengan paket target instance.

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 string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
allow_files bool; or sequence of strings; or None; default = None
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 = None
Target 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 *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar bagian dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar satu tingkat penyedia. Dalam hal ini, argumen tersebut digabungkan dalam daftar luar dengan satu elemen. TIDAK wajib bahwa aturan dependensi mengiklankan penyedia tersebut di provides parameter, however, it is considered best practice. -nya

flags sequence of strings; default = []
Tidak digunakan lagi, akan dihapus.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default = Tidak ada
Konfigurasi atribut. Nilai 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 mem-build aplikasi seluler, dengan target platform yang berupa Android atau iOS, sedangkan 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=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 disediakan, Label akan dikonversi menggunakan konstruktor label sebagai penggantinya. Bagian relatif jalur label, termasuk repositori (mungkin diganti namanya), diselesaikan sehubungan dengan paket target instance.

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 string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
allow_files bool; or sequence of strings; or None; default = None
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 = None
Target 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 *Info yang ditampilkan oleh provider() (atau dalam kasus penyedia lama, nama stringnya). Dependensi harus menampilkan SEMUA penyedia yang disebutkan dalam setidaknya SALAH SATU daftar bagian dalam. Untuk memudahkan, argumen ini juga dapat berupa daftar satu tingkat penyedia. Dalam hal ini, argumen tersebut digabungkan dalam daftar luar dengan satu elemen. TIDAK wajib bahwa aturan dependensi mengiklankan penyedia tersebut di provides parameter, however, it is considered best practice. -nya

flags sequence of strings; default = []
Tidak digunakan lagi, akan dihapus.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
cfg default = Tidak ada
Konfigurasi atribut. Nilai 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 mem-build aplikasi seluler, dengan target platform yang berupa Android atau iOS, sedangkan 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=None, mandatory=False)

Membuat skema untuk atribut output (label).

Atribut ini berisi nilai Label yang unik. Jika string disediakan, Label akan dikonversi menggunakan konstruktor label sebagai penggantinya. Bagian relatif jalur label, termasuk repositori (mungkin diganti namanya), diselesaikan sehubungan dengan paket target instance.

Pada waktu analisis, File yang sesuai dapat diambil menggunakan ctx.outputs.

Parameter

Parameter Deskripsi
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).

daftar_output

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 string disediakan, Label akan dikonversi menggunakan konstruktor label sebagai penggantinya. Bagian relatif jalur label, termasuk repositori (mungkin diganti namanya), diselesaikan sehubungan dengan paket target instance.

Pada waktu analisis, File yang sesuai dapat diambil menggunakan ctx.outputs.

Parameter

Parameter Deskripsi
allow_empty default = True
True jika atribut boleh kosong.
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = 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; or NativeComputedDefault; default = ''
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini yang diberikan saat membuat instance aturan.
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).
values sequence of strings; default = []
Daftar nilai yang diizinkan untuk atribut. Error akan dilaporkan jika ada nilai lain yang diberikan.

string_dikte

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 default = True
True jika atribut boleh kosong.
default default = {}
Nilai default yang akan digunakan jika tidak ada nilai untuk atribut ini diberikan saat membuat instance aturan.
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).

daftar_string

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

Membuat skema untuk atribut daftar string.

Parameter

Parameter Deskripsi
mandatory default = False
Jika true (benar), nilai 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 string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.

string_daftar_dict

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

Membuat skema untuk atribut yang menyimpan kamus. 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 diberikan saat membuat instance aturan.
doc string; or None; default = None
Deskripsi atribut yang dapat diekstrak oleh alat pembuat dokumentasi.
mandatory default = False
Jika true (benar), nilai harus ditentukan secara eksplisit (meskipun memiliki default).