규칙 또는 측면의 속성 스키마를 정의하기 위한 최상위 모듈입니다. 각 함수는 단일 속성의 스키마를 나타내는 객체를 반환합니다. 이러한 객체는 rule()
및 aspect()
의 attrs
사전 인수 값으로 사용됩니다.
속성 정의 및 사용에 관한 자세한 내용은 규칙 페이지를 참고하세요.
회원
- 부울
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- output
- output_list
- 문자열
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
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=[])
ctx.attr
속성은 int
유형입니다.
매개변수
매개변수 | 설명 |
---|---|
default
|
기본값은 0 입니다.규칙을 인스턴스화할 때 이 속성에 값을 지정하지 않을 경우 사용할 기본값입니다. |
doc
|
string 또는 None 이며 기본값은 None 입니다.문서 생성 도구로 추출할 수 있는 속성에 대한 설명입니다. |
mandatory
|
기본값은 False 입니다.true인 경우 default 가 있더라도 값을 명시적으로 지정해야 합니다.
|
values
|
int 시퀀스입니다. 기본값은 [] 입니다.속성에 허용되는 값의 목록입니다. 다른 값이 주어지면 오류가 발생합니다. |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
매개변수
매개변수 | 설명 |
---|---|
mandatory
|
기본값은 False 입니다.true인 경우 값을 명시적으로 지정해야 합니다( default 가 있는 경우에도).
|
allow_empty
|
기본값은 True 입니다. 속성이 비어 있을 수 있는 경우 true입니다. |
default
|
int의 sequence. 기본값은 [] 입니다.규칙을 인스턴스화할 때 이 속성에 값을 지정하지 않을 경우 사용할 기본값입니다. |
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=[], flags=[])
라벨 속성의 스키마를 만듭니다. 이는 종속 항목 속성입니다.
이 속성에는 고유한 Label
값이 포함됩니다. Label
대신 문자열이 제공되면 라벨 생성자를 사용하여 변환됩니다. 이름이 변경될 수 있는 저장소를 포함하여 라벨 경로의 상대 부분은 인스턴스화된 타겟의 패키지에 관해 확인됩니다.
분석 시간 (규칙의 구현 함수 내)에 ctx.attr
에서 속성 값을 검색할 때 라벨이 상응하는 Target
로 대체됩니다. 이렇게 하면 현재 타겟의 종속 항목 제공자에 액세스할 수 있습니다.
이러한 종류의 속성은 일반적인 소스 파일 외에도 컴파일러와 같은 도구를 참조하는 데 자주 사용됩니다. 이러한 도구는 소스 파일과 마찬가지로 종속 항목으로 간주됩니다. 사용자가 BUILD 파일에서 규칙을 사용할 때마다 도구의 라벨을 지정하지 않아도 되도록 하려면 표준 도구의 라벨을 이 속성의 default
값으로 하드코딩하면 됩니다. 또한 사용자가 이 기본값을 재정의하지 못하게 하려면 밑줄로 시작하는 이름을 지정하여 속성을 비공개로 설정할 수 있습니다. 자세한 내용은 규칙 페이지를 참고하세요.
매개변수
매개변수 | 설명 |
---|---|
default
|
라벨, 문자열, LateBoundDefault, NativeComputedDefault, 함수, 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
|
기본값은 [] 이 속성에 표시되는 종속 항목에서 제공해야 하는 제공자입니다. 이 인수의 형식은 제공업체 목록의 목록입니다. 즉, |
allow_rules
|
문자열의 시퀀스 또는 None 입니다. 기본값은 None 입니다.허용되는 규칙 타겟(클래스 이름)입니다. 지원 중단되었습니다 (호환성을 위해 유지됨). 대신 제공자를 사용하세요. |
cfg
|
기본값은 None 속성의 구성입니다. 이는 종속 항목이 execution platform 용으로 빌드되었음을 나타내는 "exec" 이거나 종속 항목이 target platform 용으로 빌드되었음을 나타내는 "target" 일 수 있습니다. 차이점의 일반적인 예는 모바일 앱을 빌드할 때입니다. 여기서 target platform 은 Android 또는 iOS 이고 execution platform 는 Linux , macOS 또는 Windows 입니다. 이 매개변수는 타겟 구성에서 실수로 호스트 도구를 빌드하지 않도록 하기 위해 executable 이 True인 경우 필요합니다. "target" 에는 시맨틱 효과가 없으므로 의도를 명확히 하는 데 도움이 되지 않는다면 executable 이 False인 경우 설정하지 마세요.
|
aspects
|
Aspect의 시퀀스입니다. 기본값은 [] 입니다. 이 속성으로 지정된 종속 항목에 적용해야 하는 Aspect입니다. |
flags
|
string의 sequence입니다. 기본값은 [] 입니다.지원 중단되었으며 삭제될 예정입니다. |
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
|
기본값은 [] 이 속성에 표시되는 종속 항목에서 제공해야 하는 제공자입니다. 이 인수의 형식은 제공자 목록 즉, |
flags
|
문자열의 시퀀스입니다. 기본값은 [] 입니다. 지원 중단되었으며 삭제될 예정입니다. |
mandatory
|
기본값은 False 입니다.true인 경우 값을 명시적으로 지정해야 합니다( default 가 있는 경우에도).
|
cfg
|
기본값은 None 입니다.속성의 구성입니다. 종속 항목이 execution platform 용으로 빌드되었음을 나타내는 "exec" 이거나 target platform 용으로 빌드되었음을 나타내는 "target" 일 수 있습니다. 이러한 차이의 일반적인 예는 모바일 앱을 빌드할 때 target platform 가 Android 또는 iOS 이고 execution platform 가 Linux , macOS 또는 Windows 인 경우입니다.
|
aspects
|
Aspect의 시퀀스입니다. 기본값은 [] 입니다. 이 속성으로 지정된 종속 항목에 적용해야 하는 Aspect입니다. |
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
|
라벨의 시퀀스 또는 함수입니다. 기본값은 [] 입니다.규칙을 인스턴스화할 때 이 속성의 값이 지정되지 않은 경우 사용할 기본값입니다. 문자열 또는 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
|
기본값은 [] 이 속성에 표시되는 종속 항목에서 제공해야 하는 제공자입니다. 이 인수의 형식은 제공업체 목록의 목록입니다. 즉, |
flags
|
문자열의 시퀀스입니다. 기본값은 [] 입니다. 지원 중단되었으며 삭제될 예정입니다. |
mandatory
|
기본값은 False 입니다.true인 경우 값을 명시적으로 지정해야 합니다( default 가 있는 경우에도).
|
cfg
|
기본값은 None 속성의 구성입니다. 종속 항목이 execution platform 용으로 빌드되었음을 나타내는 "exec" 이거나 target platform 용으로 빌드되었음을 나타내는 "target" 일 수 있습니다. 차이점의 일반적인 예는 모바일 앱을 빌드할 때입니다. 여기서 target platform 은 Android 또는 iOS 이고 execution platform 는 Linux , macOS 또는 Windows 입니다.
|
aspects
|
Aspect의 시퀀스입니다. 기본값은 [] 입니다. 이 속성으로 지정된 종속 항목에 적용해야 하는 Aspect입니다. |
output
Attribute attr.output(doc=None, mandatory=False)
출력 (라벨) 속성의 스키마를 만듭니다.
이 속성에는 고유한 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=[])
매개변수
매개변수 | 설명 |
---|---|
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_keyed_label_dict
Attribute attr.string_keyed_label_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.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}) )을 지정합니다.
|
doc
|
string 또는 None ; 기본값은 None 입니다.문서 생성 도구로 추출할 수 있는 속성의 설명입니다. |
allow_files
|
bool 또는 string의 sequence 또는 None . 기본값은 None 입니다.File 타겟이 허용되는지 여부입니다. True , False (기본값) 또는 허용되는 파일 확장자 (예: [".cc", ".cpp"] ) 목록일 수 있습니다.
|
allow_rules
|
문자열의 시퀀스 또는 None 입니다. 기본값은 None 입니다.허용되는 규칙 타겟(클래스 이름)입니다. 지원 중단되었습니다 (호환성을 위해 유지됨). 대신 제공자를 사용하세요. |
providers
|
기본값은 [] 이 속성에 표시되는 종속 항목에서 제공해야 하는 제공자입니다. 이 인수의 형식은 제공업체 목록의 목록입니다. 즉, |
flags
|
문자열의 시퀀스입니다. 기본값은 [] 입니다. 지원 중단되었으며 삭제될 예정입니다. |
mandatory
|
기본값은 False 입니다.true인 경우 default 가 있더라도 값을 명시적으로 지정해야 합니다.
|
cfg
|
기본값은 None 입니다.속성의 구성입니다. 종속 항목이 execution platform 용으로 빌드되었음을 나타내는 "exec" 이거나 target platform 용으로 빌드되었음을 나타내는 "target" 일 수 있습니다. 이러한 차이의 일반적인 예는 모바일 앱을 빌드할 때 target platform 가 Android 또는 iOS 이고 execution platform 가 Linux , macOS 또는 Windows 인 경우입니다.
|
aspects
|
Aspect의 시퀀스입니다. 기본값은 [] 입니다. 이 속성으로 지정된 종속 항목에 적용해야 하는 Aspect입니다. |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
매개변수
매개변수 | 설명 |
---|---|
mandatory
|
기본값은 False 입니다.true인 경우 값을 명시적으로 지정해야 합니다( default 가 있는 경우에도).
|
allow_empty
|
기본값은 True 입니다. 속성이 비어 있을 수 있는 경우 true입니다. |
default
|
문자열의 시퀀스 또는 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 가 있는 경우에도).
|