Mengenkapsulasi variabel template, yaitu variabel yang dapat dirujuk oleh string seperti $(VARIABLE)
dalam file BUILD dan diperluas oleh ctx.expand_make_variables
serta secara implisit dalam atribut aturan bawaan tertentu.
TemplateVariableInfo
dapat dibuat dengan memanggil konstruktor eponimnya dengan perintah string ke string sebagai argumen yang menentukan variabel yang disediakan.
Contoh: platform_common.TemplateVariableInfo({'FOO': 'bar'})
Anggota
to_json
string TemplateVariableInfo.to_json()
---incompatible_struct_has_no_methods
. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi. Membuat string JSON dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (rekursif) adalah string, int, boolean, struct lainnya, daftar jenis ini, atau kamus dengan kunci string dan nilai jenis ini. Tanda kutip dan baris baru dalam string akan di-escape. Contoh:
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"}}}
Tidak digunakan lagi: sebagai gantinya, gunakan json.encode(x) atau json.encode_indent(x), yang berfungsi untuk nilai selain struct dan tidak mencemari namespace kolom struct.
to_proto
string TemplateVariableInfo.to_proto()
---incompatible_struct_has_no_methods
. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi. Membuat pesan teks dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (rekursif) adalah string, int, boolean, struct atau dict lain, atau daftar jenis ini. Tanda kutip dan baris baru dalam string akan di-escape. Kunci struktur diiterasi dalam urutan yang diurutkan. Contoh:
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 # }
Tidak digunakan lagi: sebagai gantinya, gunakan proto.encode_text(x).
variabel
dict TemplateVariableInfo.variables