modul_ctx

Laporkan masalah Lihat sumber Malam · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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

Anggota

download

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

Mendownload file ke jalur output untuk URL yang diberikan dan menampilkan struct yang berisi success, tanda berupa true jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256 dan integrity. Saat sha256 atau integrity ditentukan oleh pengguna, sebaiknya tetapkan canonical_id eksplisit. mis. get_default_canonical_id

Parameter

Parameter Deskripsi
url string; atau Iterable string; wajib
Daftar URL hasil duplikasi yang merujuk pada file yang sama.
output string; atau Label; atau path; default-nya adalah ''
jalur ke file output, relatif terhadap direktori repositori.
sha256 string; default adalah ''
Hash SHA-256 yang diharapkan dari file yang didownload. Ini harus cocok dengan hash SHA-256 file yang didownload. Menghilangkan SHA-256 karena file jarak jauh dapat berubah merupakan risiko keamanan. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache.
executable bool; default adalah False
Tetapkan flag yang dapat dieksekusi pada file yang dibuat, ke false secara default.
allow_fail bool; default adalah False
Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal.
canonical_id string; default adalah ''
Jika ditetapkan, batasi hit cache pada kasus tersebut ketika file ditambahkan ke cache dengan ID kanonis yang sama. Secara default, cache menggunakan checksum (sha256 atau integrity).
auth dict; default adalah {}
Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL.
headers dict; default adalah {}
Dikte opsional yang menentukan header http untuk semua URL.
integrity string; default adalah ''
Checksum yang diharapkan dari file yang didownload, dalam format Integritas Subresource. Ini harus cocok dengan checksum file yang didownload. Menghilangkan checksum karena file jarak jauh dapat berubah merupakan risiko keamanan. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache.
block bool; default adalah True
Jika ditetapkan ke false, panggilan akan segera ditampilkan dan, bukan nilai hasil reguler, akan menampilkan token dengan satu metode tunggal, wait(), yang memblokir hingga download selesai dan menampilkan nilai hasil biasa atau menampilkan seperti biasa.

download_and_extract

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

Mendownload file ke jalur output untuk URL yang diberikan, mengekstraknya, dan menampilkan struct yang berisi success, flag berupa true jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256 dan integrity. Saat sha256 atau integrity ditentukan oleh pengguna, sebaiknya tetapkan canonical_id eksplisit. mis. get_default_canonical_id

Parameter

Parameter Deskripsi
url string; atau Iterable string; wajib
Daftar URL hasil duplikasi yang merujuk pada file yang sama.
output string; atau Label; atau path; default-nya adalah ''
Jalur ke direktori tempat arsip akan dibuka, relatif terhadap direktori repositori.
sha256 string; default adalah ''
Hash SHA-256 yang diharapkan dari file yang didownload. Ini harus cocok dengan hash SHA-256 file yang didownload. Menghilangkan SHA-256 karena file jarak jauh dapat berubah merupakan risiko keamanan. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache.
type string; default 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 string; 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 bool; default adalah False
Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal.
canonical_id string; default adalah ''
Jika ditetapkan, batasi hit cache pada kasus tersebut ketika file ditambahkan ke cache dengan ID kanonis yang sama. Secara {i>default caching<i} menggunakan {i>checksum<i} (sha256 atau integrity).
auth dict; default adalah {}
Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL.
headers dict; default adalah {}
Dikte opsional yang menentukan header http untuk semua URL.
integrity string; default adalah ''
Checksum yang diharapkan dari file yang didownload, dalam format Integritas Subresource. Ini harus cocok dengan checksum file yang didownload. Menghilangkan checksum karena file jarak jauh dapat berubah merupakan risiko keamanan. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache.
rename_files dict; default adalah {}
Dik 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 apa pun. 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 urut; wajib
Daftar argumen, elemen pertama harus berupa jalur ke program yang akan dieksekusi.
timeout int; default adalah 600
Durasi maksimum perintah dalam detik (defaultnya adalah 600 detik).
environment dict; default adalah {}
Memaksa beberapa variabel lingkungan ditetapkan untuk diteruskan ke proses.
quiet bool; default adalah True
Jika stdout dan stderr harus dicetak ke terminal.
working_directory string; default adalah ""
Direktori kerja untuk eksekusi perintah. Dapat relatif terhadap root repositori atau absolut. Defaultnya adalah root repositori.

extension_metadata

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

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

Parameter

Parameter Deskripsi
root_module_direct_deps urutan string; atau string; atau None; default-nya adalah None
Nama-nama repositori yang dianggap ekstensi sebagai dependensi langsung dari modul root. Jika modul root mengimpor repositori tambahan atau tidak mengimpor semua repositori ini melalui use_repo, Bazel akan mencetak peringatan saat ekstensi dievaluasi, yang menginstruksikan pengguna untuk menjalankan bazel mod tidy guna memperbaiki panggilan use_repo secara otomatis.

Jika salah satu dari root_module_direct_deps 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-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 saat ekstensi dievaluasi, yang menginstruksikan pengguna untuk menjalankan bazel mod tidy guna memperbaiki panggilan use_repo secara otomatis.

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.

reproducible bool; default adalah False
Menyatakan bahwa ekstensi modul ini memastikan kemampuan reproduksi yang lengkap, sehingga tidak boleh disimpan dalam lockfile.

ekstrak

None module_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')

Ekstrak arsip ke direktori repositori.

Parameter

Parameter Deskripsi
archive string; atau Label; atau path; wajib
jalur ke arsip yang akan dibuka, relatif terhadap direktori repositori.
output string; atau Label; atau path; default-nya adalah ''
jalur ke direktori tempat arsip akan dibongkar, relatif terhadap direktori repositori.
stripPrefix string; default adalah ''
awalan direktori yang 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.
rename_files dict; default adalah {}
Dik 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 apa pun. 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.
watch_archive string; default adalah 'auto'
apakah ingin menonton file arsip tersebut atau tidak. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch(); memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.

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; wajib
Jalur file yang akan dibuat, relatif terhadap direktori repositori.
content string; default adalah ''
Konten file yang akan dibuat, secara default kosong.
executable bool; default adalah True
Menyetel flag yang dapat dieksekusi pada file yang dibuat, true (benar) secara default.
legacy_utf8 bool; default adalah True
Enkode konten file ke UTF-8, true secara default. Versi mendatang akan mengubah default dan menghapus parameter ini.

Getenv

string module_ctx.getenv(name, default=None)

Menampilkan nilai variabel lingkungan name sebagai string jika ada, atau default jika tidak.

Saat mem-build secara bertahap, setiap perubahan pada nilai variabel yang diberi nama oleh name akan menyebabkan repositori ini diambil ulang.

Parameter

Parameter Deskripsi
name string; wajib
Nama variabel lingkungan yang diinginkan.
default string; atau None; default adalah None
Nilai default yang akan ditampilkan jika name tidak ditemukan.
Mungkin menampilkan None.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

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

Parameter

Parameter Deskripsi
tag bazel_module_tag; wajib
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 merupakan objek bazel_module yang mengekspos semua tag yang ditentukan untuk ekstensi ini. Urutan iterasi kamus ini dijamin akan sama dengan penelusuran luas-pertama yang dimulai dari modul root.

OS

repository_os module_ctx.os

Sebuah struct 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 diselesaikan secara relatif terhadap direktori repositori. Jika jalur adalah label, jalur itu akan menjadi 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 jalur adalah jalur, ini akan mengembalikan jalur tersebut sebagaimana adanya.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
string, Label, atau path yang digunakan untuk membuat jalur.

baca

string module_ctx.read(path, *, watch='auto')

Membaca isi file pada sistem file.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
Jalur file yang akan dibaca.
watch string; default adalah 'auto'
Apakah akan menonton file atau tidak. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch(); memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.

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.

jam tangan

None module_ctx.watch(path)

Memberi tahu Bazel untuk mengawasi perubahan pada jalur yang diberikan, apakah jalur itu ada atau tidak, atau apakah itu file atau direktori. Setiap perubahan pada file atau direktori akan membatalkan repositori atau ekstensi modul ini, dan menyebabkannya diambil ulang atau dievaluasi ulang di lain waktu.

"Perubahan" menyertakan perubahan pada isi file (jika jalurnya adalah file); jika jalurnya adalah file tetapi sekarang menjadi direktori, atau sebaliknya; dan apakah jalur dimulai atau berhenti saat itu. Secara khusus, hal ini tidak mencakup perubahan pada file apa pun pada direktori jika jalurnya adalah direktori. Untuk itu, gunakan path.readdir().

Perhatikan bahwa mencoba mengawasi jalur di dalam repo yang sedang diambil, atau di dalam direktori kerja ekstensi modul saat ini, akan mengakibatkan error. Ekstensi modul yang mencoba mengawasi jalur di luar ruang kerja Bazel saat ini juga akan menghasilkan error.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
Jalur file yang akan dipantau.

yang mana

path module_ctx.which(program)

Menampilkan path dari program yang sesuai atau None jika tidak ada program semacam itu di jalur.

Parameter

Parameter Deskripsi
program string; wajib
Program yang akan ditemukan di jalur.
Mungkin menampilkan None.