Encapsula variáveis de modelo, ou seja, variáveis que podem ser referenciadas por strings como $(VARIABLE)
em arquivos BUILD e expandidas por ctx.expand_make_variables
e implicitamente em determinados atributos de regras integradas.
TemplateVariableInfo
pode ser criado chamando o construtor epônimo com um dicionário de string para string como argumento que especifica as variáveis fornecidas.
Exemplo: platform_common.TemplateVariableInfo({'FOO': 'bar'})
Membros
to_json
string TemplateVariableInfo.to_json()
---incompatible_struct_has_no_methods
. Use essa flag para verificar se seu código é compatível com a remoção iminente. Cria uma string JSON do parâmetro struct. Esse método só funciona se todos os elementos da struct (recursivamente) forem strings, números inteiros, booleanos, outras structs, uma lista desses tipos ou um dicionário com chaves de string e valores desses tipos. Aspas e novas linhas em strings são escapadas. Exemplos:
struct(key=123).to_json() # {"key":123} struct(key=True).to_json() # {"key":true} struct(key=[1, 2, 3]).to_json() # {"key":[1,2,3]} struct(key='text').to_json() # {"key":"text"} struct(key=struct(inner_key='text')).to_json() # {"key":{"inner_key":"text"}} struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json() # {"key":[{"inner_key":1},{"inner_key":2}]} struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json() # {"key":{"inner_key":{"inner_inner_key":"text"}}}
Descontinuado. Use json.encode(x) ou json.encode_indent(x), que funcionam para valores diferentes de structs e não poluem o namespace do campo struct.
to_proto
string TemplateVariableInfo.to_proto()
---incompatible_struct_has_no_methods
. Use essa flag para verificar se seu código é compatível com a remoção iminente. Cria uma mensagem de texto com base no parâmetro struct. Esse método só funciona se todos os elementos da estrutura (recursivamente) forem strings, números inteiros, booleanos, outras estruturas ou dicionários ou listas desses tipos. Aspas e novas linhas em strings são escapadas. As chaves de struct são iteradas na ordem classificada. Exemplos:
struct(key=123).to_proto() # key: 123 struct(key=True).to_proto() # key: true struct(key=[1, 2, 3]).to_proto() # key: 1 # key: 2 # key: 3 struct(key='text').to_proto() # key: "text" struct(key=struct(inner_key='text')).to_proto() # key { # inner_key: "text" # } struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto() # key { # inner_key: 1 # } # key { # inner_key: 2 # } struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto() # key { # inner_key { # inner_inner_key: "text" # } # } struct(foo={4: 3, 2: 1}).to_proto() # foo: { # key: 4 # value: 3 # } # foo: { # key: 2 # value: 1 # }
Descontinuado: use proto.encode_text(x).
variables
dict TemplateVariableInfo.variables