modul_ctx

Laporkan masalah Lihat sumber Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Konteks ekstensi modul yang berisi fungsi bantuan dan informasi tentang tag yang relevan di seluruh grafik dependensi. Anda mendapatkan objek module_ctx sebagai argumen ke fungsi implementation saat membuat ekstensi modul.

Anggota

download

struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

Mendownload file ke jalur output untuk URL yang diberikan dan menampilkan struct yang berisi success, flag yang merupakan true jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256 dan integrity.

Parameter

Parameter Deskripsi
url string; atau Iterable dari string; wajib
Daftar URL mirror yang mereferensikan file yang sama.
output string; atau Label; atau path; default adalah ''
jalur ke file output, relatif terhadap direktori repositori.
sha256 defaultnya adalah ''
hash SHA-256 yang diharapkan dari file yang didownload. Hash ini harus cocok dengan hash SHA-256 file yang didownload. Menghilangkan SHA-256 karena file jarak jauh dapat berubah merupakan risiko keamanan. Paling tidak, menghapus kolom ini akan membuat build Anda tidak hermetis. Ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman.
executable defaultnya adalah False
menetapkan flag yang dapat dieksekusi pada file yang dibuat, salah secara default.
allow_fail default-nya adalah False
Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal
canonical_id default adalah ''
Jika ditetapkan, batasi hit cache ke kasus saat file ditambahkan ke cache dengan ID kanonis yang sama
auth default adalah {}
Dict opsional yang menentukan informasi autentikasi untuk beberapa URL.
integrity defaultnya adalah ''
Perkiraan checksum file yang didownload, dalam format Subresource Integrity. Ini harus cocok dengan checksum file yang didownload. Menghapus checksum merupakan risiko keamanan karena file jarak jauh dapat berubah. Paling tidak, menghapus kolom ini akan membuat build Anda tidak hermetis. Ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman.

download_and_extract

struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})

Mendownload file ke jalur output untuk URL yang diberikan, mengekstraknya, dan menampilkan struct yang berisi success, flag yang merupakan true jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256 dan integrity.

Parameter

Parameter Deskripsi
url string; atau Iterable dari string; wajib
Daftar URL mirror yang mereferensikan file yang sama.
output string; atau Label; atau path; default adalah ''
jalur ke direktori tempat arsip akan diekstrak, relatif terhadap direktori repositori.
sha256 defaultnya adalah ''
hash SHA-256 yang diharapkan dari file yang didownload. Ini harus cocok dengan hash SHA-256 file yang didownload. Menghapus SHA-256 merupakan risiko keamanan karena file jarak jauh dapat berubah. Paling tidak, menghapus kolom ini akan membuat build Anda tidak hermetis. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan terlebih dahulu diperiksa untuk file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan di cache. Setelah berhasil didownload, file akan ditambahkan ke cache.
type defaultnya adalah ''
jenis arsip file yang didownload. Secara default, jenis arsip ditentukan dari ekstensi file URL. Jika file tidak memiliki ekstensi, Anda dapat secara eksplisit menentukan "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar", atau ".deb" di sini.
stripPrefix default adalah ''
awalan direktori yang akan dihapus dari file yang diekstrak. Banyak arsip berisi direktori tingkat atas yang berisi semua file dalam arsip. Daripada harus menentukan awalan ini berulang kali di build_file, kolom ini dapat digunakan untuk menghapusnya dari file yang diekstrak.
allow_fail defaultnya adalah False
Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal
canonical_id default adalah ''
Jika ditetapkan, batasi hit cache ke kasus saat file ditambahkan ke cache dengan ID kanonis yang sama
auth default adalah {}
Dict opsional yang menentukan informasi autentikasi untuk beberapa URL.
integrity defaultnya adalah ''
Perkiraan checksum file yang didownload, dalam format Subresource Integrity. Ini harus cocok dengan checksum file yang didownload. Menghapus checksum merupakan risiko keamanan karena file jarak jauh dapat berubah. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman.
rename_files default adalah {}
Dict opsional yang menentukan file yang akan diganti namanya selama ekstraksi. Entri arsip dengan nama yang sama persis dengan kunci akan diganti namanya menjadi nilai, sebelum penyesuaian awalan direktori. Ini dapat digunakan untuk mengekstrak arsip yang berisi nama file non-Unicode, atau yang memiliki file yang akan diekstrak ke jalur yang sama pada sistem file yang tidak peka huruf besar/kecil.

execute

exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

Menjalankan perintah yang diberikan oleh daftar argumen. Waktu eksekusi perintah dibatasi oleh timeout (dalam detik, default 600 detik). Metode ini menampilkan struktur exec_result yang berisi output perintah. Peta environment dapat digunakan untuk mengganti beberapa variabel lingkungan yang akan diteruskan ke proses.

Parameter

Parameter Deskripsi
arguments wajib
Daftar argumen, elemen pertama harus merupakan jalur ke program yang akan dieksekusi.
timeout default adalah 600
durasi maksimum perintah dalam detik (defaultnya adalah 600 detik).
environment default adalah {}
memaksa beberapa variabel lingkungan ditetapkan untuk diteruskan ke proses.
quiet default adalah True
Jika stdout dan stderr harus dicetak ke terminal.
working_directory default adalah ""
Direktori kerja untuk eksekusi perintah. Dapat relatif terhadap root repositori atau absolut.

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)

Membuat objek buram yang dapat ditampilkan dari fungsi implementasi ekstensi modul untuk memberikan metadata tentang repositori yang dihasilkan oleh ekstensi ke Bazel.

Parameter

Parameter Deskripsi
root_module_direct_deps urutan string; atau string; atau None; default adalah None
Nama repositori yang dianggap ekstensi sebagai dependensi langsung modul root. Jika modul root mengimpor repositori tambahan atau tidak mengimpor semua repositori ini melalui use_repo, Bazel akan mencetak peringatan dan perintah perbaikan saat ekstensi dievaluasi.

Jika salah satu dari root_module_direct_deps dan root_module_direct_dev_deps ditentukan, yang lainnya juga harus ditentukan. Daftar yang ditentukan oleh kedua parameter ini harus terpisah.

Hanya satu dari root_module_direct_deps dan root_module_direct_dev_deps yang dapat disetel ke nilai khusus "all", yang diperlakukan seolah-olah daftar dengan nama semua repositori yang dihasilkan oleh ekstensi ditetapkan sebagai nilai.

root_module_direct_dev_deps Urutan string; atau string; atau None; default-nya adalah None
Nama repositori yang dianggap ekstensi sebagai dependensi dev langsung dari modul root. Jika modul root mengimpor repositori tambahan atau tidak mengimpor semua repositori ini melalui use_repo pada proxy ekstensi yang dibuat dengan use_extension(..., dev_dependency = True), Bazel akan mencetak peringatan dan perintah perbaikan saat ekstensi dievaluasi.

Jika salah satu dari root_module_direct_deps dan root_module_direct_dev_deps ditentukan, yang lainnya juga harus ditentukan. Daftar yang ditentukan oleh kedua parameter ini harus terpisah.

Hanya satu dari root_module_direct_deps dan root_module_direct_dev_deps yang dapat disetel ke nilai khusus "all", yang diperlakukan seolah-olah daftar dengan nama semua repositori yang dihasilkan oleh ekstensi ditetapkan sebagai nilai.

file

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

Menghasilkan file di direktori repositori dengan konten yang disediakan.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; diperlukan
jalur file yang akan dibuat, relatif terhadap direktori repositori.
content defaultnya adalah ''
isi file yang akan dibuat, kosong secara default.
executable defaultnya adalah True
menetapkan tanda yang dapat dieksekusi pada file yang dibuat, benar secara default.
legacy_utf8 defaultnya adalah True
mengenkode konten file ke UTF-8, true secara default. Versi mendatang akan mengubah default dan menghapus parameter ini.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

Menampilkan apakah tag yang diberikan ditentukan pada hasil panggilan use_extension dengan devDependency = True.

Parameter

Parameter Deskripsi
tag bazel_module_tag; required
Tag yang diperoleh dari bazel_module.tags.

modul

list module_ctx.modules

Daftar semua modul Bazel dalam grafik dependensi eksternal yang menggunakan ekstensi modul ini, yang masing-masing adalah objek bazel_module yang mengekspos semua tag yang ditentukan untuk ekstensi ini. Urutan iterasi kamus ini dijamin sama dengan penelusuran breadth-first yang dimulai dari modul root.

os

repository_os module_ctx.os

Struktur untuk mengakses informasi dari sistem.

jalur

path module_ctx.path(path)

Menampilkan jalur dari string, label, atau jalur. Jika jalur bersifat relatif, jalur tersebut akan di-resolve secara relatif terhadap direktori repositori. Jika merupakan label, jalur akan di-resolve ke jalur file yang sesuai. Perlu diperhatikan bahwa repositori jarak jauh dijalankan selama fase analisis sehingga tidak dapat bergantung pada hasil target (label harus mengarah ke file yang tidak dihasilkan). Jika path adalah jalur, jalur tersebut akan ditampilkan apa adanya.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
string, label, atau jalur yang menjadi asal pembuatan jalur

baca

string module_ctx.read(path)

Membaca konten file di sistem file.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
jalur file yang akan dibaca.

report_progress

None module_ctx.report_progress(status='')

Memperbarui status progres untuk pengambilan repositori atau ekstensi modul ini

Parameter

Parameter Deskripsi
status string; default adalah string ''
yang menjelaskan status progres pengambilan saat ini

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

Apakah modul root menggunakan ekstensi ini sebagai dependensi non-dev.

yang mana

path module_ctx.which(program)

Menampilkan jalur program yang sesuai atau Tidak ada jika tidak ada program tersebut di jalur.

Parameter

Parameter Deskripsi
program required
Program yang akan ditemukan di jalur.
Dapat menampilkan None.