module_ctx

<ph type="x-smartling-placeholder"></ph> 문제 신고 소스 보기 1박 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

도우미 함수와 종속 항목 그래프 전반의 관련 태그에 관한 정보가 포함된 모듈 확장 프로그램의 컨텍스트입니다. 모듈 확장 프로그램을 만들 때 module_ctx 객체를 implementation 함수의 인수로 가져옵니다.

회원

download

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

제공된 URL의 출력 경로로 파일을 다운로드하고 success가 포함된 구조체(다운로드가 성공적으로 완료된 경우 true 플래그), 성공한 경우 sha256integrity 필드가 있는 파일의 해시를 반환합니다. sha256 또는 integrity가 사용자 지정된 경우 명시적인 canonical_id를 설정하는 것이 좋습니다. 예: get_default_canonical_id

매개변수

매개변수 설명
url string; 또는 문자열의 반복 가능 항목 필수
동일한 파일을 참조하는 미러 URL의 목록입니다.
output string; 또는 라벨 또는 path 기본값은 ''
입니다. 저장소 디렉터리를 기준으로 한 출력 파일의 상대 경로입니다.
sha256 string; 기본값은 ''
입니다. 다운로드한 파일의 예상 SHA-256 해시입니다. 이는 다운로드한 파일의 SHA-256 해시와 일치해야 합니다. 원격 파일이 변경될 수 있으므로 SHA-256을 생략하면 보안 위험이 발생합니다. 기껏해야 이 필드를 생략하면 빌드가 밀폐되지 않게 됩니다. 개발을 간소화하기 위한 선택사항이지만 출시 전에 설정해야 합니다. 제공된 경우 먼저 저장소 캐시에서 지정된 해시가 있는 파일을 확인합니다. 캐시에서 파일을 찾을 수 없는 경우에만 다운로드가 시도됩니다. 다운로드가 완료되면 파일이 캐시에 추가됩니다.
executable bool; 기본값은 False
입니다. 생성된 파일에 실행 가능 플래그를 설정합니다. 기본값은 false입니다.
allow_fail bool; 기본값은 False
입니다. 설정하면 실패한 다운로드에서 오류가 발생하는 대신 반환 값에 오류를 표시합니다.
canonical_id string; 기본값은 ''
입니다. 설정된 경우, 파일이 동일한 표준 ID로 캐시에 추가된 경우로 캐시 적중을 제한합니다. 기본적으로 캐싱은 체크섬 (sha256 또는 integrity)을 사용합니다.
auth dict; 기본값은 {}
입니다. 일부 URL에 대한 인증 정보를 지정하는 선택적 사전입니다.
headers dict; 기본값은 {}
입니다. 모든 URL의 http 헤더를 지정하는 선택적 사전입니다.
integrity string; 기본값은 ''
입니다. 하위 리소스 무결성 형식으로 다운로드한 파일의 예상 체크섬입니다. 이는 다운로드한 파일의 체크섬과 일치해야 합니다. 원격 파일이 변경될 수 있으므로 체크섬을 생략하면 보안 위험이 있습니다. 기껏해야 이 필드를 생략하면 빌드가 밀폐되지 않게 됩니다. 개발을 간소화하기 위한 선택사항이지만 출시 전에 설정해야 합니다. 제공되는 경우 먼저 저장소 캐시에서 지정된 체크섬이 있는 파일이 있는지 검사합니다. 캐시에서 파일을 찾을 수 없는 경우에만 다운로드가 시도됩니다. 다운로드가 완료되면 파일이 캐시에 추가됩니다.
block bool; 기본값은 True
입니다. false로 설정하면 호출이 즉시 반환되며 일반 반환 값 대신 단일 메서드 wait()이 포함된 토큰을 반환합니다. 이 메서드는 다운로드가 완료될 때까지 차단하고 일반 반환 값을 반환하거나 평소와 같이 반환합니다.

download_and_extract

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

제공된 URL의 출력 경로로 파일을 다운로드하고 추출한 다음 success(다운로드가 성공적으로 완료되면 true) 플래그를 포함하고 성공한 경우 sha256integrity 필드가 있는 파일의 해시를 포함하는 구조체를 반환합니다. sha256 또는 integrity가 사용자 지정된 경우 명시적인 canonical_id를 설정하는 것이 좋습니다. 예: get_default_canonical_id

매개변수

매개변수 설명
url string; 또는 문자열의 반복 가능 항목 필수
동일한 파일을 참조하는 미러 URL의 목록입니다.
output string; 또는 라벨 또는 path 기본값은 ''
입니다. 저장소 디렉터리를 기준으로 보관 파일의 압축을 해제할 디렉터리의 경로입니다.
sha256 string; 기본값은 ''
입니다. 다운로드한 파일의 예상 SHA-256 해시입니다. 이는 다운로드한 파일의 SHA-256 해시와 일치해야 합니다. 원격 파일이 변경될 수 있으므로 SHA-256을 생략하면 보안 위험이 발생합니다. 기껏해야 이 필드를 생략하면 빌드가 밀폐되지 않게 됩니다. 개발을 간소화하기 위한 선택사항이지만 출시 전에 설정해야 합니다. 제공된 경우 먼저 저장소 캐시에서 지정된 해시가 있는 파일을 확인합니다. 캐시에서 파일을 찾을 수 없는 경우에만 다운로드가 시도됩니다. 다운로드가 완료되면 파일이 캐시에 추가됩니다.
type string; 기본값은 ''
입니다. 다운로드한 파일의 보관 파일 유형입니다. 기본적으로 보관 파일 유형은 URL의 파일 확장자에 따라 결정됩니다. 파일에 확장자가 없는 경우 'zip', 'jar', 'war', 'aar', 'tar', 'tar.gz', 'tgz', 'tar.xz', 'txz', '.tar.zst', '.tzst', 'tar.bz2', '.bz2', '.debz2', 'aar', 'tar', 'tar.gz', 'tgz', 'tar.xz'를 명시적으로 지정할 수 있습니다. 여기에서 확인하세요.
stripPrefix string; 기본값은 ''
입니다. 추출된 파일에서 삭제할 디렉터리 프리픽스입니다. 대부분의 보관 파일에는 보관 파일의 모든 파일을 포함하는 최상위 디렉터리가 포함되어 있습니다. build_file에서 이 접두사를 반복해서 지정하는 대신 이 필드를 사용하여 추출된 파일에서 접두사를 제거할 수 있습니다.
allow_fail bool; 기본값은 False
입니다. 설정하면 실패한 다운로드에서 오류가 발생하는 대신 반환 값에 오류를 표시합니다.
canonical_id string; 기본값은 ''
입니다. 설정된 경우, 파일이 동일한 표준 ID로 캐시에 추가된 경우로 캐시 적중을 제한합니다. 기본적으로 캐싱은 체크섬을 사용합니다. (sha256 또는 integrity)
auth dict; 기본값은 {}
입니다. 일부 URL에 대한 인증 정보를 지정하는 선택적 사전입니다.
headers dict; 기본값은 {}
입니다. 모든 URL의 http 헤더를 지정하는 선택적 사전입니다.
integrity string; 기본값은 ''
입니다. 하위 리소스 무결성 형식으로 다운로드한 파일의 예상 체크섬입니다. 이는 다운로드한 파일의 체크섬과 일치해야 합니다. 원격 파일이 변경될 수 있으므로 체크섬을 생략하면 보안 위험이 있습니다. 기껏해야 이 필드를 생략하면 빌드가 밀폐되지 않게 됩니다. 개발을 간소화하기 위한 선택사항이지만 출시 전에 설정해야 합니다. 제공되는 경우 먼저 저장소 캐시에서 지정된 체크섬이 있는 파일이 있는지 검사합니다. 캐시에서 파일을 찾을 수 없는 경우에만 다운로드가 시도됩니다. 다운로드가 완료되면 파일이 캐시에 추가됩니다.
rename_files dict; 기본값은 {}
입니다. 추출 중 이름을 바꿀 파일을 지정하는 dict(선택사항)입니다. 키와 일치하는 이름을 가진 보관처리 항목의 이름이 디렉터리 접두어 조정 이전의 값으로 변경됩니다. 유니코드가 아닌 파일 이름을 포함하거나 대소문자를 구분하지 않는 파일 시스템에서 동일한 경로로 추출하는 파일이 있는 보관 파일을 추출하는 데 사용할 수 있습니다.

execute

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

인수 목록에서 지정된 명령어를 실행합니다. 명령어의 실행 시간은 timeout (초 단위, 기본값은 600초)로 제한됩니다. 이 메서드는 명령어의 출력이 포함된 exec_result 구조를 반환합니다. environment 맵은 프로세스에 전달할 일부 환경 변수를 재정의하는 데 사용할 수 있습니다.

매개변수

매개변수 설명
arguments sequence; 필수
인수의 목록으로, 첫 번째 요소는 실행할 프로그램의 경로여야 합니다.
timeout int; 기본값은 600
입니다. 명령어의 최대 지속 시간 (초)입니다. 기본값은 600초입니다.
environment dict; 기본값은 {}
입니다. 일부 환경 변수가 프로세스에 전달되도록 강제 설정합니다.
quiet bool; 기본값은 True
입니다. stdout 및 stderr을 터미널에 출력해야 하는 경우
working_directory string; 기본값은 ""
입니다. 명령어 실행을 위한 작업 디렉터리 저장소 루트 또는 절대값을 기준으로 할 수 있습니다. 기본값은 저장소 루트입니다.

extension_metadata

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

모듈 확장 프로그램의 구현 함수에서 반환될 수 있는 불투명 객체를 구성하여 확장 프로그램에서 생성한 저장소에 대한 메타데이터를 Bazel에 제공합니다.

매개변수

매개변수 설명
root_module_direct_deps stringsequence; 또는 string; 또는 None 기본값은 None
입니다. 확장 프로그램이 루트 모듈의 직접 종속 항목으로 간주되는 저장소의 이름입니다. 루트 모듈이 추가 저장소를 가져오거나 use_repo를 통해 이러한 저장소를 모두 가져오지 않는 경우 Bazel은 확장 프로그램이 평가될 때 경고를 출력하여 사용자에게 bazel mod tidy를 실행하여 use_repo 호출을 자동으로 수정하도록 지시합니다.

root_module_direct_deps 중 하나이며 확장 프로그램이 평가될 때 경고와 Fixup 명령어를 출력합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나가 지정되면 다른 항목도 함께 지정되어야 합니다. 이 두 매개변수로 지정된 목록은 분리해야 합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 정확히 하나를 특수 값 "all"로 설정할 수 있습니다. 이 값은 확장 프로그램에서 생성된 모든 저장소의 이름이 있는 목록이 값으로 지정된 것처럼 처리됩니다.

root_module_direct_dev_deps stringsequence; 또는 string; 또는 None 기본값은 None
입니다. 확장 프로그램이 루트 모듈의 직접 개발 종속 항목으로 간주되는 저장소의 이름입니다. 루트 모듈이 추가 저장소를 가져오거나 use_extension(..., dev_dependency = True)로 만든 확장 프로그램 프록시에서 use_repo를 통해 이러한 저장소를 모두 가져오지 않는 경우 Bazel은 확장 프로그램이 평가될 때 경고를 출력하여 사용자에게 bazel mod tidy를 실행하여 use_repo 호출을 자동으로 수정하도록 안내합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나가 지정되면 다른 항목도 함께 지정되어야 합니다. 이 두 매개변수로 지정된 목록은 분리해야 합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 정확히 하나를 특수 값 "all"로 설정할 수 있습니다. 이 값은 확장 프로그램에서 생성된 모든 저장소의 이름이 있는 목록이 값으로 지정된 것처럼 처리됩니다.

reproducible bool; 기본값은 False
입니다. 이 모듈 확장 프로그램이 완전한 재현성을 보장하므로 잠금 파일에 저장해서는 안 된다고 명시합니다.

추출

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

저장소 디렉터리에 보관 파일을 추출합니다.

매개변수

매개변수 설명
archive string; 또는 라벨 또는 path 필수
압축해제할 보관 파일의 경로로, 저장소 디렉터리를 기준으로 합니다.
output string; 또는 라벨 또는 path 기본값은 ''
입니다. 보관 파일이 압축 해제될 디렉터리의 경로를 저장소 디렉터리를 기준으로 합니다.
stripPrefix string; 기본값은 ''
입니다. 디렉터리 접두어를 추가하여 압축 해제된 파일에서 제거합니다. 대부분의 보관 파일에는 보관 파일의 모든 파일을 포함하는 최상위 디렉터리가 포함되어 있습니다. build_file에서 이 접두사를 반복해서 지정하는 대신 이 필드를 사용하여 추출된 파일에서 접두사를 제거할 수 있습니다.
rename_files dict; 기본값은 {}
입니다. 추출 중 이름을 바꿀 파일을 지정하는 dict(선택사항)입니다. 키와 일치하는 이름을 가진 보관처리 항목의 이름이 디렉터리 접두어 조정 이전의 값으로 변경됩니다. 유니코드가 아닌 파일 이름을 포함하거나 대소문자를 구분하지 않는 파일 시스템에서 동일한 경로로 추출하는 파일이 있는 보관 파일을 추출하는 데 사용할 수 있습니다.
watch_archive string; 기본값은 'auto'
입니다. 보관 파일을 감상할지 여부를 지정합니다. 문자열 'yes', 'no' 또는 'auto'일 수 있습니다. 'yes' 전달 watch() 메서드를 즉시 호출하는 것과 같습니다. '아니요'를 전달 파일을 보려고 시도하지 않습니다. 'auto'를 전달하여 합법적인 경우에만 파일 보기를 시도합니다 (자세한 내용은 watch() 문서 참고).

파일

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

제공된 콘텐츠로 저장소 디렉터리에 파일을 생성합니다.

매개변수

매개변수 설명
path string; 또는 라벨 또는 path 필수
저장소 디렉터리를 기준으로 한, 생성할 파일의 상대 경로입니다.
content string; 기본값은 ''
입니다. 생성할 파일의 콘텐츠로, 기본적으로 비어 있습니다.
executable bool; 기본값은 True
입니다. 생성된 파일에서 실행 가능 플래그를 기본적으로 true로 설정합니다.
legacy_utf8 bool; 기본값은 True
입니다. 파일 콘텐츠를 UTF-8로 인코딩합니다(기본적으로 true). 향후 버전에서는 기본값이 변경되고 이 매개변수가 삭제됩니다.

getenv

string module_ctx.getenv(name, default=None)

name 환경 변수의 값을(있는 경우) 문자열로 반환하고 그렇지 않으면 default을 반환합니다.

점진적으로 빌드할 때 name로 이름이 지정된 변수 값이 변경되면 이 저장소를 다시 가져옵니다.

매개변수

매개변수 설명
name string; 필수
원하는 환경 변수의 이름입니다.
default string; 또는 None 기본값은 None
입니다. name를 찾을 수 없는 경우 반환할 기본값입니다.
None을(를) 반환할 수 있습니다.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

지정된 태그가 devDependency = True를 사용한 use_extension 호출의 결과에 지정되었는지 여부를 반환합니다.

매개변수

매개변수 설명
tag bazel_module_tag; 필수
bazel_module.tags에서 가져온 태그

modules

list module_ctx.modules

이 모듈 확장 프로그램을 사용하는 외부 종속 항목 그래프에 있는 모든 Bazel 모듈의 목록입니다. 각 모듈은 이 확장 프로그램에 지정된 모든 태그를 노출하는 bazel_module 객체입니다. 이 사전의 반복 순서는 루트 모듈에서 시작하는 상세 검색 순서와 동일합니다.

os

repository_os module_ctx.os

시스템의 정보에 액세스하는 구조체입니다.

경로

path module_ctx.path(path)

문자열, 라벨 또는 경로에서 경로를 반환합니다. 상대 경로인 경우 저장소 디렉터리를 기준으로 확인됩니다. 경로가 라벨인 경우 해당 파일의 경로로 확인됩니다. 원격 저장소는 분석 단계에서 실행되므로 대상 결과에 종속될 수 없습니다 (라벨은 생성되지 않은 파일을 가리켜야 함). 경로가 경로인 경우 해당 경로를 있는 그대로 반환합니다.

매개변수

매개변수 설명
path string; 또는 라벨 또는 path 필수
경로를 만들 string, Label 또는 path입니다.

read

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

파일 시스템에 있는 파일의 콘텐츠를 읽습니다.

매개변수

매개변수 설명
path string; 또는 라벨 또는 path 필수
읽을 파일의 경로입니다.
watch string; 기본값은 'auto'
입니다. 파일을 시청할지 선택합니다. 문자열 'yes', 'no' 또는 'auto'일 수 있습니다. 'yes' 전달 watch() 메서드를 즉시 호출하는 것과 같습니다. '아니요'를 전달 파일을 보려고 시도하지 않습니다. 'auto'를 전달하여 합법적인 경우에만 파일 보기를 시도합니다 (자세한 내용은 watch() 문서 참고).

report_progress

None module_ctx.report_progress(status='')

이 저장소 또는 모듈 확장 프로그램 가져오기의 진행 상태를 업데이트합니다.

매개변수

매개변수 설명
status string; 기본값은 ''
입니다. 가져오기 진행 상황의 현재 상태를 설명하는 string입니다.

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

루트 모듈이 이 확장 프로그램을 개발 이외의 종속 항목으로 사용하는지 여부입니다.

시계

None module_ctx.watch(path)

지정된 경로의 변경 사항이 있는지 여부(존재 여부와 파일 또는 디렉터리)를 감시하도록 Bazel에 지시합니다. 파일 또는 디렉터리를 변경하면 이 저장소 또는 모듈 확장 프로그램이 무효화되어 다음번에 다시 가져오거나 다시 평가됩니다.

'변경' 파일 콘텐츠의 변경사항을 포함합니다 (경로가 파일인 경우). 경로가 파일이지만 현재 디렉터리이거나 그 반대인 경우 경로가 기존 경로의 시작 또는 중지인지를 확인할 수 있습니다. 특히 경로가 디렉터리인 경우 디렉터리 아래의 파일에 대한 변경사항은 포함되지 않습니다. 이러한 경우에는 path.readdir()를 대신 사용하세요.

현재 가져오는 저장소 내부 또는 현재 모듈 확장 프로그램의 작업 디렉터리 내부에서 경로를 감시하려고 하면 오류가 발생합니다. 모듈 확장 프로그램이 현재 Bazel 작업공간 외부의 경로를 보려고 시도하면 오류가 발생합니다.

매개변수

매개변수 설명
path string; 또는 라벨 또는 path 필수
감시할 파일의 경로입니다.

어떤

path module_ctx.which(program)

상응하는 프로그램의 path를 반환하거나 경로에 그러한 프로그램이 없는 경우 None를 반환합니다.

매개변수

매개변수 설명
program string; 필수
경로에서 찾을 프로그래밍
None을(를) 반환할 수 있습니다.