özelliği

. Bu, bir kuralın veya unsurun özellik şemalarını tanımlamak için kullanılan üst düzey bir modüldür. Her işlev, tek bir özelliğin şemasını temsil eden bir nesne döndürür. Bu nesneler, rule() ve aspect() öğesinin attrs sözlük bağımsız değişkeninin değerleri olarak kullanılır.

Özellikleri tanımlama ve kullanma hakkında daha fazla bilgi için Kurallar sayfasına bakın.

Üyeler

bool

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

Boole özelliği için şema oluşturur.

Parametreler

Parametre Açıklama
default varsayılan = Yanlış
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).

int

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

Tam sayı özelliği için şema oluşturur. Değer, imzalı 32 bit aralığında olmalıdır.

Parametreler

Parametre Açıklama
default varsayılan = 0
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
values sequence of ints; varsayılan = []
Özellik için izin verilen değerlerin listesi. Başka herhangi bir değer verilirse hata oluşur.

int_list

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

Tamsayılar listesi özelliği için bir şema oluşturur. Her öğe, imzalı 32 bit aralığında olmalıdır.

Parametreler

Parametre Açıklama
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default sequence of ints; varsayılan = []
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.

etiket

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

Etiket özelliği için bir şema oluşturur. Bu bir bağımlılık özelliğidir.

Bu özellikte benzersiz Label değerleri bulunmaktadır. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. (Yeniden adlandırılabilecek) depo da dahil olmak üzere etiket yolunun göreli bölümleri, örneklenen hedefin paketine göre çözümlenir.

Analiz sırasında (kuralın uygulama işlevinde), ctx.attr özellik değeri alınırken etiketler karşılık gelen Target ile değiştirilir. Bu sayede mevcut hedefin bağımlılıklarının sağlayıcılarına erişebilirsiniz.

Bu tür özellikler, normal kaynak dosyalarına ek olarak genellikle araçlara (örneğin, derleyici) atıfta bulunmak için kullanılır. Bu tür araçlar, kaynak dosyalar gibi bağımlılık olarak kabul edilir. Kullanıcıların, kuralı BUILD dosyalarında her kullandıklarında aracın etiketini belirtmelerini gerektirmemek için standart bir aracın etiketini, bu özelliğin default değeri olarak sabit kodlayabilirsiniz. Kullanıcıların bu varsayılan ayarı geçersiz kılmasını da önlemek istiyorsanız özelliği gizli hale getirmek için alt çizgiyle başlayan bir ad kullanabilirsiniz. Daha fazla bilgi için Kurallar sayfasına göz atın.

Parametreler

Parametre Açıklama
default Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None; varsayılan = Yok
Kural örneklenirken bu özellik için herhangi bir değer belirtilmezse kullanılacak varsayılan değer. Varsayılan değer (ör. attr.label(default = "//a:b")) belirtmek için bir dize veya Label işlevi kullanın.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
executable varsayılan = Yanlış
Bağımlılığın yürütülebilir olması gerekiyorsa doğru değerini döndürür. Bu, etiketin yürütülebilir bir dosyaya veya yürütülebilir dosya oluşturan bir kurala başvurması gerektiği anlamına gelir. ctx.executable.<attribute_name> ile etikete erişin.
allow_files bool; or sequence of strings; or None; varsayılan = Yok
File hedefe izin verilip verilmeyeceği. True, False (varsayılan) veya izin verilen dosya uzantılarının listesi (örneğin, [".cc", ".cpp"]) olabilir.
allow_single_file varsayılan = Yok
Bu, allow_files özelliğine benzer ancak etiketin tek bir Dosyaya karşılık gelmesi gerekir. Bu özelliğe ctx.file.<attribute_name> üzerinden erişebilirsiniz.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
providers varsayılan = []
Bu özellikte görünen herhangi bir bağımlılık tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin bir listesidir. provider() (veya eski bir sağlayıcı varsa dize adı) tarafından döndürülen *Info nesne. Bağımlılık, dahili listelerden en az BİRİNDE belirtilen TÜM sağlayıcıları döndürmelidir. Kolaylık sağlamak amacıyla, bu bağımsız değişken tek düzeyli bir sağlayıcı listesi de olabilir. Bu durumda, tek öğe içeren bir dış listeye yerleştirilir.

allow_rules sequence of strings; or None; varsayılan = Yok
Hangi kural hedeflerine (sınıfların adı) izin verildiği. Bu özellik artık kullanılmamaktadır (yalnızca uyumluluk için korunmuştur), bunun yerine sağlayıcıları kullanın.
cfg varsayılan = Yok
Özelliğin yapılandırması. Bağımlılığın execution platform için derlendiğini belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Aradaki farkın tipik bir örneği, mobil uygulama oluştururken ortaya çıkar. target platform değeri Android veya iOS iken execution platform değeri Linux, macOS veya Windows olduğunda. Hedef yapılandırmada yanlışlıkla ana makine araçlarının oluşturulmasına karşı koruma sağlamak için executable Doğru değerine ayarlanmışsa bu parametre gereklidir. "target" öğesinin anlamsal etkisi yoktur. Bu nedenle, amaçlarınızı netleştirmeye yardımcı olmadığı sürece executable Yanlış değerine ayarlandığında bu ayarı yapmayın.
aspects sequence of Aspects; varsayılan = []
Bu özellik tarafından belirtilen bağımlılığa veya bağımlılıklara uygulanması gereken yönler.

label_keyed_string_dict

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

Sözlüğü içeren bir özellik için şema oluşturur. Burada anahtarlar etiketler, değerler ise dizedir. Bu bir bağımlılık özelliğidir.

Bu özellikte benzersiz Label değerleri bulunmaktadır. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. (Yeniden adlandırılabilecek) depo da dahil olmak üzere etiket yolunun göreli bölümleri, örneklenen hedefin paketine göre çözümlenir.

Analiz sırasında (kuralın uygulama işlevinde), ctx.attr özellik değeri alınırken etiketler karşılık gelen Target ile değiştirilir. Bu sayede mevcut hedefin bağımlılıklarının sağlayıcılarına erişebilirsiniz.

Parametreler

Parametre Açıklama
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default dict; or function; default = {}
Kural örneklenirken bu özellik için herhangi bir değer sağlanmazsa kullanılacak varsayılan değer. Varsayılan değerleri (ör. attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"})) belirtmek için dizeleri veya Label işlevini kullanın.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
allow_files bool; or sequence of strings; or None; varsayılan = Yok
File hedefe izin verilip verilmeyeceği. True, False (varsayılan) veya izin verilen dosya uzantılarının listesi (örneğin, [".cc", ".cpp"]) olabilir.
allow_rules sequence of strings; or None; varsayılan = Yok
Hangi kural hedeflerine (sınıfların adı) izin verildiği. Bu özellik artık kullanılmamaktadır (yalnızca uyumluluk için korunmuştur), bunun yerine sağlayıcıları kullanın.
providers varsayılan = []
Bu özellikte görünen herhangi bir bağımlılık tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin bir listesidir. provider() (veya eski bir sağlayıcı varsa dize adı) tarafından döndürülen *Info nesne. Bağımlılık, dahili listelerden en az BİRİNDE belirtilen TÜM sağlayıcıları döndürmelidir. Kolaylık sağlamak amacıyla, bu bağımsız değişken tek düzeyli bir sağlayıcı listesi de olabilir. Bu durumda, tek öğe içeren bir dış listeye yerleştirilir.

flags sequence of strings; varsayılan = []
Kullanımdan kaldırıldı, kaldırılacak.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
cfg varsayılan = Yok
Özelliğin yapılandırması. Bağımlılığın execution platform için derlendiğini belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Aradaki farkın tipik bir örneği, mobil uygulama oluştururken ortaya çıkar. target platform değeri Android veya iOS iken execution platform değeri Linux, macOS veya Windows olduğunda.
aspects sequence of Aspects; varsayılan = []
Bu özellik tarafından belirtilen bağımlılığa veya bağımlılıklara uygulanması gereken yönler.

label_list

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

Etiket listesi özelliği için şema oluşturur. Bu bir bağımlılık özelliğidir.

Bu özellikte benzersiz Label değerleri bulunmaktadır. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. (Yeniden adlandırılabilecek) depo da dahil olmak üzere etiket yolunun göreli bölümleri, örneklenen hedefin paketine göre çözümlenir.

Analiz sırasında (kuralın uygulama işlevinde), ctx.attr özellik değeri alınırken etiketler karşılık gelen Target ile değiştirilir. Bu sayede mevcut hedefin bağımlılıklarının sağlayıcılarına erişebilirsiniz.

Parametreler

Parametre Açıklama
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default sequence of Labels; or function; varsayılan = []
Kural örneklenirken bu özellik için herhangi bir değer sağlanmazsa kullanılacak varsayılan değer. Varsayılan değerleri (ör. attr.label_list(default = ["//a:b", "//a:c"])) belirtmek için dizeleri veya Label işlevini kullanın.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
allow_files bool; or sequence of strings; or None; varsayılan = Yok
File hedefe izin verilip verilmeyeceği. True, False (varsayılan) veya izin verilen dosya uzantılarının listesi (örneğin, [".cc", ".cpp"]) olabilir.
allow_rules sequence of strings; or None; varsayılan = Yok
Hangi kural hedeflerine (sınıfların adı) izin verildiği. Bu özellik artık kullanılmamaktadır (yalnızca uyumluluk için korunmuştur), bunun yerine sağlayıcıları kullanın.
providers varsayılan = []
Bu özellikte görünen herhangi bir bağımlılık tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin bir listesidir. provider() (veya eski bir sağlayıcı varsa dize adı) tarafından döndürülen *Info nesne. Bağımlılık, dahili listelerden en az BİRİNDE belirtilen TÜM sağlayıcıları döndürmelidir. Kolaylık sağlamak amacıyla, bu bağımsız değişken tek düzeyli bir sağlayıcı listesi de olabilir. Bu durumda, tek öğe içeren bir dış listeye yerleştirilir.

flags sequence of strings; varsayılan = []
Kullanımdan kaldırıldı, kaldırılacak.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
cfg varsayılan = Yok
Özelliğin yapılandırması. Bağımlılığın execution platform için derlendiğini belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Aradaki farkın tipik bir örneği, mobil uygulama oluştururken ortaya çıkar. target platform değeri Android veya iOS iken execution platform değeri Linux, macOS veya Windows olduğunda.
aspects sequence of Aspects; varsayılan = []
Bu özellik tarafından belirtilen bağımlılığa veya bağımlılıklara uygulanması gereken yönler.

çıkış

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

Çıkış (etiket) özelliği için şema oluşturur.

Bu özellikte benzersiz Label değerleri bulunmaktadır. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. (Yeniden adlandırılabilecek) depo da dahil olmak üzere etiket yolunun göreli bölümleri, örneklenen hedefin paketine göre çözümlenir.

Analiz zamanında, karşılık gelen File ctx.outputs kullanılarak alınabilir.

Parametreler

Parametre Açıklama
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).

output_list

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

Çıkışlar listesi özelliği için bir şema oluşturur.

Bu özellikte benzersiz Label değerleri bulunmaktadır. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. (Yeniden adlandırılabilecek) depo da dahil olmak üzere etiket yolunun göreli bölümleri, örneklenen hedefin paketine göre çözümlenir.

Analiz zamanında, karşılık gelen File ctx.outputs kullanılarak alınabilir.

Parametreler

Parametre Açıklama
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).

dize

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

Dize özelliği için bir şema oluşturur.

Parametreler

Parametre Açıklama
default string; or NativeComputedDefault; varsayılan = ''
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
values sequence of strings; varsayılan = []
Özellik için izin verilen değerlerin listesi. Başka herhangi bir değer verilirse hata oluşur.

string_dict

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

Sözlüğü içeren bir özellik için şema oluşturur. Burada anahtar ve değerler dizedir.

Parametreler

Parametre Açıklama
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default default = {}
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).

string_list

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

Dize listesi özelliği için bir şema oluşturur.

Parametreler

Parametre Açıklama
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default sequence of strings; or NativeComputedDefault; varsayılan = []
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.

string_list_dict

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

Sözlüğü içeren bir özellik için şema oluşturur. Burada anahtarlar dize, değerler ise dize listeleridir.

Parametreler

Parametre Açıklama
allow_empty varsayılan = Doğru
Özellik boş olabiliyorsa doğru değerini döndürür.
default default = {}
Kural örneklenirken bu özellik için herhangi bir değer belirtilmemişse kullanılacak varsayılan değer.
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilen özelliğin açıklaması.
mandatory varsayılan = Yanlış
True (doğru) ise değer açıkça belirtilmelidir (default içerse bile).