mô-đun_doanh_nghiệp

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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 đã cung cấp và trả về một cấu trúc chứa 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 sha256integrity. 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

Tham 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 mặc định là ''
Hàm băm SHA-256 dự kiến của tệp đã 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 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 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 mặc định là False
Đặt cờ thực thi trên tệp đã tạo, mặc định là false.
allow_fail 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 mặc định là ''
Nếu được đặt, hãy hạn chế các 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 mặc định là {}
Một tập hợp từ điển không bắt buộc chỉ định thông tin xác thực cho một số URL.
headers mặc định là {}
Một dict không bắt buộc chỉ định tiêu đề http cho tất cả URL.
integrity 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 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 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='', 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 đã cung cấp, trích xuất tệp đó và trả về một cấu trúc chứa 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 sha256integrity. 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

Tham 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 mặc định là ''
Hàm băm SHA-256 dự kiến của tệp đã 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 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 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.
type 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.
stripPrefix mặc định là ''
Tiền tố thư mục để loại bỏ 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 tệp lưu trữ. Thay vì cần chỉ định tiền tố này nhiều lần trong build_file, bạn có thể dùng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
allow_fail 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 mặc định là ''
Nếu được đặt, hãy hạn chế các 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 mặc định là {}
Một tập hợp từ điển không bắt buộc chỉ định thông tin xác thực cho một số URL.
headers mặc định là {}
Một dict không bắt buộc chỉ định tiêu đề http cho tất cả URL.
integrity 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 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.
rename_files 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ể dùng tính năng này để trích xuất các tệp lưu trữ chứa tên tệp không phải Unicode hoặc có các tệp sẽ trích xuất vào cùng một đường dẫn trên các 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="")

Thực thi lệnh do danh sách đối số cung cấp. Thời gian thực thi của lệnh bị giới hạn bởi 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ể sử dụng bản đồ environment để ghi đè một số biến môi trường sẽ được truyền vào quy trình.

Tham số

Thông số Mô tả
arguments bắt buộc
Danh sách đối số, phần tử đầu tiên phải là đường dẫn đến chương trình cần thực thi.
timeout 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 mặc định là {}
Buộc đặt một số biến môi trường để truyền vào quy trình.
quiet mặc định là True
Nếu stdout và stderr được in ra thiết bị đầu cuối.
working_directory mặc định là ""
Thư mục đang hoạt động để thực thi lệnh. Có thể tương đối so với thư mục gốc của kho lưu trữ hoặc tuyệt đối. 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)

Tạo một đối tượng mờ có thể được trả về từ hàm triển khai của tiện ích mô-đun để cung cấp siêu dữ liệu về các kho lưu trữ do tiện ích tạo 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; 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 root_module_direct_deps và sẽ in một cảnh báo và lệnh khắc phục khi tiện ích được đánh giá.

Nếu bạn chỉ định một trong hai thuộc tính root_module_direct_depsroot_module_direct_dev_deps, thì bạn cũng phải chỉ định thuộc tính còn lại. Các danh sách do hai tham số này chỉ định phải tách biệt với nhau.

Bạn có thể đặt chính xác một trong hai giá trị root_module_direct_depsroot_module_direct_dev_deps thành giá trị đặc biệt "all". Giá trị này được coi như một danh sách có tên của tất cả các kho lưu trữ do tiện ích tạo ra.

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 các kho lưu trữ mà tiện ích coi là phần phụ thuộc phát triển 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 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 root_module_direct_depsroot_module_direct_dev_deps, thì bạn cũng phải chỉ định thuộc tính còn lại. Các danh sách do hai tham số này chỉ định phải tách biệt với nhau.

Bạn có thể đặt chính xác một trong hai giá trị root_module_direct_depsroot_module_direct_dev_deps thành giá trị đặc biệt "all". Giá trị này được coi như một danh sách có tên của tất cả các kho lưu trữ do tiện ích tạo ra.

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 đó, không được lưu trữ trong tệp khoá.

trích xuất

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

Giải nén tệp lưu trữ vào thư mục kho lưu trữ.

Tham 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ữ.
stripPrefix mặc định là ''
tiền tố thư mục để loại bỏ 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 tệp lưu trữ. Thay vì cần chỉ định tiền tố này nhiều lần trong build_file, bạn có thể dùng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
rename_files 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ể dùng tính năng này để trích xuất các tệp lưu trữ chứa tên tệp không phải Unicode hoặc có các tệp sẽ trích xuất vào cùng một đường dẫn trên các hệ thống tệp không phân biệt chữ hoa chữ thường.
watch_archive mặc định là 'auto'
liệu 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)

Tạo một tệp trong thư mục kho lưu trữ bằng nội dung được cung cấp.

Tham số

Thông số Mô tả
path chuỗi; hoặc Nhãn; hoặc đường dẫn; 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 mặc định là ''
Nội dung của tệp cần tạo, trống theo mặc định.
executable mặc định là True
Đặt cờ thực thi trên tệp đã tạo, mặc định là true.
legacy_utf8 mặc định là True
Mã hoá nội dung tệp thành UTF-8, đúng 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)

Trả về giá trị của biến môi trường name dưới dạng chuỗi nếu có hoặc default nếu không có.

Khi tạo 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 để trả về nếu không tìm thấy name.
Có thể trả về None.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

Trả về kết quả cho biết thẻ đã cho có được chỉ định trên 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 được từ bazel_module.tags.

mô-đun

list module_ctx.modules

Danh sách tất cả các mô-đun Bazel trong biểu đồ phần phụ thuộc bên ngoài sử dụng tiện ích 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ẻ mà mô-đun đã chỉ định cho tiện ích này. Thứ tự lặp lại của từ điển này được đảm bảo giống với 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.os

Một cấu trúc để truy cập 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 đó sẽ phân giải thành đường dẫn của tệp tương ứng. Xin lưu ý rằng các kho lưu trữ từ xa được thực thi trong giai đoạn phân tích và do đó 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 path là một đường dẫn, thì hàm này sẽ trả về đường dẫn đó nguyên trạng.

Tham số

Thông số Mô tả
path chuỗi; hoặc Nhãn; hoặc đường dẫn; bắt buộc
string, Label hoặc path để tạo đường dẫn.

đọ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 chuỗi; hoặc Nhãn; hoặc đường dẫn; bắt buộc
Đường dẫn của tệp cần đọc.
watch 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='')

Cập nhật trạng thái tiến trình cho 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 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

Liệu mô-đun gốc có sử dụng tiện ích này làm phần phụ thuộc không phải dành cho 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, cho dù đường dẫn đó có tồn tại hay không, hoặc cho dù đó là 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á kho lưu trữ hoặc tiện ích mô-đun này, đồng thời khiến kho lưu trữ hoặc tiện ích mô-đun này được tìm nạp lại hoặc đánh giá lại vào lần tiếp theo.

"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à tệp); nếu đường dẫn là tệp nhưng hiện là thư mục hoặc ngược lại; và nếu đường dẫn bắt đầu hoặc ngừng tồn tại. 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.

Tham số

Thông số Mô tả
path chuỗi; hoặc Nhãn; hoặc đường dẫn; bắt buộc
Đường dẫn của tệp cần theo dõi.

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 nào như vậy trong đường dẫn.

Tham số

Thông số Mô tả
program bắt buộc
Chương trình cần tìm trong đường dẫn.
Có thể trả về None.