BazelCon 2022 akan hadir pada 16-17 November ke New York dan online.
Daftar sekarang.

Global

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Objek, fungsi, dan modul yang terdaftar di lingkungan global.

Anggota

all

bool all(elements)

Menampilkan true jika semua elemen bernilai Benar atau koleksi kosong. Elemen dikonversi ke boolean menggunakan fungsi bool.
all(["hello", 3, True]) == True
all([-1, 0, 1]) == False

Parameter

Parameter Deskripsi
elements wajib
String atau kumpulan elemen.

analytics_test

None analysis_test(name, implementation, attrs=None, fragments=[], toolchains=[], attr_values={})

Eksperimental. API ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung pada hal itu. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan --+experimental_analysis_test_call
Membuat target pengujian analisis baru.

Jumlah dependensi transitif pengujian dibatasi. Batas dikontrol oleh flag --analysis_testing_deps_limit.

Parameter

Parameter Deskripsi
name wajib
Nama target. Harus berupa ID Starlark, pola yang cocok '[A-Za-z_][A-Za-z0-9_]*'.
implementation diperlukan
Fungsi Starlark yang menerapkan pengujian analisis ini. Parameter ini harus memiliki satu parameter: ctx. Fungsi ini dipanggil selama fase analisis. API ini dapat mengakses atribut yang dideklarasikan oleh attrs dan diisi melalui attr_values. Fungsi penerapan mungkin tidak mendaftarkan tindakan. Sebagai gantinya, aplikasi harus mendaftarkan hasil lulus/gagal dengan memberikan AnalysisTestResultInfo.
attrs dict; or None; default = Tidak ada
Kamus yang mendeklarasikan atribut. Lihat call.attribute atribut. diizinkan untuk menggunakan transisi konfigurasi yang ditentukan menggunakan analysis_test_transition.
fragments sequence of strings; default = []
Daftar fragmen konfigurasi yang tersedia untuk penerapan pengujian analisis.
toolchains sequence; default = []
Kumpulan toolchain yang diperlukan pengujian. Lihat panggilan aturan.
attr_values dict of strings; default = {}
Kamus nilai atribut yang akan diteruskan ke implementasi.

Analysis_test_transition

transition analysis_test_transition(settings)

Membuat transisi konfigurasi yang akan diterapkan pada dependensi aturan pengujian analisis. Transisi ini hanya dapat diterapkan untuk atribut aturan dengan analysis_test = True. Aturan tersebut memiliki batasan kemampuan (misalnya, ukuran hierarki dependensinya dibatasi), sehingga transisi yang dibuat menggunakan fungsi ini memiliki cakupan potensial yang terbatas jika dibandingkan dengan transisi yang dibuat menggunakan transisi.

Fungsi ini terutama dirancang untuk memfasilitasi library inti Framework Pengujian Analisis. Lihat dokumentasinya (atau penerapannya) untuk mengetahui praktik terbaik.

Parameter

Parameter Deskripsi
settings diperlukan
Kamus yang berisi informasi tentang setelan konfigurasi yang harus disetel oleh transisi konfigurasi ini. Kunci adalah label setelan build dan nilainya adalah nilai pasca-transisi yang baru. Semua setelan lainnya tidak berubah. Gunakan pernyataan ini untuk mendeklarasikan setelan konfigurasi tertentu yang harus ditetapkan pada pengujian analisis untuk lulus.

Sembarang

bool any(elements)

Menampilkan true jika setidaknya satu elemen bernilai Benar. Elemen dikonversi ke boolean menggunakan fungsi bool.
any([-1, 0, 1]) == True
any([False, 0, ""]) == False

Parameter

Parameter Deskripsi
elements wajib
String atau kumpulan elemen.

arsip_ganti

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_strip=0)

Menentukan bahwa dependensi ini harus berasal dari file arsip (zip, gzip, dll.) di lokasi tertentu, bukan dari registry. Perintah ini hanya dapat digunakan oleh modul root; dengan kata lain, jika modul menentukan penggantian apa pun, modul tersebut tidak dapat digunakan sebagai dependensi oleh pihak lain.

Parameter

Parameter Deskripsi
module_name wajib
Nama dependensi modul Bazel untuk menerapkan penggantian ini.
urls string; or Iterable of strings; diperlukan
URL arsip; dapat berupa URL http(s):// atau file://.
integrity default = ''
Checksum yang diharapkan dari file arsip, dalam format Integritas Subresource.
strip_prefix default = ''
Awalan direktori untuk menghapus file yang diekstrak.
patches Iterable of strings; default = []
Daftar label yang mengarah ke file patch untuk diterapkan pada modul ini. File patch harus ada di dalam hierarki sumber project level teratas. Aturan tersebut diterapkan dalam urutan daftar.
patch_strip default = 0
Sama dengan argumen --strip dari patch Unix.

aspek

Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)

Membuat aspek baru. Hasil dari fungsi ini harus disimpan dalam nilai global. Lihat pengantar Aspek untuk mengetahui detail selengkapnya.

Parameter

Parameter Deskripsi
implementation diperlukan
Fungsi Starlark yang menerapkan aspek ini, dengan tepat dua parameter: Target (target tempat aspek diterapkan) dan ctx (konteks aturan tempat target dibuat). Atribut target tersedia melalui kolom ctx.rule. Fungsi ini dievaluasi selama fase analisis untuk setiap penerapan aspek terhadap target.
attr_aspects sequence of strings; default = []
Daftar nama atribut. Aspek tersebut menyebarkan dependensi yang ditentukan dalam atribut target dengan nama ini. Nilai umum di sini meliputi deps dan exports. Daftar ini juga dapat berisi satu string "*" untuk diterapkan di seluruh dependensi target.
attrs dict; or None; default = Tidak ada
Kamus yang mendeklarasikan semua atribut aspek. Memetakan dari nama atribut ke objek atribut, seperti `attr.label` atau `attr.string` (lihat modul attr). Atribut aspek tersedia untuk fungsi penerapan sebagai kolom parameter ctx.

Atribut implisit yang dimulai dengan _ harus memiliki nilai default, dan memiliki jenis label atau label_list.

Atribut eksplisit harus memiliki jenis string, dan harus menggunakan batasan values. Atribut eksplisit membatasi aspek agar hanya digunakan dengan aturan yang memiliki atribut dengan nama, jenis, dan nilai yang valid sesuai dengan batasan.

required_providers default = []
Atribut ini memungkinkan aspek membatasi penyebarannya hanya ke target yang aturannya mengiklankan penyedia yang diperlukan. Nilai harus berupa daftar yang berisi masing-masing penyedia atau daftar penyedia, tetapi tidak keduanya. Misalnya, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] adalah nilai yang valid, sementara [FooInfo, BarInfo, [BazInfo, QuxInfo]] tidak valid.

Daftar penyedia yang tidak bertingkat akan otomatis dikonversi menjadi daftar yang berisi satu daftar penyedia. Artinya, [FooInfo, BarInfo] akan otomatis dikonversi menjadi [[FooInfo, BarInfo]].

Agar beberapa aturan (misalnya some_rule) dapat dilihat oleh suatu aspek, some_rule harus mengiklankan semua penyedia dari setidaknya salah satu daftar penyedia yang diperlukan. Misalnya, jika required_providers aspek [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] adalah, aspek ini hanya dapat melihat target some_rule jika dan hanya jika some_rule memberikan FooInfo *atau* BarInfo *atau* BazInfo *dan* QuxInfo.

required_aspect_providers default = []
Atribut ini memungkinkan aspek ini untuk memeriksa aspek lain. Nilai harus berupa daftar yang berisi masing-masing penyedia atau daftar penyedia, tetapi tidak keduanya. Misalnya, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] adalah nilai yang valid, sementara [FooInfo, BarInfo, [BazInfo, QuxInfo]] tidak valid.

Daftar penyedia yang tidak bertingkat akan otomatis dikonversi menjadi daftar yang berisi satu daftar penyedia. Artinya, [FooInfo, BarInfo] akan otomatis dikonversi menjadi [[FooInfo, BarInfo]].

Agar aspek lain (misalnya other_aspect) dapat dilihat oleh aspek ini, other_aspect harus menyediakan semua penyedia dari setidaknya satu daftar. Pada contoh [[FooInfo], [BarInfo], [BazInfo, QuxInfo]], aspek ini hanya dapat melihat other_aspect jika dan hanya jika other_aspect menyediakan FooInfo *atau* BarInfo *atau* BazInfo *dan* QuxInfo.

provides default = []
Daftar penyedia yang harus ditampilkan oleh fungsi implementasi.

Hal ini akan dianggap error jika fungsi implementasi menghilangkan jenis penyedia yang tercantum di sini dari nilai yang ditampilkan. Namun, fungsi implementasi dapat menampilkan penyedia tambahan yang tidak tercantum di sini.

Setiap elemen daftar adalah objek *Info yang ditampilkan oleh provider(), kecuali jika penyedia lama diwakili oleh nama stringnya.

requires sequence of Aspects; default = []
Daftar aspek yang diperlukan untuk disebarkan sebelum aspek ini.
fragments sequence of strings; default = []
Daftar nama fragmen konfigurasi yang diperlukan oleh aspek dalam konfigurasi target.
host_fragments sequence of strings; default = []
Daftar nama fragmen konfigurasi yang diperlukan aspek dalam konfigurasi host.
toolchains sequence; default = []
Jika ditetapkan, kumpulan toolchain yang diperlukan aturan ini. Daftar ini dapat berisi objek String, Label, atau Starlark toolchainTypeApi, dalam segala kombinasi. Toolchain akan ditemukan dengan memeriksa platform saat ini, dan diberikan untuk penerapan aturan melalui ctx.toolchain.
incompatible_use_toolchain_transition default = False
Tidak digunakan lagi. Penghentian ini tidak lagi digunakan dan harus dihapus.
doc default = ''
Deskripsi aspek yang dapat diekstrak oleh alat pembuat dokumentasi.
apply_to_generating_rules default = False
Jika benar, aspek akan, saat diterapkan pada file output, akan diterapkan pada aturan pembuatan file output.

Misalnya, aspek menyebar secara transitif melalui atribut `deps` dan diterapkan ke target `alpha`. Misalnya `alpha` memiliki `deps = [':beta_output']`, dengan `beta_output` adalah output yang dideklarasikan dari target `beta`. Misalnya `beta_to_generate` memiliki aspek target untuk salah satu `derajat, alfa, untuk

Salah secara default.

exec_compatible_with sequence of strings; default = []
Daftar batasan pada platform eksekusi yang berlaku untuk semua instance aspek ini.
exec_groups dict; or None; default = Tidak ada
Dikte nama grup eksekusi (string) ke exec_group. Jika ditetapkan, memungkinkan aspek untuk menjalankan tindakan pada beberapa platform eksekusi dalam satu instance. Lihat dokumentasi grup eksekusi untuk mengetahui info selengkapnya.

Bazel_dep

None bazel_dep(name, version='', repo_name='', dev_dependency=False)

Mendeklarasikan dependensi langsung pada modul Bazel lainnya.

Parameter

Parameter Deskripsi
name wajib
Nama modul yang akan ditambahkan sebagai dependensi langsung.
version default = ''
Versi modul yang akan ditambahkan sebagai dependensi langsung.
repo_name default = ''
Nama repo eksternal yang mewakili dependensi ini. Ini adalah nama modul secara default.
dev_dependency default = False
Jika benar, dependensi ini akan diabaikan jika modul saat ini bukan modul root atau `--ignore_dev_dependensi` diaktifkan.

mengikat

None bind(name, actual=None)

Peringatan: penggunaan bind() tidak direkomendasikan. Lihat Mempertimbangkan untuk menghapus binding guna mengetahui diskusi panjang tentang masalah dan alternatifnya.

Memberi alias target dalam paket //external.

Parameter

Parameter Deskripsi
name wajib
Label pada '//external' berfungsi sebagai nama alias
actual string; or None; default = Tidak ada
Label yang sebenarnya akan diberi alias

bool

bool bool(x=False)

Konstruktor untuk jenis bool. Metode ini akan menampilkan False jika objeknya adalah None, False, string kosong (""), angka 0, atau koleksi kosong (misalnya (), []). Jika tidak, objek akan menampilkan True.

Parameter

Parameter Deskripsi
x default = False
Variabel yang akan dikonversi.

kolom_konfigurasi

LateBoundDefault configuration_field(fragment, name)

Mereferensikan nilai default batas akhir untuk atribut dengan jenis label. Nilai adalah 'late-bound' jika konfigurasi harus dibuat sebelum menentukan nilainya. Atribut apa pun yang menggunakan ini sebagai nilai harus bersifat pribadi.

Contoh penggunaan:

Menentukan atribut aturan:

'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))

Mengakses di penerapan aturan:

  def _rule_impl(ctx):
    foo_info = ctx.attr._foo
    ...

Parameter

Parameter Deskripsi
fragment wajib
Nama fragmen konfigurasi yang berisi nilai batas akhir.
name wajib
Nama nilai yang akan diperoleh dari fragmen konfigurasi.

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 ditampilkannya elemen saat depset dikonversi ke daftar ditentukan oleh parameter order. Lihat ringkasan Depset untuk mengetahui informasi selengkapnya.

Semua elemen (langsung dan tidak langsung) dari depset harus memiliki jenis yang sama, seperti yang diperoleh oleh 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 saat ini, meskipun pembatasan ini akan dilonggarkan di masa mendatang.

Urutan depset yang dibuat harus kompatibel dengan urutan depset transitive-nya. Pesanan "default" kompatibel dengan pesanan lainnya, semua pesanan lainnya hanya kompatibel dengan pesanan itu sendiri.

Perhatikan kompatibilitas mundur/maju. Fungsi ini saat ini menerima parameter items posisi. API ini sudah tidak digunakan lagi dan akan dihapus di masa mendatang, dan direct akan dihapus sebagai parameter posisi tunggal dari fungsi depset. Dengan demikian, kedua panggilan berikut setara dan tidak akan berakhir lagi:

depset(['a', 'b'], transitive = [...])
depset(direct = ['a', 'b'], transitive = [...])

Parameter

Parameter Deskripsi
direct sequence; or None; default = Tidak ada
Daftar elemen langsung dari dependensi.
order default = "default"
Strategi traversal untuk depset baru. Lihat di sini untuk mengetahui kemungkinan nilai.
transitive sequence of depsets; or None; default = Tidak ada
Daftar depset yang elemennya akan menjadi elemen tidak langsung dari depset.

Dikte

dict dict(pairs=[], **kwargs)

Membuat kamus dari argumen posisi opsional dan rangkaian argumen kata kunci opsional. Jika kunci yang sama diberikan beberapa kali, nilai terakhir akan digunakan. Entri yang diberikan melalui argumen kata kunci dianggap muncul setelah entri yang diberikan melalui argumen posisi.

Parameter

Parameter Deskripsi
pairs default = []
Dikte, atau iterable yang elemennya masing-masing memiliki panjang 2 (kunci, nilai).
kwargs wajib
Kamus entri tambahan.

dir

list dir(x)

Menampilkan daftar string: nama atribut dan metode objek parameter.

Parameter

Parameter Deskripsi
x wajib
Objek yang akan diperiksa.

enumerasi

list enumerate(list, start=0)

Menampilkan daftar pasangan (tupel dua elemen), dengan indeks (int) dan item dari urutan input.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

Parameter

Parameter Deskripsi
list diperlukan
urutan input.
start default = 0
indeks awal.

grup_exec

exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)

Membuat grup eksekusi yang dapat digunakan untuk membuat tindakan untuk platform eksekusi tertentu selama penerapan aturan.

Parameter

Parameter Deskripsi
toolchains sequence; default = []
Kumpulan toolchain yang diperlukan grup eksekusi ini. Daftar ini dapat berisi objek String, Label, atau Starlark toolchainTypeApi, dalam segala kombinasi.
exec_compatible_with sequence of strings; default = []
Daftar batasan pada platform eksekusi.
copy_from_rule default = False
Jika disetel ke benar (true), grup eksekutif ini mewarisi toolchain dan batasan aturan yang mengaitkan grup ini. Jika ditetapkan ke string lain, error ini akan ditampilkan.

fail

None fail(msg=None, attr=None, *args)

Menyebabkan eksekusi gagal dengan error.

Parameter

Parameter Deskripsi
msg default = None
Tidak digunakan lagi: gunakan argumen posisi. Argumen ini bertindak seperti argumen posisi utama yang implisit.
attr string; or None; default = None
Tidak digunakan lagi. Menyebabkan awalan opsional yang berisi string ini untuk ditambahkan ke pesan error.
args wajib
Daftar nilai, yang diformat dengan str dan digabungkan dengan spasi, yang muncul dalam pesan error.

float

float float(x=unbound)

Menampilkan x sebagai nilai float.
  • Jika x sudah mengambang, float tidak akan menampilkan perubahan.
  • Jika x adalah bool, float akan menampilkan 1.0 untuk True dan 0.0 untuk False.
  • Jika x berupa int, float akan menampilkan nilai floating-point terbatas yang terdekat ke x, atau error jika magnitudonya terlalu besar.
  • Jika x adalah string, string tersebut harus berupa literal floating point yang valid, atau sama dengan (abaikan huruf besar/kecil) dengan NaN, Inf, atau Infinity, secara opsional diawali dengan tanda + atau -.
Nilai lainnya menyebabkan error. Tanpa argumen, float() akan menampilkan 0,0.

Parameter

Parameter Deskripsi
x default = unbound
Nilai yang akan dikonversi.

getattr

unknown getattr(x, name, default=unbound)

Menampilkan kolom struct dari nama yang diberikan jika ada. Jika tidak, metode ini akan menampilkan default (jika ditentukan) atau memunculkan error. getattr(x, "foobar") setara dengan x.foobar.
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

Parameter

Parameter Deskripsi
x wajib
Struktur yang atributnya diakses.
name wajib
Nama atribut struktur.
default default = unbound
Nilai default yang akan ditampilkan jika struct tidak memiliki atribut dari nama yang diberikan.

git_ganti

None git_override(module_name, remote, commit='', patches=[], patch_strip=0)

Menentukan bahwa dependensi harus berasal dari commit tertentu dari repositori Git. Perintah ini hanya dapat digunakan oleh modul root; dengan kata lain, jika modul menentukan penggantian apa pun, modul tersebut tidak dapat digunakan sebagai dependensi oleh pihak lain.

Parameter

Parameter Deskripsi
module_name wajib
Nama dependensi modul Bazel untuk menerapkan penggantian ini.
remote wajib
URL repositori Git jarak jauh.
commit default = ''
Commit yang harus diperiksa.
patches Iterable of strings; default = []
Daftar label yang mengarah ke file patch untuk diterapkan pada modul ini. File patch harus ada di dalam hierarki sumber project level teratas. Aturan tersebut diterapkan dalam urutan daftar.
patch_strip default = 0
Sama dengan argumen --strip dari patch Unix.

Hasattr

bool hasattr(x, name)

Menampilkan Benar jika objek x memiliki atribut atau metode dari name yang diberikan, jika tidak, False. Contoh:
hasattr(ctx.attr, "myattr")

Parameter

Parameter Deskripsi
x wajib
Objek yang akan diperiksa.
name wajib
Nama atribut.

hash

int hash(value)

Menampilkan nilai hash untuk string. Hal ini dihitung secara deterministik menggunakan algoritme yang sama seperti String.hashCode() Java, yaitu:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Hashing nilai selain string saat ini tidak didukung.

Parameter

Parameter Deskripsi
value wajib
Nilai string untuk hash.

int

int int(x, base=unbound)

Menampilkan x sebagai nilai int.
  • Jika x sudah int, int tidak akan menampilkan perubahan tersebut.
  • Jika x adalah bool, int akan menampilkan 1 untuk Benar dan 0 untuk Salah.
  • Jika x adalah string, format tersebut harus <sign><prefix><digits>. <sign> adalah "+", "-", atau kosong (diinterpretasikan sebagai positif). <digits> adalah urutan angka dari 0 hingga base - 1, dengan huruf a-z (atau yang setara, A-Z) digunakan sebagai angka untuk 10-35. Jika base adalah 2/8/16, <prefix> bersifat opsional dan mungkin masing-masing 0b/0o/0x (atau setara, 0B/0O/0X); jika base adalah nilai lain selain basis ini atau nilai khusus 0, awalan harus kosong. Dalam kasus di mana base adalah 0, string ditafsirkan sebagai literal bilangan bulat, dalam arti bahwa salah satu basis 2/8/10/16 dipilih bergantung pada awalan mana yang digunakan. Jika base adalah 0, tidak ada awalan yang digunakan, dan ada lebih dari satu digit, digit utama tidak boleh 0; ini untuk menghindari kebingungan antara oktal dan desimal. Besarnya angka yang diwakili oleh string harus berada dalam rentang yang diizinkan untuk jenis int.
  • Jika x adalah float, int akan menampilkan nilai bilangan bulat float, yang dibulatkan ke nol. Ini dianggap error jika x tidak terbatas (NaN atau tidak terbatas).
Fungsi ini akan gagal jika x adalah jenis yang lain, atau jika nilainya adalah string yang tidak memenuhi format di atas. Tidak seperti fungsi int Python, fungsi ini tidak mengizinkan argumen nol, dan tidak mengizinkan spasi kosong yang tidak relevan untuk argumen string.

Contoh:

int("123") == 123
int("-123") == -123
int("+123") == 123
int("FF", 16) == 255
int("0xFF", 16) == 255
int("10", 0) == 10
int("-0x10", 0) == -16
int("-0x10", 0) == -16
int("123.456") == 123

Parameter

Parameter Deskripsi
x wajib
String yang akan dikonversi.
base default = unbound
Basis yang digunakan untuk menafsirkan nilai string; ditetapkan secara default ke 10. Harus di antara 2 dan 36 (inklusif), atau 0 untuk mendeteksi basis seolah-olah x adalah literal bilangan bulat. Parameter ini tidak boleh diberikan jika nilai bukan berupa string.

Len

int len(x)

Menampilkan panjang string, urutan (seperti daftar atau tuple), dict, atau iterable lainnya.

Parameter

Parameter Deskripsi
x wajib
Nilai yang durasinya akan dilaporkan.

list

list list(x=[])

Menampilkan daftar baru dengan elemen yang sama dengan nilai iterable tertentu.
list([1, 2]) == [1, 2]
list((2, 3, 2)) == [2, 3, 2]
list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]

Parameter

Parameter Deskripsi
x default = []
Objek yang akan dikonversi.

local_path_Override

None local_path_override(module_name, path)

Menentukan bahwa dependensi harus berasal dari direktori tertentu pada disk lokal. Perintah ini hanya dapat digunakan oleh modul root; dengan kata lain, jika modul menentukan penggantian apa pun, modul tersebut tidak dapat digunakan sebagai dependensi oleh pihak lain.

Parameter

Parameter Deskripsi
module_name wajib
Nama dependensi modul Bazel untuk menerapkan penggantian ini.
path wajib
Jalur ke direktori tempat modul ini berada.

maks

unknown max(*args)

Menampilkan argumen terbesar dari semua argumen yang diberikan. Jika hanya satu argumen yang diberikan, maka argumen tersebut harus tidak iterable kosong.Ini adalah error jika elemen tidak sebanding (misalnya int dengan string), atau jika tidak ada argumen yang diberikan.
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

Parameter

Parameter Deskripsi
args wajib
Elemen yang akan diperiksa.

mnt

unknown min(*args)

Menampilkan argumen terkecil dari semua argumen yang diberikan. Jika hanya satu argumen yang disediakan, argumen tidak boleh kosong. Merupakan error jika elemen tidak dapat dibandingkan (misalnya int dengan string), atau jika tidak ada argumen yang diberikan.
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

Parameter

Parameter Deskripsi
args wajib
Elemen yang akan diperiksa.

modul

None module(name='', version='', compatibility_level=0, execution_platforms_to_register=[], toolchains_to_register=[])

Mendeklarasikan properti tertentu dari modul Bazel yang direpresentasikan oleh repo Bazel saat ini. Properti ini adalah metadata penting dari modul (seperti nama dan versi), atau memengaruhi perilaku modul saat ini dan dependensinya.

Seharusnya dipanggil paling banyak satu kali. Ini dapat dihilangkan hanya jika modul ini adalah modul root (seperti pada, jika tidak akan bergantung pada modul lain).

Parameter

Parameter Deskripsi
name default = ''
Nama modul. Hanya dapat dihilangkan jika modul ini adalah modul root (seperti pada modul, jika tidak akan bergantung oleh modul lain). Nama modul yang valid harus: 1) hanya berisi huruf kecil (a-z), angka (0-9), titik (.), tanda hubung (-), dan garis bawah (_); 2) diawali dengan huruf kecil; 3) diakhiri dengan huruf kecil atau angka.
version default = ''
Versi modul. Hanya dapat dihilangkan jika modul ini adalah modul root (seperti pada modul, jika tidak akan bergantung oleh modul lain).
compatibility_level default = 0
Tingkat kompatibilitas modul; ini harus diubah setiap kali perubahan besar yang tidak kompatibel diperkenalkan. Ini pada dasarnya adalah "versi utama" modul dalam hal SemVer, kecuali bahwa itu tidak disematkan dalam string versi itu sendiri, tetapi ada sebagai kolom terpisah. Modul dengan tingkat kompatibilitas yang berbeda berpartisipasi dalam resolusi versi seolah-olah merupakan modul dengan nama yang berbeda, tetapi grafik dependensi akhir tidak dapat berisi beberapa modul dengan nama yang sama tetapi tingkat kompatibilitas yang berbeda (kecuali jika multiple_version_override berlaku; lihat di sana untuk detail selengkapnya).
execution_platforms_to_register Iterable of strings; default = []
Daftar platform eksekusi yang telah ditentukan untuk didaftarkan saat modul ini dipilih. Harus berupa daftar pola target absolut (yaitu dimulai dengan @ atau //). Lihat resolusi toolchain untuk informasi selengkapnya.
toolchains_to_register Iterable of strings; default = []
Daftar toolchain yang telah ditentukan yang akan didaftarkan saat modul ini dipilih. Harus berupa daftar pola target absolut (yaitu dimulai dengan @ atau //). Lihat resolusi toolchain untuk informasi selengkapnya.

modul_ekstensi

unknown module_extension(implementation, *, tag_classes={}, doc='')

Membuat ekstensi modul baru. Simpan dalam nilai global, sehingga dapat diekspor dan digunakan dalam file MODULE.bazel.

Parameter

Parameter Deskripsi
implementation wajib
Fungsi yang menerapkan ekstensi modul ini. Harus mengambil satu parameter, module_ctx. Fungsi ini dipanggil satu kali di awal build untuk menentukan kumpulan repositori yang tersedia.
tag_classes default = {}
Kamus untuk mendeklarasikan semua class tag yang digunakan oleh ekstensi. Ini memetakan dari nama class tag ke objek tag_class.
doc default = ''
Deskripsi ekstensi modul yang dapat diekstrak oleh alat pembuat dokumentasi.

versi_penggantian beberapa

None multiple_version_override(module_name, versions, registry='')

Menentukan bahwa dependensi harus tetap berasal dari registry, tetapi beberapa versi dependensi harus diizinkan untuk digunakan bersama. Perintah ini hanya dapat digunakan oleh modul root; dengan kata lain, jika modul menentukan penggantian apa pun, modul tersebut tidak dapat digunakan sebagai dependensi oleh pihak lain.

Parameter

Parameter Deskripsi
module_name wajib
Nama dependensi modul Bazel untuk menerapkan penggantian ini.
versions Iterable of strings; diperlukan
Menentukan versi yang diizinkan untuk berdampingan secara eksplisit. Versi ini harus sudah ada dalam grafik dependensi pra-pemilihan. Dependensi pada modul ini akan "diupgrade" ke versi terdekat yang lebih tinggi yang diizinkan pada tingkat kompatibilitas yang sama, sedangkan dependensi yang memiliki versi lebih tinggi daripada versi yang diizinkan mana pun pada tingkat kompatibilitas yang sama akan menyebabkan error.
registry default = ''
Mengganti registry untuk modul ini; bukannya menemukan modul ini dari daftar registry default, registry yang ditentukan harus digunakan.

cetak

None print(sep=" ", *args)

Mencetak args sebagai output debug. Cuplikan akan diawali dengan string "DEBUG" dan lokasi (file dan nomor baris) panggilan ini. Cara persis argumen diubah menjadi string tidak ditentukan dan dapat berubah kapan saja. Khususnya, hal itu mungkin berbeda dari (dan lebih detail dari) pemformatan yang dilakukan oleh str() dan repr().

Menggunakan print dalam kode produksi tidak disarankan karena spam yang dibuat untuk pengguna. Untuk penghentian penggunaan, pilih error yang berat menggunakan fail() jika memungkinkan.

Parameter

Parameter Deskripsi
sep default = " "
String pemisah antara objek, default-nya adalah spasi (" ").
args wajib
Objek yang akan dicetak.

penyedia

unknown provider(doc='', *, fields=None, init=None)

Menentukan simbol penyedia. Penyedia dapat dibuat instance-nya dengan memanggilnya, atau digunakan langsung sebagai kunci untuk mengambil instance penyedia tersebut dari target. Contoh:
MyInfo = provider()
...
def _my_library_impl(ctx):
    ...
    my_info = MyInfo(x = 2, y = 3)
    # my_info.x == 2
    # my_info.y == 3
    ...

Lihat Aturan (Penyedia) untuk panduan komprehensif tentang cara menggunakan penyedia.

Menampilkan nilai callable Provider jika init tidak ditentukan.

Jika init ditentukan, akan menampilkan tuple 2 elemen: nilai callable Provider dan nilai callable konstruktor. Lihat Aturan (Inisialisasi kustom penyedia kustom) dan diskusi tentang parameter init di bawah untuk mengetahui detailnya.

Parameter

Parameter Deskripsi
doc default = ''
Deskripsi penyedia yang dapat diekstrak oleh alat pembuat dokumentasi.
fields sequence of strings; or dict; or None; default = Tidak ada
Jika ditentukan, akan membatasi kumpulan kolom yang diizinkan.
Nilainya dapat berupa:
  • daftar kolom:
    provider(fields = ['a', 'b'])

  • nama kolom kamus -> dokumentasi:
    provider(
           fields = { 'a' : 'Documentation for a', 'b' : 'Documentation for b' })
Semua kolom bersifat opsional.
init callable; or None; default = None
Callback opsional untuk pra-pemrosesan dan validasi nilai kolom penyedia selama pembuatan instance. Jika init ditentukan, provider() akan menampilkan tuple 2 elemen: simbol penyedia normal dan konstruktor mentah.

Deskripsi yang tepat mengikuti; lihat Aturan (Inisialisasi kustom penyedia) untuk diskusi dan kasus penggunaan yang intuitif.

Biarkan P menjadi simbol penyedia yang dibuat dengan memanggil provider(). Secara konseptual, instance P dihasilkan dengan memanggil fungsi konstruktor default c(*args, **kwargs), yang melakukan hal berikut:

  • Jika args tidak kosong, akan terjadi error.
  • Jika parameter fields ditentukan saat provider() dipanggil, dan jika kwargs berisi kunci yang tidak tercantum di fields, error akan terjadi.
  • Jika tidak, c akan menampilkan instance baru yang memiliki, untuk setiap entri k: v di kwargs, kolom bernama k dengan nilai v.
Jika callback init tidak diberikan, panggilan ke simbol P itu sendiri bertindak sebagai panggilan ke fungsi konstruktor default c; dengan kata lain, P(*args, **kwargs) menampilkan c(*args, **kwargs). Misalnya,
MyInfo = provider()
m = MyInfo(foo = 1)
akan langsung membuatnya sehingga m adalah instance MyInfo dengan m.foo == 1.

Namun, jika init ditentukan, panggilan P(*args, **kwargs) akan melakukan langkah-langkah berikut:

  1. Callback dipanggil sebagai init(*args, **kwargs), yaitu, dengan argumen posisi dan kata kunci yang sama persis seperti yang diteruskan ke P.
  2. Nilai yang ditampilkan init diharapkan berupa kamus, d, yang kuncinya adalah string nama kolom. Jika tidak, berarti terjadi error.
  3. Instance baru P dihasilkan seolah-olah dengan memanggil konstruktor default dengan entri d's sebagai argumen kata kunci, seperti dalam c(**d).

Catatan: langkah di atas menyiratkan bahwa error akan terjadi jika *args atau **kwargs tidak cocok dengan tanda tangan init, atau evaluasi isi init gagal (mungkin sengaja melalui panggilan ke fail()), atau jika nilai yang ditampilkan init bukan kamus dengan skema yang diharapkan.

Dengan cara ini, callback init menggeneralisasi konstruksi penyedia normal dengan mengizinkan argumen posisi dan logika arbitrer untuk pra-pemrosesan dan validasi. Ini tidak memungkinkan pengelakan daftar fields yang diizinkan.

Jika init ditentukan, nilai yang ditampilkan provider() akan menjadi tuple (P, r), dengan r sebagai konstruktor mentah. Bahkan, perilaku r persis seperti fungsi konstruktor default c yang dibahas di atas. Biasanya, r terikat dengan variabel yang namanya diawali dengan garis bawah, sehingga hanya file .bzl saat ini yang memiliki akses langsung ke variabel tersebut:

MyInfo, _new_myinfo = provider(init = ...)

rentang

sequence range(start_or_stop, stop_or_none=None, step=1)

Membuat daftar untuk item yang beralih dari start ke stop, menggunakan penambahan step. Jika argumen tunggal diberikan, item akan berkisar dari 0 hingga elemen tersebut.
range(4) == [0, 1, 2, 3]
range(3, 9, 2) == [3, 5, 7]
range(3, 0, -1) == [3, 2, 1]

Parameter

Parameter Deskripsi
start_or_stop wajib
Nilai elemen awal jika perhentian diberikan, jika tidak, nilai halte dan awal sebenarnya adalah 0
stop_or_none int; or None; default = Tidak ada
indeks opsional item pertama tidak yang akan disertakan dalam daftar yang dihasilkan; pembuatan daftar berhenti sebelum stop tercapai.
step default = 1
Kenaikan (defaultnya adalah 1). Nilainya mungkin negatif.

register_eksekusi_platforms()

None register_execution_platforms(*platform_labels)

Daftarkan platform yang sudah ditentukan sehingga Bazel dapat menggunakannya sebagai platform eksekusi selama resolusi toolchain.

Parameter

Parameter Deskripsi
platform_labels sequence of strings; wajib ada
Label platform yang akan didaftarkan.

register_eksekusi_platforms()

None register_execution_platforms(*platform_labels)

Menentukan platform eksekusi yang telah ditentukan untuk didaftarkan saat modul ini dipilih. Harus berupa pola target absolut (yaitu dimulai dengan @ atau //). Lihat resolusi toolchain untuk informasi selengkapnya.

Parameter

Parameter Deskripsi
platform_labels sequence of strings; wajib ada
Label platform yang akan didaftarkan.

register_toolchains()

None register_toolchains(*toolchain_labels)

Mendaftarkan toolchain yang sudah ditentukan sehingga Bazel dapat menggunakannya selama resolusi toolchain. Lihat contoh menentukan dan mendaftarkan toolchain.

Parameter

Parameter Deskripsi
toolchain_labels sequence of strings; wajib ada
Label toolchain yang harus didaftarkan.

register_toolchains()

None register_toolchains(*toolchain_labels)

Menentukan toolchain yang telah ditentukan untuk didaftarkan saat modul ini dipilih. Harus berupa pola target absolut (yaitu dimulai dengan @ atau //). Lihat resolusi toolchain untuk informasi selengkapnya.

Parameter

Parameter Deskripsi
toolchain_labels sequence of strings; wajib ada
Label toolchain yang harus didaftarkan.

repositori_rule(implementation, attrs, lokal, environ, konfigurasikan, remotable, doc)

callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')

Membuat aturan repositori baru. Simpan dalam nilai global, sehingga dapat dimuat dan dipanggil dari file WORKSPACE.

Parameter

Parameter Deskripsi
implementation memerlukan
fungsi yang menerapkan aturan ini. Harus memiliki satu parameter, repository_ctx. Fungsi ini dipanggil selama fase pemuatan untuk setiap instance aturan.
attrs dict; or None; default = None
kamus untuk mendeklarasikan semua atribut aturan. Memetakan dari nama atribut ke objek atribut (lihat modul attr). Atribut yang dimulai dengan _ bersifat pribadi, dan dapat digunakan untuk menambahkan dependensi implisit pada label ke file (aturan repositori tidak dapat bergantung pada artefak yang dihasilkan). Atribut name ditambahkan secara implisit dan tidak boleh ditentukan.
local default = False
Menunjukkan bahwa aturan ini mengambil semuanya dari sistem lokal dan harus dievaluasi ulang pada setiap pengambilan.
environ sequence of strings; default = []
Memberikan daftar variabel lingkungan yang digunakan oleh aturan repositori ini. Jika variabel lingkungan dalam daftar tersebut berubah, repositori akan diambil ulang.
configure default = False
Menunjukkan bahwa repositori memeriksa sistem untuk tujuan konfigurasi
remotable default = False
Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung pada hal itu. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan ---experimental_repo_remote_exec
Kompatibel dengan eksekusi jarak jauh
doc default = ''
Deskripsi aturan repositori yang dapat diekstrak dengan alat pembuat dokumentasi.

repositori_rule(implementation, attrs, lokal, environ, konfigurasikan, remotable, doc)

callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')

Membuat aturan repositori baru. Simpan dalam nilai global, sehingga dapat dimuat dan dipanggil dari file WORKSPACE.

Parameter

Parameter Deskripsi
implementation memerlukan
fungsi yang menerapkan aturan ini. Harus memiliki satu parameter, repository_ctx. Fungsi ini dipanggil selama fase pemuatan untuk setiap instance aturan.
attrs dict; or None; default = None
kamus untuk mendeklarasikan semua atribut aturan. Memetakan dari nama atribut ke objek atribut (lihat modul attr). Atribut yang dimulai dengan _ bersifat pribadi, dan dapat digunakan untuk menambahkan dependensi implisit pada label ke file (aturan repositori tidak dapat bergantung pada artefak yang dihasilkan). Atribut name ditambahkan secara implisit dan tidak boleh ditentukan.
local default = False
Menunjukkan bahwa aturan ini mengambil semuanya dari sistem lokal dan harus dievaluasi ulang pada setiap pengambilan.
environ sequence of strings; default = []
Memberikan daftar variabel lingkungan yang digunakan oleh aturan repositori ini. Jika variabel lingkungan dalam daftar tersebut berubah, repositori akan diambil ulang.
configure default = False
Menunjukkan bahwa repositori memeriksa sistem untuk tujuan konfigurasi
remotable default = False
Eksperimental. Parameter ini bersifat eksperimental dan dapat berubah kapan saja. Jangan bergantung pada hal itu. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan ---experimental_repo_remote_exec
Kompatibel dengan eksekusi jarak jauh
doc default = ''
Deskripsi aturan repositori yang dapat diekstrak dengan alat pembuat dokumentasi.

repr

string repr(x)

Mengonversi objek apa pun menjadi representasi string. Ini berguna untuk proses debug.
repr("ab") == '"ab"'

Parameter

Parameter Deskripsi
x wajib
Objek yang akan dikonversi.

dibalik

list reversed(sequence)

Menampilkan daftar baru yang tidak beku yang berisi elemen urutan iterable asli dalam urutan terbalik.
reversed([3, 5, 4]) == [4, 5, 3]

Parameter

Parameter Deskripsi
sequence diperlukan
Urutan yang dapat diulang (misalnya daftar) akan dibalik.

aturan

callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)

Membuat aturan baru, yang dapat dipanggil dari file BUILD atau makro untuk membuat target.

Aturan harus ditetapkan ke variabel global dalam file .bzl; nama variabel global adalah nama aturan.

Aturan pengujian harus memiliki nama yang diakhiri dengan _test, sementara semua aturan lainnya tidak boleh memiliki akhiran ini. (Pembatasan ini hanya berlaku pada aturan, bukan targetnya.)

Parameter

Parameter Deskripsi
implementation diperlukan
fungsi Starlark yang menerapkan aturan ini, harus memiliki satu parameter: ctx. Fungsi ini dipanggil selama fase analisis untuk setiap instance aturan. Aplikasi dapat mengakses atribut yang diberikan oleh pengguna. Class ini harus membuat tindakan untuk menghasilkan semua output yang dideklarasikan.
test default = False
Baik aturan ini merupakan aturan pengujian, yaitu apakah aturan tersebut dapat menjadi subjek perintah blaze test. Semua aturan pengujian secara otomatis dianggap dapat dijalankan; tidak perlu (dan tidak disarankan) menetapkan executable = True secara eksplisit untuk aturan pengujian. Lihat halaman Aturan untuk informasi selengkapnya.
attrs dict; or None; default = None
kamus untuk mendeklarasikan semua atribut aturan. Memetakan dari nama atribut ke objek atribut (lihat modul attr). Atribut yang dimulai dengan _ bersifat pribadi, dan dapat digunakan untuk menambahkan dependensi implisit pada label. Atribut name ditambahkan secara implisit dan tidak boleh ditentukan. Atribut visibility, deprecation, tags, testonly, dan features ditambahkan secara implisit dan tidak dapat diganti. Sebagian besar aturan hanya membutuhkan beberapa atribut. Untuk membatasi penggunaan memori, fungsi aturan menetapkan batas ukuran atribut.
outputs dict; or None; or function; default = Tidak ada
Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan bergantung pada hal itu. Fitur ini dinonaktifkan dengan ---incompatible_no_rule_outputs_param. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi.
Parameter ini tidak digunakan lagi. Migrasikan aturan untuk menggunakan OutputGroupInfo atau attr.output.

Skema untuk menentukan output yang dideklarasikan sebelumnya. Tidak seperti atribut output dan output_list, pengguna tidak menentukan label untuk file ini. Lihat halaman Aturan untuk informasi selengkapnya tentang output yang telah dideklarasikan sebelumnya.

Nilai argumen ini adalah kamus atau fungsi callback yang menghasilkan kamus. Callback berfungsi mirip dengan atribut dependensi yang dihitung: Nama parameter fungsi dicocokkan dengan atribut aturan, misalnya jika Anda meneruskan outputs = _my_func dengan definisi def _my_func(srcs, deps): ..., fungsi tersebut akan memiliki akses ke atribut srcs dan deps. Jika kamus ditentukan langsung atau melalui fungsi, kamus akan ditafsirkan sebagai berikut.

Setiap entri dalam kamus membuat output yang telah dideklarasikan sebelumnya dengan kuncinya adalah ID dan nilainya adalah template string yang menentukan label output. Pada fungsi penerapan aturan, ID akan menjadi nama kolom yang digunakan untuk mengakses File output di ctx.outputs. Label output memiliki paket yang sama dengan aturan, dan bagian setelah paket dibuat dengan mengganti setiap placeholder dengan format "%{ATTR}" dengan string yang dibentuk dari nilai atribut ATTR:

  • Atribut yang diketikkan string diganti kata demi kata.
  • Atribut yang diketikkan label menjadi bagian dari label setelah paket, dikurangi ekstensi file. Misalnya, label "//pkg:a/b.c" menjadi "a/b".
  • Atribut yang diketik pada output menjadi bagian dari label setelah paket, termasuk ekstensi file (untuk contoh di atas, "a/b.c").
  • Semua atribut yang diketik dalam daftar (misalnya, attr.label_list) yang digunakan dalam placeholder harus memiliki hanya satu elemen. Konversi mereka sama dengan versi non-daftarnya (attr.label).
  • Jenis atribut lain mungkin tidak muncul di placeholder.
  • Placeholder non-atribut khusus %{dirname} dan %{basename} diperluas ke bagian label aturan tersebut, tidak termasuk paketnya. Misalnya, dalam "//pkg:a/b.c", dirname adalah a dan basename adalah b.c.

Dalam praktiknya, placeholder pengganti yang paling umum adalah "%{name}". Misalnya, untuk target bernama "foo", output dict {"bin": "%{name}.exe"} menyatakan di awal output bernama foo.exe yang dapat diakses dalam fungsi implementasi sebagai ctx.outputs.bin.

executable default = False
Apakah aturan ini dianggap dapat dijalankan atau tidak, yaitu apakah aturan tersebut dapat menjadi subjek perintah blaze run. Lihat halaman Aturan untuk informasi selengkapnya.
output_to_genfiles default = False
Jika benar, file akan dibuat dalam direktori genfiles, bukan di direktori bin. Kecuali Anda memerlukannya untuk kompatibilitas dengan aturan yang ada (mis., saat membuat file header untuk C++), jangan setel tanda ini.
fragments sequence of strings; default = []
Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi target.
host_fragments sequence of strings; default = []
Daftar nama fragmen konfigurasi yang diperlukan aturan dalam konfigurasi host.
_skylark_testable default = False
(Eksperimental)

Jika benar, aturan ini akan mengekspos tindakannya untuk melakukan pemeriksaan oleh aturan yang bergantung pada aturan tersebut melalui penyedia Tindakan. Penyedia tersebut juga tersedia untuk aturan itu sendiri dengan memanggil ctx.created_actions().

Ini hanya boleh digunakan untuk menguji perilaku waktu analisis aturan Starlark. Tanda ini dapat dihapus di masa mendatang.
toolchains sequence; default = []
Jika ditetapkan, kumpulan toolchain yang diperlukan aturan ini. Daftar ini dapat berisi objek String, Label, atau Starlark toolchainTypeApi, dalam segala kombinasi. Toolchain akan ditemukan dengan memeriksa platform saat ini, dan diberikan untuk penerapan aturan melalui ctx.toolchain.
incompatible_use_toolchain_transition default = False
Tidak digunakan lagi. Penghentian ini tidak lagi digunakan dan harus dihapus.
doc default = ''
Deskripsi aturan yang dapat diekstrak oleh alat pembuat dokumentasi.
provides default = []
Daftar penyedia yang harus ditampilkan oleh fungsi implementasi.

Hal ini akan dianggap error jika fungsi implementasi menghilangkan jenis penyedia yang tercantum di sini dari nilai yang ditampilkan. Namun, fungsi implementasi dapat menampilkan penyedia tambahan yang tidak tercantum di sini.

Setiap elemen daftar adalah objek *Info yang ditampilkan oleh provider(), kecuali jika penyedia lama diwakili oleh nama stringnya.

exec_compatible_with sequence of strings; default = []
Daftar batasan pada platform eksekusi yang berlaku untuk semua target jenis aturan ini.
analysis_test default = False
Jika benar, aturan ini diperlakukan sebagai pengujian analisis.

Catatan: Aturan pengujian analisis umumnya ditentukan menggunakan infrastruktur yang disediakan di library Starlark inti. Lihat Pengujian untuk mendapatkan panduan.

Jika ditetapkan sebagai aturan pengujian analisis, aturan akan diizinkan untuk menggunakan transisi konfigurasi yang ditentukan menggunakan analysis_test_transition pada atributnya, tetapi mengikuti beberapa batasan:

  • Target aturan ini dibatasi dalam jumlah dependensi transitif yang mungkin dimilikinya.
  • Aturan ini dianggap sebagai aturan pengujian (seolah-olah test=True telah ditetapkan). Ini menggantikan nilai test
  • Fungsi penerapan aturan mungkin tidak mendaftarkan tindakan. Sebagai gantinya, aplikasi harus mendaftarkan hasil lulus/gagal dengan memberikan AnalysisTestResultInfo.
build_setting BuildSetting; or None; default = None
Jika ditetapkan, mendeskripsikan jenis build setting aturan ini. Lihat modul config. Jika hal ini ditetapkan, atribut wajib bernama "build_setting_default" secara otomatis ditambahkan ke aturan ini, dengan jenis yang sesuai dengan nilai yang diteruskan di sini.
cfg default = None
Jika ditetapkan, mengarah ke transisi konfigurasi aturan akan diterapkan ke konfigurasinya sendiri sebelum analisis.
exec_groups dict; or None; default = Tidak ada
Dikte nama grup eksekusi (string) ke exec_group. Jika ditetapkan, memungkinkan aturan menjalankan tindakan pada beberapa platform eksekusi dalam satu target. Lihat dokumentasi grup eksekusi untuk mengetahui info selengkapnya.
compile_one_filetype sequence of strings; or None; default = None
Digunakan oleh --compile_one_dependency: jika beberapa aturan menggunakan file yang ditentukan, apakah kami harus memilih aturan ini daripada aturan lainnya.
name string; or None; default = None
Tidak digunakan lagi: jangan gunakan.

Nama aturan ini, seperti yang dipahami oleh Bazel dan dilaporkan dalam konteks seperti logging, native.existing_rule(...)[kind], dan bazel query. Biasanya ini sama dengan ID Starlark yang terikat ke aturan ini; misalnya aturan yang disebut foo_library biasanya akan dideklarasikan sebagai foo_library = rule(...) dan dibuat instance-nya dalam file BUILD sebagai foo_library(...).

Jika parameter ini dihilangkan, nama aturan ditetapkan ke nama variabel global Starlark pertama yang akan dikaitkan ke aturan ini dalam modul .bzl yang dideklarasikan. Dengan demikian, foo_library = rule(...) tidak perlu menentukan parameter ini jika namanya adalah foo_library.

Menentukan nama eksplisit untuk aturan tidak akan mengubah tempat Anda diizinkan untuk membuat instance aturan.

pilih

unknown select(x, no_match_error='')

select() adalah fungsi bantuan yang membuat atribut aturan dapat dikonfigurasi. Lihat ensiklopedia build untuk mengetahui detailnya.

Parameter

Parameter Deskripsi
x wajib
Dikte yang memetakan kondisi konfigurasi ke nilai. Setiap kunci merupakan 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.

versi_penggantian tunggal

None single_version_override(module_name, version='', registry='', patches=[], patch_strip=0)

Menentukan bahwa dependensi harus tetap berasal dari registry, tetapi versinya harus disematkan, atau registry-nya diganti, atau daftar patch yang diterapkan. Perintah ini hanya dapat digunakan oleh modul root; dengan kata lain, jika modul menentukan penggantian apa pun, modul tersebut tidak dapat digunakan sebagai dependensi oleh pihak lain.

Parameter

Parameter Deskripsi
module_name wajib
Nama dependensi modul Bazel untuk menerapkan penggantian ini.
version default = ''
Mengganti versi modul yang dideklarasikan dalam grafik dependensi. Dengan kata lain, modul ini akan "disematkan" ke versi penggantian ini. Atribut ini dapat dihilangkan jika semua yang ingin diganti adalah registry atau patch.
registry default = ''
Mengganti registry untuk modul ini; bukannya menemukan modul ini dari daftar registry default, registry yang ditentukan harus digunakan.
patches Iterable of strings; default = []
Daftar label yang mengarah ke file patch untuk diterapkan pada modul ini. File patch harus ada di dalam hierarki sumber project level teratas. Aturan tersebut diterapkan dalam urutan daftar.
patch_strip default = 0
Sama dengan argumen --strip dari patch Unix.

diurutkan

list sorted(iterable, *, key=None, reverse=False)

Menampilkan daftar baru yang diurutkan yang berisi semua elemen urutan iterable yang diberikan. Error dapat terjadi jika pasangan elemen x, y tidak dapat dibandingkan menggunakan x < y. Elemen diurutkan ke dalam urutan menaik, kecuali argumen terbaliknya adalah Benar, dalam hal ini, urutan menurun. Pengurutan bersifat stabil: elemen yang membandingkan elemen yang sama akan mempertahankan urutan relatif aslinya.
sorted([3, 5, 4]) == [3, 4, 5]

Parameter

Parameter Deskripsi
iterable wajib
Urutan dapat diurutkan untuk diurutkan.
key default = None
Fungsi opsional yang diterapkan pada setiap elemen sebelum perbandingan.
reverse default = False
Menampilkan hasil dalam urutan menurun.

Str

string str(x)

Mengonversi objek apa pun menjadi string. Ini berguna untuk proses debug.
str("ab") == "ab"
str(8) == "8"

Parameter

Parameter Deskripsi
x wajib
Objek yang akan dikonversi.

tag_class

tag_class tag_class(attrs={}, *, doc='')

Membuat objek tag_class baru, yang menentukan skema atribut untuk class tag, yang merupakan objek data yang dapat digunakan oleh ekstensi modul.

Parameter

Parameter Deskripsi
attrs default = {}
Kamus untuk mendeklarasikan semua atribut kelas tag ini. Memetakan dari nama atribut ke objek atribut (lihat modul attr).
doc default = ''
Deskripsi class tag yang dapat diekstrak oleh alat pembuat dokumentasi.

tuple

tuple tuple(x=())

Menampilkan tuple dengan elemen yang sama dengan nilai iterable yang diberikan.
tuple([1, 2]) == (1, 2)
tuple((2, 3, 2)) == (2, 3, 2)
tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)

Parameter

Parameter Deskripsi
x default = ()
Objek yang akan dikonversi.

jenis

string type(x)

Menampilkan nama jenis argumennya. Ini berguna untuk proses debug dan pemeriksaan jenis. Contoh:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
Fungsi ini mungkin berubah di masa mendatang. Untuk menulis kode yang kompatibel dengan Python dan siap menghadapi masa depan, gunakan kode ini hanya untuk membandingkan nilai yang ditampilkan:
if type(x) == type([]):  # if x is a list

Parameter

Parameter Deskripsi
x wajib
Objek yang akan diperiksa jenisnya.

use_extension [ekstensi_penggunaan]

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False)

Menampilkan objek proxy yang mewakili ekstensi modul; metodenya dapat dipanggil untuk membuat tag ekstensi modul.

Parameter

Parameter Deskripsi
extension_bzl_file wajib
Label ke file Starlark yang menentukan ekstensi modul.
extension_name wajib
Nama ekstensi modul yang akan digunakan. Simbol dengan nama ini harus diekspor oleh file Starlark.
dev_dependency default = False
Jika benar, penggunaan ekstensi modul ini akan diabaikan jika modul saat ini bukan modul root atau `--ignore_dev_dependensi` diaktifkan.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

Mengimpor satu atau beberapa repositori yang dihasilkan oleh ekstensi modul yang diberikan ke dalam cakupan modul saat ini.

Parameter

Parameter Deskripsi
extension_proxy wajib
Objek proxy ekstensi modul yang ditampilkan oleh panggilan use_extension.
args wajib
Nama repo yang akan diimpor.
kwargs wajib
Menentukan repo tertentu yang akan diimpor ke dalam cakupan modul saat ini dengan nama yang berbeda. Kunci harus berupa nama yang akan digunakan dalam cakupan saat ini, sedangkan nilainya harus berupa nama asli yang diekspor oleh ekstensi modul.

visibilitas

None visibility(value)

(Eksperimental; diaktifkan oleh --experimental_bzl_visibility. API fitur ini dapat berubah. Hanya paket yang muncul di --experimental_bzl_visibility_allowlist yang diizinkan untuk memanggil fungsi ini. Masalah umum: Fitur ini mungkin tidak berfungsi di bagian bzlmod.)

Menetapkan visibilitas bzl untuk modul .bzl yang saat ini diinisialisasi.

Visibilitas bzl modul .bzl (jangan samakan dengan visibilitas target) mengatur apakah load() dari .bzl tersebut diizinkan dari dalam file BUILD dan .bzl paket tertentu. Nilai yang diizinkan mencakup:

  • "public" (default): .bzl dapat dimuat di mana saja.
  • "private": .bzl hanya dapat dimuat oleh file dalam paket yang sama (sub-paket dikecualikan).
  • daftar spesifikasi paket (misalnya ["//pkg1","//pkg2/subpkg/..."]): .bzl dapat dimuat oleh file dalam paket apa pun yang cocok dengan salah satu spesifikasi yang tercantum. Spesifikasi paket dapat berupa jalur paket, atau jalur paket dengan "/..." di akhir untuk menyertakan semua sub-paket; pola yang diabaikan saat ini tidak didukung. Semua spesifikasi paket berada dalam repositori saat ini; sintaksis "@" tidak diizinkan.

Biasanya, visibility() dipanggil di bagian atas file .bzl, tepat setelah pernyataan load(). (Menerapkan gaya deklarasi ini nanti dalam file atau dalam metode helper adalah hal yang buruk.) Ini tidak boleh dipanggil lebih dari sekali per .bzl, atau setelah kode level teratas .bzl' selesai dijalankan.

Perhatikan bahwa modul .bzl yang memiliki visibilitas bzl publik tidak selalu berarti bahwa target file yang sesuai memiliki visibilitas publik. Artinya, Anda dapat load() file .bzl tanpa dapat bergantung padanya di filegroup atau target lainnya.

Parameter

Parameter Deskripsi
value wajib
Tingkat visibilitas bzl yang akan ditetapkan. Mungkin berupa "public", "private", atau daftar paket.

ruang kerja

None workspace(name)

Fungsi ini hanya dapat digunakan dalam file WORKSPACE dan harus dideklarasikan sebelum semua fungsi lain dalam file WORKSPACE. Setiap file WORKSPACE harus memiliki fungsi workspace.

Menetapkan nama untuk ruang kerja ini. Nama Workspace harus berupa deskripsi project bergaya paket Java, yang menggunakan garis bawah sebagai pemisah, misalnya, github.com/bazelbuild/bazel harus menggunakan com_github_bazelbuild_bazel.

Nama ini digunakan untuk direktori tempat file runtime repositori disimpan. Misalnya, jika ada runfile foo/bar di repositori lokal dan file WORKSPACE berisi workspace(name = 'baz'), maka file run akan tersedia di bagian mytarget.runfiles/baz/foo/bar. Jika tidak ada nama ruang kerja yang ditentukan, runfile akan ditautkan ke bar.runfiles/foo/bar.

Nama aturan repositori jarak jauh harus berupa nama ruang kerja yang valid. Misalnya, Anda dapat memiliki maven_jar(name = 'foo'), tetapi bukan maven_jar(name = 'foo%bar'), karena Bazel akan mencoba menulis file WORKSPACE untuk maven_jar yang berisi workspace(name = 'foo%bar').

Parameter

Parameter Deskripsi
name wajib
nama ruang kerja. Nama harus diawali dengan huruf dan hanya boleh berisi huruf, angka, garis bawah, tanda pisah, dan titik.

zip

list zip(*args)

Menampilkan list dari tuple, dengan tuple i-th berisi elemen i-th dari setiap urutan argumen atau iterable. Daftar ini memiliki ukuran input terpendek. Dengan satu argumen yang berulang, metode ini menampilkan daftar 1 tupel. Tanpa argumen, parameter akan menampilkan daftar kosong. Contoh:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

Parameter

Parameter Deskripsi
args daftar
yang diperlukan untuk zip.