özelliği

Sorun bildir Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Bu, bir kuralın veya yönün ö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() işlevlerinin 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ını inceleyin.

Üyeler

bool

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

Boole özelliği için şema oluşturur. İlgili ctx.attr özelliği bool türünde olur.

Parametreler

Parametre Açıklama
default varsayılan değer False
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).

int

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

Tam sayı özelliği için şema oluşturur. Değer, imzalı 32 bit aralığında olmalıdır. İlgili ctx.attr özelliği int türünde olur.

Parametreler

Parametre Açıklama
default varsayılan değer 0
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
values int'lerin sequence'ı; varsayılan değer []
Özellik için izin verilen değerlerin listesi. Başka bir değer verilirse hata oluşur.

int_list

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

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

Parametreler

Parametre Açıklama
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
allow_empty varsayılan değer True
Öznitelik boş olabilirse True.
default int'lerin sırası; varsayılan değer []
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.

etiket

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=[])

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

Bu özellik, benzersiz Label değerleri içeriyor. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. Etiket yolunun göreli kısımları (depo dahil, yeniden adlandırılmış olabilir), oluşturulan hedefin paketiyle ilgili olarak çözümlenir.

Analiz sırasında (kuralın uygulama işlevi içinde), ctx.attr öğesinden özellik değeri alınırken etiketler ilgili 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 özellik, normal kaynak dosyaların yanı sıra genellikle bir araca (ör. 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 önlemek için kanonik bir aracın etiketini bu özelliğin default değeri olarak sabit kodlayabilirsiniz. Kullanıcıların bu varsayılanı geçersiz kılmasını da önlemek istiyorsanız alt çizgiyle başlayan bir ad vererek özelliği özel yapabilirsiniz. Daha fazla bilgi için Kurallar sayfasına bakın.

Parametreler

Parametre Açıklama
default Etiket; veya dize; veya LateBoundDefault; veya NativeComputedDefault; veya işlev; veya None; varsayılan değer None
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer. Varsayılan değeri belirtmek için dize veya Label işlevini kullanın. Örneğin, attr.label(default = "//a:b").
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
executable Varsayılan değer False
Bağımlılığın yürütülebilir olması gerekiyorsa True. Bu nedenle, etiketin yürütülebilir bir dosyayı veya yürütülebilir bir dosya çıkışı veren bir kuralı ifade etmesi gerekir. ctx.executable.<attribute_name> ile etikete erişin.
allow_files bool; veya string'lerin sequence'ı; veya None; varsayılan değer None
File hedeflerine 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 değer None
Bu, etiketin tek bir Dosya ile eşleşmesi kısıtlamasıyla allow_files'ye benzer. ctx.file.<attribute_name> üzerinden erişebilirsiniz.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
providers Varsayılan değer []
'dir. Bu özellikte görünen bağımlılıklar tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin listesidir. provider() tarafından döndürülen *Info nesneleri (veya eski bir sağlayıcı söz konusu olduğunda, dize adı) biçimindedir. Bağımlılık, iç 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 öğeli bir dış liste içine alınır. Bağımlılık kuralının, provides parametresinde bu sağlayıcıların reklamını yapması GEREKLİ DEĞİLDİR ancak bu, en iyi uygulama olarak kabul edilir.

allow_rules Dize dizisi veya None; varsayılan değer None
Hangi kural hedeflerine (sınıfların adı) izin verilir? Bu işlevin desteği sonlandırıldı (yalnızca uyumluluk için tutuluyor), bunun yerine sağlayıcıları kullanın.
cfg varsayılan değer None
Özelliğin yapılandırması. Bağımlılığın execution platform için oluşturulduğunu belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Bu farkın tipik bir örneği, mobil uygulamalar oluşturulurken görülür. Burada target platform, Android veya iOS iken execution platform, Linux, macOS veya Windows'dir. Hedef yapılandırmada yanlışlıkla ana makine araçları oluşturulmasını önlemek için executable True ise bu parametre gereklidir. "target"'nın anlamsal bir etkisi yoktur. Bu nedenle, executable Yanlış olduğunda, niyetinizi gerçekten netleştirmeye yardımcı olmadığı sürece bu parametreyi ayarlamayın.
aspects Aspect'lerin sequence'ı; varsayılan değer []
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=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

Anahtarların etiket, değerlerin ise dize olduğu bir sözlük içeren bir özellik için şema oluşturur. Bu, bir bağımlılık özelliğidir.

Bu özellik, benzersiz Label değerleri içeriyor. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. Etiket yolunun göreli kısımları (depo dahil, yeniden adlandırılmış olabilir), oluşturulan hedefin paketiyle ilgili olarak çözümlenir.

Analiz sırasında (kuralın uygulama işlevi içinde), ctx.attr öğesinden özellik değeri alınırken etiketler ilgili 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 değer True
Öznitelik boş olabilirse True.
default dict veya function; varsayılan değer {}
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer. Varsayılan değerleri belirtmek için dizeleri veya Label işlevini kullanın. Örneğin, attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}).
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
allow_files bool; veya string'lerin sequence'ı; veya None; varsayılan değer None
File hedeflerine izin verilip verilmeyeceği. True, False (varsayılan) veya izin verilen dosya uzantılarının listesi (örneğin, [".cc", ".cpp"]) olabilir.
allow_rules Dize dizisi veya None; varsayılan değer None
Hangi kural hedeflerine (sınıfların adı) izin verilir? Bu işlevin desteği sonlandırıldı (yalnızca uyumluluk için tutuluyor), bunun yerine sağlayıcıları kullanın.
providers Varsayılan değer []
'dir. Bu özellikte görünen bağımlılıklar tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin listesidir. provider() tarafından döndürülen *Info nesneleri (veya eski bir sağlayıcı söz konusu olduğunda, dize adı) biçimindedir. Bağımlılık, iç 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 öğeli bir dış liste içine alınır. Bağımlılık kuralının, provides parametresinde bu sağlayıcıların reklamını yapması GEREKLİ DEĞİLDİR ancak bu, en iyi uygulama olarak kabul edilir.

flags string'lerin sequence'ı; varsayılan değer []
Kullanımdan kaldırıldı, kaldırılacak.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
cfg varsayılan değer None
Özelliğin yapılandırması. Bağımlılığın execution platform için oluşturulduğunu belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Bu farkın tipik bir örneği, mobil uygulamalar oluşturulurken görülür. Burada target platform, Android veya iOS iken execution platform, Linux, macOS veya Windows'dir.
aspects Aspect'lerin sequence'ı; varsayılan değer []
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=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

Bir etiket listesi özelliği için şema oluşturur. Bu, bir bağımlılık özelliğidir. İlgili ctx.attr özelliği, Targets list türünde olur.

Bu özellik, benzersiz Label değerleri içeriyor. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. Etiket yolunun göreli kısımları (depo dahil, yeniden adlandırılmış olabilir), oluşturulan hedefin paketiyle ilgili olarak çözümlenir.

Analiz sırasında (kuralın uygulama işlevi içinde), ctx.attr öğesinden özellik değeri alınırken etiketler ilgili 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 değer True
Öznitelik boş olabilirse True.
default Etiket'lerin sırası veya işlev; varsayılan değer []
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer. Varsayılan değerleri belirtmek için dizeleri veya Label işlevini kullanın (ör. attr.label_list(default = ["//a:b", "//a:c"])).
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
allow_files bool; veya string'lerin sequence'ı; veya None; varsayılan değer None
File hedeflerine izin verilip verilmeyeceği. True, False (varsayılan) veya izin verilen dosya uzantılarının listesi (örneğin, [".cc", ".cpp"]) olabilir.
allow_rules Dize dizisi veya None; varsayılan değer None
Hangi kural hedeflerine (sınıfların adı) izin verilir? Bu işlevin desteği sonlandırıldı (yalnızca uyumluluk için tutuluyor), bunun yerine sağlayıcıları kullanın.
providers Varsayılan değer []
'dir. Bu özellikte görünen bağımlılıklar tarafından sağlanması gereken sağlayıcılar.

Bu bağımsız değişkenin biçimi, sağlayıcı listelerinin listesidir. provider() tarafından döndürülen *Info nesneleri (veya eski bir sağlayıcı söz konusu olduğunda, dize adı) biçimindedir. Bağımlılık, iç 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 öğeli bir dış liste içine alınır. Bağımlılık kuralının, provides parametresinde bu sağlayıcıların reklamını yapması GEREKLİ DEĞİLDİR ancak bu, en iyi uygulama olarak kabul edilir.

flags string'lerin sequence'ı; varsayılan değer []
Kullanımdan kaldırıldı, kaldırılacak.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
cfg varsayılan değer None
Özelliğin yapılandırması. Bağımlılığın execution platform için oluşturulduğunu belirten "exec" veya bağımlılığın target platform için oluşturulduğunu belirten "target" olabilir. Bu farkın tipik bir örneği, mobil uygulamalar oluşturulurken görülür. Burada target platform, Android veya iOS iken execution platform, Linux, macOS veya Windows'dir.
aspects Aspect'lerin sequence'ı; varsayılan değer []
Bu özellik tarafından belirtilen bağımlılığa veya bağımlılıklara uygulanması gereken yönler.

çıkış

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

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

Bu özellik, benzersiz Label değerleri içeriyor. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. Etiket yolunun göreli kısımları (depo dahil, yeniden adlandırılmış olabilir), oluşturulan hedefin paketiyle ilgili olarak çözümlenir.

Analiz sırasında, ilgili File, ctx.outputs kullanılarak alınabilir.

Parametreler

Parametre Açıklama
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).

output_list

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

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

Bu özellik, benzersiz Label değerleri içeriyor. Label yerine bir dize sağlanırsa etiket oluşturucu kullanılarak dönüştürülür. Etiket yolunun göreli kısımları (depo dahil, yeniden adlandırılmış olabilir), oluşturulan hedefin paketiyle ilgili olarak çözümlenir.

Analiz sırasında, ilgili File, ctx.outputs kullanılarak alınabilir.

Parametreler

Parametre Açıklama
allow_empty varsayılan değer True
Öznitelik boş olabilirse True.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).

dize

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

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

Parametreler

Parametre Açıklama
default string; veya NativeComputedDefault; varsayılan değer ''
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
values Dize dizisi; varsayılan değer []
Özellik için izin verilen değerlerin listesi. Başka bir değer verilirse hata oluşur.

string_dict

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

Anahtarların ve değerlerin dizeler olduğu bir sözlük içeren bir özellik için şema oluşturur.

Parametreler

Parametre Açıklama
allow_empty varsayılan değer True
Öznitelik boş olabilirse True.
default varsayılan değer {}
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).

string_list

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

Bir dize listesi özelliği için şema oluşturur.

Parametreler

Parametre Açıklama
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).
allow_empty varsayılan değer True
Öznitelik boş olabilirse True.
default Dize dizisi veya NativeComputedDefault; varsayılan değer []
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.

string_list_dict

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

Anahtarların dize, değerlerin ise dize listeleri olduğu bir sözlük içeren bir özellik için şema oluşturur.

Parametreler

Parametre Açıklama
allow_empty varsayılan değer True
Öznitelik boş olabilirse True.
default varsayılan değer {}
Kural oluşturulurken bu özellik için değer verilmezse kullanılacak varsayılan değer.
doc string; veya None; varsayılan değer None
Özelliğin, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması.
mandatory Varsayılan değer False
'dir. Doğruysa değer açıkça belirtilmelidir (default olsa bile).