Ngữ cảnh của tiện ích mô-đun chứa các hàm trợ giúp và thông tin về các thẻ liên quan trên biểu đồ phần phụ thuộc. Bạn sẽ nhận được đối tượng module_ctx làm đối số cho hàm implementation
khi tạo tiện ích mô-đun.
Hội viên
- tải xuống
- download_and_extract
- thực thi
- extension_metadata
- trích xuất
- tệp
- getenv
- is_dev_dependency
- mô-đun
- hệ điều hành
- path
- đọc
- report_progress
- root_module_has_non_dev_dependency
- watch
- mà
tải xuống
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
, một cờ là true
nếu quá trình tải xuống hoàn tất thành công và nếu thành công, một hàm băm của tệp có các trường sha256
và integrity
. Khi sha256
hoặc integrity
do người dùng chỉ định, bạn nên đặt canonical_id
rõ ràng. Ví dụ: get_default_canonical_id
Thông số
Thông số | Mô tả |
---|---|
url
|
chuỗi; hoặc Iterable của chuỗi;
bắt buộc Danh sách URL phản chiếu tham chiếu đến cùng một tệp. |
output
|
chuỗi; hoặc Nhãn; hoặc đường dẫn; giá trị mặc định là '' đường dẫn đến tệp đầu ra, tương ứng với thư mục kho lưu trữ. |
sha256
|
string;
mặc định là '' Hàm băm SHA-256 dự kiến của tệp được tải xuống. Hàm băm này phải khớp với hàm băm SHA-256 của tệp đã tải xuống. Việc bỏ qua SHA-256 sẽ gây rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn không nên bỏ qua trường này vì sẽ khiến bản dựng của bạn không kín. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho (nếu có); quá trình tải xuống sẽ chỉ được thực hiện nếu không tìm thấy tệp trong bộ nhớ đệm. Sau khi tải xuống thành công, tệp sẽ được thêm vào bộ nhớ đệm. |
executable
|
bool; giá trị mặc định là False Đặt cờ thực thi trên tệp đã tạo, giá trị mặc định là false. |
allow_fail
|
bool; giá trị mặc định là False Nếu được đặt, hãy cho biết lỗi trong giá trị trả về thay vì báo lỗi cho các lượt tải xuống không thành công. |
canonical_id
|
string;
mặc định là '' Nếu được đặt, hãy hạn chế số lượt truy cập vào bộ nhớ đệm ở những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã chuẩn hoá. Theo mặc định, việc lưu vào bộ nhớ đệm sẽ sử dụng giá trị tổng kiểm ( sha256 hoặc integrity ).
|
auth
|
dict; giá trị mặc định là {} Một dict không bắt buộc chỉ định thông tin xác thực cho một số URL. |
headers
|
dict;
mặc định là {} Một dict không bắt buộc chỉ định tiêu đề http cho tất cả URL. |
integrity
|
string; mặc định là '' Giá trị tổng kiểm dự kiến của tệp đã tải xuống, ở định dạng Tính toàn vẹn của tài nguyên phụ. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. Việc bỏ qua giá trị tổng kiểm vì các tệp từ xa có thể thay đổi là một rủi ro bảo mật. Tốt nhất là bạn không nên bỏ qua trường này vì sẽ khiến bản dựng của bạn không kín. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, nếu được cung cấp, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có tổng kiểm đã cho; quá trình tải xuống sẽ chỉ được thực hiện nếu không tìm thấy tệp trong bộ nhớ đệm. Sau khi tải xuống thành công, tệp sẽ được thêm vào bộ nhớ đệm. |
block
|
bool; giá trị mặc định là True Nếu được đặt thành false, lệnh gọi sẽ trả về ngay lập tức và thay vì giá trị trả về thông thường, lệnh gọi này sẽ trả về một mã thông báo bằng một phương thức duy nhất, wait(), phương thức này sẽ chặn cho đến khi quá trình tải xuống hoàn tất và trả về giá trị trả về thông thường hoặc gửi như bình thường. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
, một cờ là true
nếu quá trình tải xuống hoàn tất thành công và nếu thành công, một hàm băm của tệp có các trường sha256
và integrity
. Khi chỉ định sha256
hoặc integrity
, bạn nên đặt canonical_id
rõ ràng, ví dụ: get_default_canonical_id
Thông số
Thông số | Mô tả |
---|---|
url
|
chuỗi; hoặc Iterable của chuỗi;
bắt buộc Danh sách URL phản chiếu tham chiếu đến cùng một tệp. |
output
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
mặc định là '' Đường dẫn đến thư mục nơi giải nén tệp lưu trữ, tương ứng với thư mục kho lưu trữ. |
sha256
|
chuỗi; giá trị mặc định là '' Hàm băm SHA-256 dự kiến của tệp đã tải xuống. Giá trị này phải khớp với hàm băm SHA-256 của tệp được tải xuống. Việc bỏ qua SHA-256 sẽ gây rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho (nếu có); quá trình tải xuống sẽ chỉ được thực hiện nếu không tìm thấy tệp trong bộ nhớ đệm. Sau khi tải xuống thành công, tệp sẽ được thêm vào bộ nhớ đệm. |
type
|
string; giá trị mặc định là '' Loại tệp lưu trữ của tệp đã tải xuống. Theo mặc định, loại tệp lưu trữ được xác định từ đuôi tệp của URL. Nếu tệp không có đuôi, bạn có thể chỉ định rõ ràng "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" hoặc ".deb" tại đây. |
strip_prefix
|
string; giá trị mặc định là '' Tiền tố thư mục cần xoá khỏi các tệp đã trích xuất. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa mọi tệp trong kho lưu trữ đó. Thay vì cần phải chỉ định tiền tố này nhiều lần trong build_file , bạn có thể sử dụng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
Để đảm bảo khả năng tương thích, bạn cũng có thể sử dụng tham số này theo tên không dùng nữa là |
allow_fail
|
bool; giá trị mặc định là False Nếu được đặt, hãy cho biết lỗi trong giá trị trả về thay vì báo lỗi cho các lượt tải xuống không thành công. |
canonical_id
|
string;
mặc định là '' Nếu được đặt, hãy hạn chế số lượt truy cập vào bộ nhớ đệm ở những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã chuẩn hoá. Theo mặc định, tính năng lưu vào bộ nhớ đệm sử dụng tổng kiểm" ( sha256 hoặc integrity ).
|
auth
|
dict; giá trị mặc định là {} Một dict không bắt buộc chỉ định thông tin xác thực cho một số URL. |
headers
|
dict;
mặc định là {} Một dict không bắt buộc chỉ định tiêu đề http cho tất cả URL. |
integrity
|
string; giá trị mặc định là '' Giá trị tổng kiểm dự kiến của tệp đã tải xuống, ở định dạng Tính toàn vẹn của tài nguyên phụ. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. Việc bỏ qua tổng kiểm tra là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, nếu được cung cấp, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có tổng kiểm đã cho; quá trình tải xuống sẽ chỉ được thực hiện nếu không tìm thấy tệp trong bộ nhớ đệm. Sau khi tải xuống thành công, tệp sẽ được thêm vào bộ nhớ đệm. |
rename_files
|
dict; giá trị mặc định là {} Một dict không bắt buộc chỉ định các tệp cần đổi tên trong quá trình trích xuất. Các mục nhập lưu trữ có tên khớp chính xác với khoá sẽ được đổi tên thành giá trị, trước khi điều chỉnh tiền tố thư mục. Bạn có thể sử dụng công cụ này để trích xuất các tệp lưu trữ có chứa tên tệp không phải Unicode hoặc có tệp sẽ trích xuất sang cùng một đường dẫn trong hệ thống tệp không phân biệt chữ hoa chữ thường. |
thực thi
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(tính bằng giây, mặc định là 600 giây). Phương thức này trả về một cấu trúc exec_result
chứa kết quả của lệnh. Bạn có thể dùng bản đồ environment
để ghi đè một số biến môi trường sẽ được truyền vào quy trình.
Thông số
Thông số | Mô tả |
---|---|
arguments
|
sequence;
bắt buộc Danh sách các đối số, phần tử đầu tiên phải là đường dẫn đến chương trình để thực thi. |
timeout
|
int;
mặc định là 600 Thời lượng tối đa của lệnh tính bằng giây (mặc định là 600 giây). |
environment
|
dict; mặc định là {} Buộc đặt một số biến môi trường để truyền vào quy trình này. Giá trị có thể là None để xoá biến môi trường.
|
quiet
|
bool; giá trị mặc định là True Nếu in stdout và stderr vào thiết bị đầu cuối. |
working_directory
|
chuỗi; giá trị mặc định là "" Thư mục đang hoạt động để thực thi lệnh. Có thể tương đối so với gốc hoặc tuyệt đối của kho lưu trữ. Giá trị mặc định là thư mục gốc của kho lưu trữ. |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)
Thông số
Thông số | Mô tả |
---|---|
root_module_direct_deps
|
trình tự của chuỗi; hoặc chuỗi; hoặc None ;
mặc định là None Tên của các kho lưu trữ mà tiện ích coi là phần phụ thuộc trực tiếp của mô-đun gốc. Nếu mô-đun gốc nhập các kho lưu trữ bổ sung hoặc không nhập tất cả các kho lưu trữ này thông qua use_repo , thì Bazel sẽ in cảnh báo khi đánh giá tiện ích, hướng dẫn người dùng chạy bazel mod tidy để tự động sửa các lệnh gọi use_repo . Nếu một trong các Nếu bạn chỉ định một trong hai thuộc tính Bạn có thể đặt chính xác một trong hai giá trị |
root_module_direct_dev_deps
|
trình tự của chuỗi; hoặc chuỗi; hay None ; mặc định là None Tên của những kho lưu trữ mà tiện ích coi là phần phụ thuộc trực tiếp từ nhà phát triển của mô-đun gốc. Nếu mô-đun gốc nhập các kho lưu trữ bổ sung hoặc không nhập tất cả các kho lưu trữ này thông qua use_repo trên một proxy tiện ích được tạo bằng use_extension(..., dev_dependency = True) , thì Bazel sẽ in cảnh báo khi tiện ích được đánh giá, hướng dẫn người dùng chạy bazel mod tidy để tự động sửa các lệnh gọi use_repo . Nếu bạn chỉ định một trong hai thuộc tính Bạn có thể đặt chính xác một trong hai giá trị |
reproducible
|
bool;
mặc định là False Cho biết rằng tiện ích mô-đun này đảm bảo khả năng tái tạo hoàn toàn, do đó, tiện ích này không được lưu trữ trong tệp khoá. |
trích xuất
None
module_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')
Thông số
Thông số | Mô tả |
---|---|
archive
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn đến tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ. |
output
|
chuỗi; hoặc Nhãn; hoặc đường dẫn; giá trị mặc định là '' đường dẫn đến thư mục nơi giải nén tệp lưu trữ, tương ứng với thư mục kho lưu trữ. |
strip_prefix
|
string; mặc định là '' một tiền tố thư mục để xóa khỏi các tệp đã trích xuất. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa mọi tệp trong kho lưu trữ đó. Thay vì cần phải chỉ định tiền tố này nhiều lần trong build_file , bạn có thể sử dụng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
Để đảm bảo khả năng tương thích, bạn cũng có thể sử dụng tham số này theo tên không dùng nữa là |
rename_files
|
dict; giá trị mặc định là {} Một dict không bắt buộc chỉ định các tệp cần đổi tên trong quá trình trích xuất. Các mục lưu trữ có tên khớp chính xác với một khoá sẽ được đổi tên thành giá trị đó, trước khi điều chỉnh tiền tố thư mục. Bạn có thể sử dụng công cụ này để trích xuất các tệp lưu trữ có chứa tên tệp không phải Unicode hoặc có tệp sẽ trích xuất sang cùng một đường dẫn trong hệ thống tệp không phân biệt chữ hoa chữ thường. |
watch_archive
|
chuỗi; giá trị mặc định là 'auto' cho biết có xem tệp lưu trữ hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). Việc truyền "yes" tương đương với việc gọi ngay phương thức watch() ; việc truyền "no" sẽ không cố gắng theo dõi tệp; việc truyền "auto" sẽ chỉ cố gắng theo dõi tệp khi được phép (xem tài liệu về watch() để biết thêm thông tin.
|
tệp
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
Thông số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc path;
bắt buộc Đường dẫn của tệp cần tạo, tương ứng với thư mục kho lưu trữ. |
content
|
string; giá trị mặc định là '' Nội dung của tệp cần tạo, trống theo mặc định. |
executable
|
bool; mặc định là True Đặt cờ thực thi trên tệp được tạo, true theo mặc định. |
legacy_utf8
|
bool;
giá trị mặc định là True Mã hoá nội dung tệp thành UTF-8, true theo mặc định. Các phiên bản trong tương lai sẽ thay đổi giá trị mặc định và xoá tham số này. |
getenv
string module_ctx.getenv(name, default=None)
name
dưới dạng chuỗi nếu có hoặc default
nếu không có. Khi tạo theo cách tăng dần, mọi thay đổi đối với giá trị của biến do name
đặt tên sẽ khiến kho lưu trữ này được tìm nạp lại.
Thông số
Thông số | Mô tả |
---|---|
name
|
string;
bắt buộc Tên của biến môi trường mong muốn. |
default
|
string; hoặc None ; giá trị mặc định là None Giá trị mặc định để trả về nếu không tìm thấy name .
|
None
.
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)
devDependency = True
hay không.
Thông số
Thông số | Mô tả |
---|---|
tag
|
bazel_module_tag;
bắt buộc Thẻ lấy từ bazel_module.tags. |
mô-đun
list module_ctx.modules
hệ điều hành
repository_os module_ctx.os
đường dẫn
path module_ctx.path(path)
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộcstring , Label hoặc path để tạo đường dẫn.
|
đọc
string module_ctx.read(path, *, watch='auto')
Thông số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc path;
bắt buộc Đường dẫn của tệp cần đọc. |
watch
|
string;
mặc định là 'auto' Liệu có theo dõi tệp hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). Việc truyền "yes" tương đương với việc gọi ngay phương thức watch() ; việc truyền "no" sẽ không cố gắng theo dõi tệp; việc truyền "auto" sẽ chỉ cố gắng theo dõi tệp khi được phép (xem tài liệu về watch() để biết thêm thông tin.
|
report_progress
None
module_ctx.report_progress(status='')
Thông số
Thông số | Mô tả |
---|---|
status
|
chuỗi; giá trị mặc định là '' string mô tả trạng thái hiện tại của tiến trình tìm nạp.
|
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency
đồng hồ
None
module_ctx.watch(path)
"Thay đổi" bao gồm các thay đổi đối với nội dung của tệp (nếu đường dẫn là một tệp); nếu đường dẫn là một tệp nhưng bây giờ là một thư mục hoặc ngược lại; và nếu đường dẫn bắt đầu hoặc dừng hiện có. Lưu ý rằng việc này không bao gồm các thay đổi đối với bất kỳ tệp nào trong thư mục nếu đường dẫn là một thư mục. Thay vào đó, hãy sử dụng path.readdir()
.
Xin lưu ý rằng việc cố gắng theo dõi các đường dẫn bên trong kho lưu trữ đang được tìm nạp hoặc bên trong thư mục đang hoạt động của tiện ích mô-đun hiện tại sẽ dẫn đến lỗi. Tiện ích mô-đun cố gắng theo dõi một đường dẫn bên ngoài không gian làm việc Bazel hiện tại cũng sẽ dẫn đến lỗi.
Thông số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc path;
bắt buộc Đường dẫn của tệp cần xem. |
thiết bị nào
path module_ctx.which(program)
path
của chương trình tương ứng hoặc None
nếu không có chương trình như vậy trong đường dẫn.
Thông số
Thông số | Mô tả |
---|---|
program
|
string;
bắt buộc Chương trình cần tìm trong đường dẫn. |
None
.