Ngữ cảnh của phần mở rộng mô-đun có 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
- đường dẫn
- đọc
- report_progress
- root_module_has_non_dev_dependency
- đồng hồ
- sản phẩm nào
tải xuống
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)Tải một tệp xuống đường dẫn đầu ra cho URL được cung cấp và trả về một cấu trúc chứa
success
. Cờ này 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
được người dùng chỉ định, bạn nên đặt canonical_id
rõ ràng. ví dụ: get_default_canonical_id
Tham số
Thông số | Mô tả |
---|---|
url
|
string; hoặc Có thể lặp lại 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
|
string; hoặc Label; hoặc đường dẫn;
giá trị mặc định là '' đường dẫn đến tệp đầu ra, so với thư mục kho lưu trữ. |
sha256
|
string;
giá trị mặc định là '' Hàm băm SHA-256 dự kiến của tệp được 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. Bạn sẽ gặp rủi ro bảo mật nếu bỏ qua SHA-256 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 thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm của kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho; chỉ cố gắng tải xuống 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 được tạo, false theo mặc định. |
allow_fail
|
bool;
giá trị mặc định là False Nếu được đặt, hãy chỉ ra lỗi trong giá trị trả về thay vì đưa ra lỗi cho các lượt tải xuống không thành công. |
canonical_id
|
string;
giá trị mặc định là '' Nếu được đặt, hãy giới hạn lượt truy cập bộ nhớ đệm trong những trường hợp tệp được thêm vào bộ nhớ đệm bằng 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 lệnh chính xác không bắt buộc chỉ định thông tin xác thực cho một số URL. |
headers
|
dict;
giá trị mặc định là {} Nhập chính tả tuỳ chọn 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 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 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 thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm của kho lưu trữ sẽ được kiểm tra để tìm tệp có giá trị tổng kiểm đã cho; chỉ cố gắng tải xuống 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 bạn đặ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 sẽ trả về một mã thông báo với một phương thức duy nhất là Wait(). Lệnh gọi 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 đi như bình thường. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})Tải một tệp xuống đường dẫn đầu ra cho URL được cung cấp, giải nén tệp đó và trả về một cấu trúc chứa
success
. Cờ này 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
được người dùng chỉ định, bạn nên đặt canonical_id
rõ ràng. ví dụ: get_default_canonical_id
Tham số
Thông số | Mô tả |
---|---|
url
|
string; hoặc Có thể lặp lại 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
|
string; hoặc Label; hoặc đường dẫn;
giá trị mặc định là '' Đường dẫn đến thư mục nơi tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ. |
sha256
|
string;
giá trị mặc định là '' Hàm băm SHA-256 dự kiến của tệp được 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. Bạn sẽ gặp rủi ro bảo mật nếu bỏ qua SHA-256 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 thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm của kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho; chỉ cố gắng tải xuống 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 lưu trữ của tệp đã tải xuống. Theo mặc định, loại lưu trữ được xác định từ đuôi tệp của URL. Nếu tệp không có đuôi thì bạn có thể chỉ định rõ ràng là "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" hoặc ".deb" vào đây. |
stripPrefix
|
string;
giá trị mặc định là '' Tiền tố thư mục để xóa khỏi các tệp đã giải nén. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa tất cả các tệp trong kho lưu trữ. Thay vì cần chỉ định nhiều lần tiền tố này trong build_file , bạn có thể dùng trường này để loại bỏ tiền tố khỏi các tệp đã trích xuất.
|
allow_fail
|
bool;
giá trị mặc định là False Nếu được đặt, hãy chỉ ra lỗi trong giá trị trả về thay vì đưa ra lỗi cho các lượt tải xuống không thành công. |
canonical_id
|
string;
giá trị mặc định là '' Nếu được đặt, hãy giới hạn lượt truy cập bộ nhớ đệm trong những trường hợp tệp được thêm vào bộ nhớ đệm bằng 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 lệnh chính xác không bắt buộc chỉ định thông tin xác thực cho một số URL. |
headers
|
dict;
giá trị mặc định là {} Nhập chính tả tuỳ chọn 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 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 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 thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm của kho lưu trữ sẽ được kiểm tra để tìm tệp có giá trị tổng kiểm đã cho; chỉ cố gắng tải xuống 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 lệnh chính xác 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ẽ giải nén 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 hiện
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")Thực thi lệnh được cung cấp bởi danh sách các đối số. Thời gian thực thi lệnh này được giới hạn trong
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 cần truyền vào quy trình.
Tham số
Thông số | Mô tả |
---|---|
arguments
|
trình tự;
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;
giá trị 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;
giá trị 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. |
quiet
|
bool;
giá trị mặc định là True Nếu phải in stdout và stderr vào thiết bị đầu cuối. |
working_directory
|
string;
giá trị mặc định là "" Thư mục đang làm việc để 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à 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)Tạo một đối tượng mờ có thể được trả về qua hàm triển khai của tiện ích mô-đun để cung cấp siêu dữ liệu về những kho lưu trữ do tiện ích tạo ra cho Bazel.
Tham số
Thông số | Mô tả |
---|---|
root_module_direct_deps
|
trình tự của chuỗi; hoặc chuỗi; hoặc None ;
giá trị 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 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 qua use_repo , 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 khắc phục các lệnh gọi use_repo . Nếu là một trong Nếu một trong hai giá trị 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; hoặc None ;
giá trị 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 dành cho 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 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 khắc phục các lệnh gọi use_repo . Nếu một trong hai giá trị Chính xác, một trong hai giá trị |
reproducible
|
bool;
giá trị mặc định là False Nêu rõ rằng tiện ích mô-đun này đảm bảo khả năng tái tạo hoàn toàn, do đó, không nên lưu trữ tiện ích này trong tệp khoá. |
trích xuất
None
module_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')
Trích xuất một tệp lưu trữ vào thư mục kho lưu trữ.
Tham số
Thông số | Mô tả |
---|---|
archive
|
string; hoặc Label; 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
|
string; hoặc Label; hoặc đường dẫn;
giá trị mặc định là '' đường dẫn đến thư mục nơi tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ. |
stripPrefix
|
string;
giá trị mặc định là '' một tiền tố thư mục để 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 tất cả các tệp trong kho lưu trữ. Thay vì cần chỉ định nhiều lần tiền tố này trong build_file , bạn có thể dùng trường này để loại bỏ tiền tố khỏi các tệp đã trích xuất.
|
rename_files
|
dict;
giá trị mặc định là {} Một lệnh chính xác 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ẽ giải nén 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
|
string;
giá trị mặc định là 'auto' có xem tệp lưu trữ hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Chuyển giá trị "yes" tương đương với việc gọi ngay phương thức watch() ; đang truyền "no" không cố xem tệp; truyền "auto" sẽ chỉ cố gắng xem tệp khi việc đó là hợp pháp (xem tài liệu watch() để biết thêm thông tin.
|
tệp
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
Tạo một tệp trong thư mục kho lưu trữ có nội dung được cung cấp.
Tham số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc đường dẫn;
bắt buộc Đường dẫn của tệp cần tạo, so 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;
giá trị mặc định là True Đặt cờ thực thi trên tệp đã 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á thông số này. |
getenv
string module_ctx.getenv(name, default=None)Trả về giá trị của một biến môi trường
name
dưới dạng một 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.
Tham 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 được trả về nếu không tìm thấy name .
|
None
.
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)Trả về xem thẻ đã cho có được chỉ định trong kết quả của lệnh gọi use_extension bằng
devDependency = True
hay không.
Tham số
Thông số | Mô tả |
---|---|
tag
|
bazel_module_tag;
bắt buộc Một thẻ lấy từ bazel_module.tags. |
mô-đun
list module_ctx.modulesDanh sách tất cả mô-đun Bazel trong biểu đồ phần phụ thuộc bên ngoài sử dụng phần mở rộng mô-đun này, mỗi mô-đun là một đối tượng bazel_module hiển thị tất cả các thẻ đã chỉ định cho phần mở rộng này. Thứ tự lặp lại của từ điển này được đảm bảo giống với phương thức tìm kiếm theo chiều rộng bắt đầu từ mô-đun gốc.
hệ điều hành
repository_os module_ctx.osMột cấu trúc để truy cập vào thông tin từ hệ thống.
đường dẫn
path module_ctx.path(path)Trả về một đường dẫn từ một chuỗi, nhãn hoặc đường dẫn. Nếu đường dẫn là tương đối, thì đường dẫn sẽ phân giải tương ứng với thư mục kho lưu trữ. Nếu đường dẫn là một nhãn, thì đường dẫn này sẽ phân giải thành đường dẫn của tệp tương ứng. Xin lưu ý rằng hệ thống lưu trữ từ xa được thực thi trong giai đoạn phân tích nên không thể phụ thuộc vào kết quả mục tiêu (nhãn phải trỏ đến một tệp không được tạo). Nếu đường dẫn là một đường dẫn, thì đường dẫn đó sẽ trả về nguyên trạng đường dẫn đó.
Tham số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc đường dẫn;
bắt buộcstring , Label hoặc path để tạo đường dẫn từ đó.
|
đọc
string module_ctx.read(path, *, watch='auto')Đọc nội dung của một tệp trên hệ thống tệp.
Tham số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc đường dẫn;
bắt buộc Đường dẫn của tệp cần đọc. |
watch
|
string;
giá trị mặc định là 'auto' Liệu có xem tệp hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Chuyển giá trị "yes" tương đương với việc gọi ngay phương thức watch() ; đang truyền "no" không cố xem tệp; truyền "auto" sẽ chỉ cố gắng xem tệp khi việc đó là hợp pháp (xem tài liệu watch() để biết thêm thông tin.
|
report_progress
None
module_ctx.report_progress(status='')
Cập nhật trạng thái tiến trình của quá trình tìm nạp kho lưu trữ hoặc tiện ích mô-đun này.
Tham số
Thông số | Mô tả |
---|---|
status
|
string;
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_dependencyLiệu mô-đun gốc có sử dụng tiện ích này dưới dạng phần phụ thuộc không phải của nhà phát triển hay không.
đồng hồ
None
module_ctx.watch(path)
Yêu cầu Bazel theo dõi các thay đổi đối với đường dẫn đã cho, liệu đường dẫn đó có tồn tại hay không hoặc đó là một tệp hay thư mục. Mọi thay đổi đối với tệp hoặc thư mục sẽ làm vô hiệu hoá tiện ích kho lưu trữ hoặc mô-đun này, đồng thời khiến tiện ích này được tìm nạp lại hoặc đánh giá lại vào lần tiếp theo."Thay đổi" đưa vào các thay đổi về 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à thư mục hoặc ngược lại; và liệu đường dẫn đó bắt đầu hay dừng hiện tại. Đáng chú ý là 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. Để làm được việc đó, hãy sử dụng path.readdir()
.
Xin lưu ý rằng việc cố gắng xem các đường dẫn bên trong kho lưu trữ hiện đ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 đường dẫn bên ngoài không gian làm việc Bazel hiện tại cũng sẽ gây ra lỗi.
Tham số
Thông số | Mô tả |
---|---|
path
|
string; hoặc Label; hoặc đường dẫn;
bắt buộc Đường dẫn của tệp cần xem. |
thiết bị nào
path module_ctx.which(program)Trả về
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.
Tham số
Thông số | Mô tả |
---|---|
program
|
string;
bắt buộc Chương trình để tìm trong đường dẫn. |
None
.