Anggota
- depset
- aturan_yang ada
- aturan_yang ada
- file ekspor
- glob
- nama_modul
- module_version
- package_group [kelompok_paket]
- nama_paket
- label_relatif_paket
- nama_repositori
- pilih
- sub-paket
depset
depset depset(direct=None, order="default", *, transitive=None)Membuat depset. Parameter
direct
adalah daftar elemen langsung dari depset, dan parameter transitive
adalah daftar depset yang elemennya menjadi elemen tidak langsung dari depset yang dibuat. Urutan elemen yang ditampilkan saat depset dikonversi ke daftar ditentukan oleh parameter order
. Lihat Ringkasan depsets untuk mengetahui informasi selengkapnya.
Semua elemen (langsung dan tidak langsung) dari depset harus berjenis sama, seperti yang diperoleh dengan ekspresi type(x)
.
Karena set berbasis hash digunakan untuk menghilangkan duplikat selama iterasi, semua elemen depset harus dapat di-hash. Namun, invarian ini saat ini tidak diperiksa secara konsisten di semua konstruktor. Gunakan tanda --incompatible_always_check_depset_elements untuk memungkinkan pemeriksaan yang konsisten; ini akan menjadi perilaku default dalam rilis mendatang; lihat Masalah 10313.
Selain itu, elemen harus tidak dapat diubah, meskipun pembatasan ini akan longgar di masa mendatang.
Urutan depset yang dibuat harus kompatibel dengan urutan depset transitive
. Pesanan "default"
kompatibel dengan pesanan lain, semua pesanan lain hanya kompatibel dengan pesanannya sendiri.
Catatan tentang kompatibilitas mundur/maju. Fungsi ini saat ini menerima parameter items
posisi. Library ini tidak digunakan lagi dan akan dihapus di masa mendatang, dan setelah dihapus, direct
akan menjadi parameter posisi tunggal dari fungsi depset
. Dengan demikian, kedua panggilan berikut setara dan tidak akan ketinggalan zaman:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Parameter
Parameter | Deskripsi |
---|---|
direct
|
sequence; or None ;
default = Tidak adaDaftar elemen langsung dari depset. |
order
|
default = "default" Strategi traversal untuk depset baru. Lihat di sini untuk mengetahui kemungkinan nilai. |
transitive
|
sequence of depsets; or None ;
default = Tidak adaDaftar depset yang elemennya akan menjadi elemen tidak langsung dari depset. |
aturan_yang ada
unknown existing_rule(name)Menampilkan objek seperti dict yang tidak dapat diubah yang menjelaskan atribut aturan yang dibuat dalam paket thread ini, atau
None
jika tidak ada instance aturan dengan nama tersebut.Di sini, objek mirip dict yang tidak dapat diubah berarti objek yang tidak dapat diubah x
yang mendukung iterasi seperti dikte, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
, dan x.values()
.
Jika flag --noincompatible_existing_rules_immutable_view
ditetapkan, sebaliknya akan menampilkan dict yang dapat diubah baru dengan konten yang sama.
Hasilnya berisi entri untuk setiap atribut, dengan pengecualian atribut pribadi (yang namanya tidak diawali dengan huruf) dan beberapa jenis atribut lama yang tidak dapat direpresentasikan. Selain itu, dikte berisi entri untuk name
dan kind
instance aturan (misalnya, 'cc_binary'
).
Nilai-nilai hasil mewakili nilai atribut sebagai berikut:
- Atribut jenis str, int, dan bool direpresentasikan apa adanya.
- Label dikonversi ke string dengan format
':foo'
untuk target dalam paket yang sama atau'//pkg:name'
untuk target dalam paket yang berbeda. - Daftar direpresentasikan sebagai tuple, dan dict dikonversi menjadi dict baru yang dapat diubah. Elemen mereka dikonversi secara rekursif dengan cara yang sama.
- Nilai
select
ditampilkan dengan kontennya diubah seperti yang dijelaskan di atas. - Atribut yang tidak memiliki nilai yang ditentukan selama pembuatan aturan dan yang nilai defaultnya dihitung akan dikecualikan dari hasil. (Default yang dihitung tidak dapat dihitung sampai fase analisis.).
Jika memungkinkan, hindari penggunaan fungsi ini. Hal ini membuat file BUILD rapuh dan bergantung pada urutan. Selain itu, perhatikan bahwa perbedaannya sedikit berbeda dari dua konversi nilai atribut aturan lainnya dari bentuk internal ke Starlark: satu digunakan oleh default yang dihitung, dan yang lain digunakan oleh ctx.attr.foo
.
Parameter
Parameter | Deskripsi |
---|---|
name
|
wajib Nama target. |
aturan_yang ada
unknown existing_rules()Menampilkan objek mirip dict yang tidak dapat diubah yang menjelaskan aturan sejauh ini dibuat instance-nya dalam paket thread ini. Setiap entri objek yang mirip dict memetakan nama instance aturan ke hasil yang akan ditampilkan oleh
existing_rule(name)
.Di sini, objek mirip dict yang tidak dapat diubah berarti objek yang tidak dapat diubah x
yang mendukung iterasi seperti dikte, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
, dan x.values()
.
Jika flag --noincompatible_existing_rules_immutable_view
ditetapkan, sebaliknya akan menampilkan dict yang dapat diubah baru dengan konten yang sama.
Catatan: Jika memungkinkan, hindari penggunaan fungsi ini. Hal ini membuat file BUILD rapuh dan bergantung pada urutan. Selain itu, jika flag --noincompatible_existing_rules_immutable_view
ditetapkan, fungsi ini mungkin sangat mahal, terutama jika dipanggil dalam loop.
file_ekspor
None exports_files(srcs, visibility=None, licenses=None)Menentukan daftar file milik paket ini yang diekspor ke paket lain.
Parameter
Parameter | Deskripsi |
---|---|
srcs
|
sequence of strings ;
diperlukanDaftar file yang akan diekspor. |
visibility
|
sequence; or None ;
default = Tidak adaDeklarasi visibilitas dapat ditentukan. File akan terlihat oleh target yang ditentukan. Jika tidak ada visibilitas yang ditentukan, file akan terlihat di setiap paket. |
licenses
|
sequence of strings; or None ;
default = NoneLisensi yang akan ditetapkan. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)Glob menampilkan daftar baru dan dapat diurutkan, untuk setiap file dalam paket saat ini yang:
- Cocok dengan minimal satu pola di
include
. - Tidak cocok dengan pola apa pun di
exclude
(default[]
).
exclude_directories
diaktifkan (ditetapkan ke 1
), file direktori jenis akan dihilangkan dari hasil (1
default).
Parameter
Parameter | Deskripsi |
---|---|
include
|
sequence of strings ;
default = []Daftar pola glob yang akan disertakan. |
exclude
|
sequence of strings ;
default = []Daftar pola glob yang akan dikecualikan. |
exclude_directories
|
default = 1 Tanda apakah akan mengecualikan direktori atau tidak. |
allow_empty
|
default = unbound Apakah pola glob diizinkan dicocokkan dengan apa pun. Jika `allow_empty` adalah False, setiap pola penyertaan harus cocok dengan sesuatu dan juga hasil akhir tidak boleh kosong (setelah kecocokan pola `exclude` dikecualikan). |
nama_modul
string module_name()Nama modul Bazel yang terkait dengan repo tempat paket ini berada. Jika paket ini berasal dari repo yang ditentukan di WORKSPACE dan bukan MODULE.bazel, ini akan kosong. Untuk repo yang dihasilkan oleh ekstensi modul, ini adalah nama modul yang menghosting ekstensi. Sama dengan kolom
module.name
yang terlihat di module_ctx.modules
.
Dapat menampilkan None
.
modul_version
string module_version()Versi modul Bazel yang terkait dengan repo tempat paket ini berada. Jika paket ini berasal dari repo yang ditentukan di WORKSPACE dan bukan MODULE.bazel, ini akan kosong. Untuk repo yang dihasilkan oleh ekstensi modul, ini adalah versi modul yang menghosting ekstensi. Sama dengan kolom
module.version
yang terlihat di module_ctx.modules
.
Dapat menampilkan None
.
grup_paket
None package_group(name, packages=[], includes=[])Fungsi ini menentukan kumpulan paket dan menetapkan label ke grup. Label dapat dirujuk dalam atribut
visibility
.
Parameter
Parameter | Deskripsi |
---|---|
name
|
wajib Nama unik aturan ini. |
packages
|
sequence of strings ;
default = []Enumerasi paket yang lengkap dalam grup ini. |
includes
|
sequence of strings ;
default = []Grup paket lainnya yang disertakan dalam grup paket ini. |
nama_paket
string package_name()Nama paket yang dievaluasi. Misalnya, dalam file BUILD
some/package/BUILD
, nilainya akan menjadi some/package
. Jika file BUILD memanggil fungsi yang ditentukan dalam file .bzl, package_name()
akan cocok dengan paket file BUILD pemanggil. Fungsi ini setara dengan variabel yang tidak digunakan lagi PACKAGE_NAME
.
label_relatif_paket
Label package_relative_label(input)Mengonversi string input menjadi objek Label, dalam konteks paket yang saat ini diinisialisasi (yaitu file
BUILD
tempat makro saat ini dieksekusi). Jika sudah menjadi Label
, input akan ditampilkan tanpa perubahan.Fungsi ini hanya dapat dipanggil saat mengevaluasi file Build dan makro yang dipanggil secara langsung atau tidak langsung. Fungsi ini tidak dapat dipanggil di (misalnya) fungsi implementasi aturan.
Hasil fungsi ini adalah nilai Label
yang sama seperti yang dihasilkan dengan meneruskan string tertentu ke atribut nilai label target yang dideklarasikan dalam file darat.
Catatan penggunaan: Perbedaan antara fungsi ini dan Label() adalah bahwa Label()
menggunakan konteks paket file .bzl
yang memanggilnya, bukan paket file BUILD
. Gunakan Label()
saat Anda perlu merujuk ke target tetap yang di-hardcode ke dalam makro, seperti compiler. Gunakan package_relative_label()
saat Anda perlu menormalisasi string label yang disediakan oleh file BUILD ke objek Label
. (Tidak ada cara untuk mengonversi string ke Label
dalam konteks paket selain file darat atau file .bzl untuk memanggil. Oleh karena itu, makro luar harus selalu memilih untuk meneruskan objek Label ke makro dalam, bukan string label.)
Parameter
Parameter | Deskripsi |
---|---|
input
|
string; or Label ;
wajib diisiString label input atau objek Label. Jika objek Label diteruskan, objek tersebut akan ditampilkan apa adanya. |
nama_repositori
string repository_name()Nama repositori yang memanggil aturan atau ekstensi build. Misalnya, dalam paket yang dipanggil oleh stanza WORKSPACE
local_repository(name='local', path=...)
, paket tersebut akan ditetapkan ke @local
. Dalam paket di repositori utama, paket akan ditetapkan ke @
. Fungsi ini setara dengan variabel yang tidak digunakan lagi REPOSITORY_NAME
.
pilih
unknown select(x, no_match_error='')
select()
adalah fungsi bantuan yang membuat atribut aturan menjadi dapat dikonfigurasi. Lihat ensiklopedia build untuk mengetahui detailnya.
Parameter
Parameter | Deskripsi |
---|---|
x
|
wajib Dikte yang memetakan kondisi konfigurasi ke nilai. Setiap kunci adalah Label atau string label yang mengidentifikasi instance config_setting atau constraint_value. Lihat dokumentasi tentang makro untuk mengetahui kapan harus menggunakan Label, bukan string. |
no_match_error
|
default = '' Error kustom opsional untuk dilaporkan jika tidak ada kondisi yang cocok. |
sub-paket
sequence subpackages(include, exclude=[], allow_empty=False)Menampilkan daftar baru yang dapat berubah dari setiap subpaket langsung paket saat ini, terlepas dari kedalaman direktori sistem file. Daftar yang dikembalikan diurutkan dan berisi nama sub-paket yang relatif terhadap paket saat ini. Sebaiknya gunakan metode dalam modul bazel_skylib.subpackages, bukan memanggil fungsi ini secara langsung.
Parameter
Parameter | Deskripsi |
---|---|
include
|
sequence of strings ;
diperlukanDaftar pola glob yang akan disertakan dalam pemindaian subpaket. |
exclude
|
sequence of strings ;
default = []Daftar pola glob yang akan dikecualikan dari pemindaian sub-paket. |
allow_empty
|
default = False Apakah kita gagal jika panggilan menampilkan daftar kosong. Secara default, daftar kosong menunjukkan potensi error dalam file CREATE dan panggilan ke subpackages() sangat berlebihan. Menyetel ke true memungkinkan fungsi ini berhasil dalam kasus tersebut. |