속성

문제 신고 소스 보기

이 모듈은 규칙이나 관점의 속성 스키마를 정의하는 최상위 모듈입니다. 각 함수는 단일 속성의 스키마를 나타내는 객체를 반환합니다. 이러한 객체는 rule()aspect()attrs 사전 인수 값으로 사용됩니다.

속성 정의사용에 대한 자세한 내용은 규칙 페이지를 참조하세요.

구성원

bool

Attribute attr.bool(default=False, doc=None, mandatory=False)

불리언 속성의 스키마를 만듭니다. 이에 상응하는 ctx.attr 속성은 bool 유형입니다.

매개변수

매개변수 설명
default 기본값은 False입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).

int

Attribute attr.int(default=0, doc=None, mandatory=False, values=[])

정수 속성의 스키마를 만듭니다. 값은 부호 있는 32비트 범위 내에 있어야 합니다. 이에 상응하는 ctx.attr 속성은 int 유형입니다.

매개변수

매개변수 설명
default 기본값은 0입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
values intsequence이며 기본값은 []입니다.
속성에 허용되는 값의 목록입니다. 다른 값이 지정되면 오류가 발생합니다.

int_list

Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)

정수 목록 속성의 스키마를 만듭니다. 각 요소는 부호 있는 32비트 범위 내에 있어야 합니다.

매개변수

매개변수 설명
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default intsequence이며 기본값은 []입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.

라벨

Attribute attr.label(default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[])

라벨 속성의 스키마를 만듭니다. 종속 항목 속성입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. (이름이 변경되었을 수 있는) 저장소를 비롯한 라벨 경로의 상대 부분은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

규칙 구현 함수 내에서 분석 시 ctx.attr에서 속성 값을 가져올 때 라벨이 상응하는 Target로 대체됩니다. 이렇게 하면 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

이러한 종류의 속성은 일반 소스 파일 외에도 도구(예: 컴파일러)를 나타내는 데 사용되는 경우가 많습니다. 이러한 도구는 소스 파일과 마찬가지로 종속 항목으로 간주됩니다. 사용자가 BUILD 파일에서 규칙을 사용할 때마다 도구의 라벨을 지정하지 않아도 되도록 표준 도구의 라벨을 이 속성의 default 값으로 하드 코딩할 수 있습니다. 또한 사용자가 이 기본값을 재정의하지 못하게 하려면 밑줄로 시작하는 이름을 지정하여 속성을 비공개로 설정하면 됩니다. 자세한 내용은 규칙 페이지를 참조하세요.

매개변수

매개변수 설명
default Label, string, LateBoundDefault, NativeComputedDefault, function 또는 None, 기본값은 None
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없을 때 사용할 기본값입니다.문자열 또는 Label 함수를 사용하여 기본값을 지정하세요(예: attr.label(default = "//a:b")).
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
executable 기본값은 False입니다.
종속 항목을 실행할 수 있어야 하는 경우 true입니다. 즉, 라벨은 실행 파일 또는 실행 파일을 출력하는 규칙을 참조해야 합니다. ctx.executable.<attribute_name>를 사용하여 라벨에 액세스합니다.
allow_files bool, 문자열시퀀스 또는 None. 기본값은 None입니다.
File 타겟의 허용 여부입니다. True, False (기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_single_file 기본값은 None입니다.
이는 라벨이 단일 파일과 일치해야 한다는 제한사항을 가진 allow_files과 유사합니다. ctx.file.<attribute_name>를 통해 액세스합니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
providers 기본값은 []입니다.
이 속성에 표시되는 종속 항목으로 제공해야 하는 제공자입니다.

이 인수의 형식은 제공자 목록 목록입니다. provider()에서 반환된 *Info 객체 (기존 제공자의 경우 문자열 이름)입니다. 종속 항목은 내부 목록 중 하나 이상에서 언급된 모든 제공자를 반환해야 합니다. 편의를 위해 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소가 한 개 있는 외부 목록으로 래핑됩니다. 종속 항목 규칙이 provides 매개변수에 이러한 제공자를 공지할 필요는 없지만 권장사항으로 간주됩니다.

allow_rules 문자열시퀀스 또는 None. 기본값은 None
허용되는 규칙 대상 (클래스 이름)입니다. 지원 중단 (호환성을 위해서만 유지됨)이므로 대신 제공자를 사용하세요.
cfg 기본값은 None입니다.
속성의 구성입니다. 종속 항목이 execution platform용으로 빌드되었음을 나타내는 "exec" 또는 종속 항목이 target platform용으로 빌드되었음을 나타내는 "target"일 수 있습니다. 이러한 차이의 일반적인 예로는 모바일 앱을 빌드할 때가 있습니다. 여기서 target platformAndroid 또는 iOS이고 execution platformLinux, macOS 또는 Windows입니다. 대상 구성에서 실수로 호스트 도구를 빌드하지 못하도록 executable가 True인 경우 이 매개변수가 필요합니다. "target"는 시맨틱 효과가 없으므로 의도를 명확히 하는 데 실제로 도움이 되지 않는다면 executable가 False인 경우 설정하지 마세요.
aspects Aspectsequence입니다. 기본값은 []
입니다. 이 속성으로 지정된 종속 항목에 적용되어야 하는 관점입니다.

label_keyed_string_dict

Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

키는 라벨이고 값은 문자열인 사전을 보유한 속성의 스키마를 만듭니다. 종속 항목 속성입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. (이름이 변경되었을 수 있는) 저장소를 비롯한 라벨 경로의 상대 부분은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

규칙 구현 함수 내에서 분석 시 ctx.attr에서 속성 값을 가져올 때 라벨이 상응하는 Target로 대체됩니다. 이렇게 하면 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

매개변수

매개변수 설명
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default dict 또는 function입니다. 기본값은 {}입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다. 문자열이나 Label 함수를 사용하여 기본값을 지정합니다(예: attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"})).
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
allow_files bool, 문자열시퀀스 또는 None. 기본값은 None입니다.
File 타겟의 허용 여부입니다. True, False (기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_rules 문자열시퀀스 또는 None. 기본값은 None
허용되는 규칙 대상 (클래스 이름)입니다. 지원 중단 (호환성을 위해서만 유지됨)이므로 대신 제공자를 사용하세요.
providers 기본값은 []입니다.
이 속성에 표시되는 종속 항목으로 제공해야 하는 제공자입니다.

이 인수의 형식은 제공자 목록 목록입니다. provider()에서 반환된 *Info 객체 (기존 제공자의 경우 문자열 이름)입니다. 종속 항목은 내부 목록 중 하나 이상에서 언급된 모든 제공자를 반환해야 합니다. 편의를 위해 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소가 한 개 있는 외부 목록으로 래핑됩니다. 종속 항목 규칙이 provides 매개변수에 이러한 제공자를 공지할 필요는 없지만 권장사항으로 간주됩니다.

flags 문자열시퀀스. 기본값은 []입니다.
지원 중단되었으며 삭제됩니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
cfg 기본값은 None입니다.
속성의 구성입니다. 종속 항목이 execution platform용으로 빌드되었음을 나타내는 "exec" 또는 종속 항목이 target platform용으로 빌드되었음을 나타내는 "target"일 수 있습니다. 이러한 차이의 일반적인 예로는 모바일 앱을 빌드할 때가 있습니다. 여기서 target platformAndroid 또는 iOS이고 execution platformLinux, macOS 또는 Windows입니다.
aspects Aspectsequence입니다. 기본값은 []
입니다. 이 속성으로 지정된 종속 항목에 적용되어야 하는 관점입니다.

label_list

Attribute attr.label_list(allow_empty=True, *, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

라벨 목록 속성의 스키마를 만듭니다. 종속 항목 속성입니다. 상응하는 ctx.attr 속성은 Target 목록 유형입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. (이름이 변경되었을 수 있는) 저장소를 비롯한 라벨 경로의 상대 부분은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

규칙 구현 함수 내에서 분석 시 ctx.attr에서 속성 값을 가져올 때 라벨이 상응하는 Target로 대체됩니다. 이렇게 하면 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

매개변수

매개변수 설명
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default Labelsequence 또는 function이며 기본값은 []입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다. 문자열 또는 Label 함수를 사용하여 기본값을 지정하세요(예: attr.label_list(default = ["//a:b", "//a:c"])).
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
allow_files bool, 문자열시퀀스 또는 None. 기본값은 None입니다.
File 타겟의 허용 여부입니다. True, False (기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_rules 문자열시퀀스 또는 None. 기본값은 None
허용되는 규칙 대상 (클래스 이름)입니다. 지원 중단 (호환성을 위해서만 유지됨)이므로 대신 제공자를 사용하세요.
providers 기본값은 []입니다.
이 속성에 표시되는 종속 항목으로 제공해야 하는 제공자입니다.

이 인수의 형식은 제공자 목록 목록입니다. provider()에서 반환된 *Info 객체 (기존 제공자의 경우 문자열 이름)입니다. 종속 항목은 내부 목록 중 하나 이상에서 언급된 모든 제공자를 반환해야 합니다. 편의를 위해 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소가 한 개 있는 외부 목록으로 래핑됩니다. 종속 항목 규칙이 provides 매개변수에 이러한 제공자를 공지할 필요는 없지만 권장사항으로 간주됩니다.

flags 문자열시퀀스. 기본값은 []입니다.
지원 중단되었으며 삭제됩니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
cfg 기본값은 None입니다.
속성의 구성입니다. 종속 항목이 execution platform용으로 빌드되었음을 나타내는 "exec" 또는 종속 항목이 target platform용으로 빌드되었음을 나타내는 "target"일 수 있습니다. 이러한 차이의 일반적인 예로는 모바일 앱을 빌드할 때가 있습니다. 여기서 target platformAndroid 또는 iOS이고 execution platformLinux, macOS 또는 Windows입니다.
aspects Aspectsequence입니다. 기본값은 []
입니다. 이 속성으로 지정된 종속 항목에 적용되어야 하는 관점입니다.

출력

Attribute attr.output(doc=None, mandatory=False)

출력 (label) 속성의 스키마를 만듭니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. (이름이 변경되었을 수 있는) 저장소를 비롯한 라벨 경로의 상대 부분은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 ctx.outputs를 사용하여 상응하는 File를 가져올 수 있습니다.

매개변수

매개변수 설명
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).

output_list

Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)

출력 목록 속성의 스키마를 만듭니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. (이름이 변경되었을 수 있는) 저장소를 비롯한 라벨 경로의 상대 부분은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 ctx.outputs를 사용하여 상응하는 File를 가져올 수 있습니다.

매개변수

매개변수 설명
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).

문자열

Attribute attr.string(default='', doc=None, mandatory=False, values=[])

string 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
default string 또는 NativeComputedDefault. 기본값은 ''
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
values 문자열로 구성된 순서입니다. 기본값은 []입니다.
속성에 허용되는 값의 목록입니다. 다른 값이 지정되면 오류가 발생합니다.

string_dict

Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)

키와 값이 문자열인 사전을 보유한 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default 기본값은 {}입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).

string_list

Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)

문자열 목록 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default stringsequence이거나 NativeComputedDefault입니다. 기본값은 []입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.

string_list_dict

Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)

키는 문자열이고 값은 문자열 목록인 사전을 보유한 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
allow_empty 기본값은 True입니다.
속성이 비어 있을 수 있는 경우 true입니다.
default 기본값은 {}입니다.
규칙을 인스턴스화할 때 이 속성에 지정된 값이 없는 경우 사용할 기본값입니다.
doc string 또는 None. 기본값은 None
문서 생성 도구에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory 기본값은 False입니다.
true인 경우 값을 명시적으로 지정해야 합니다 (default가 있는 경우에도 해당).