Küresel

Küresel ortamda kayıtlı nesneler, işlevler ve modüller.

Üyeler

tümü

bool all(elements)

Tüm öğeler True olarak değerlendirilirse veya koleksiyon boşsa true değerini döndürür. Öğeler, bool işlevi kullanılarak boole'ye dönüştürülür.
all(["hello", 3, True]) == True
all([-1, 0, 1]) == False

Parametreler

Parametre Açıklama
elements gerekli
Bir dize veya öğe koleksiyonu.

analysis_test_transition

transition analysis_test_transition(settings)

Analiz testi kuralının bağımlılıklarına uygulanacak bir yapılandırma geçişi oluşturur. Bu geçiş yalnızca analysis_test = True içeren kuralların özelliklerine uygulanabilir. Bu tür kuralların özellikleri kısıtlıdır (örneğin, bağımlılık ağaçlarının boyutu sınırlıdır). Bu nedenle, bu işlev kullanılarak oluşturulan geçişler, geçiş kullanılarak oluşturulan geçişlere kıyasla potansiyel kapsamla sınırlıdır.

Bu işlev, temel olarak Analysis Test Framework çekirdek kitaplığını kolaylaştırmak için tasarlanmıştır. En iyi uygulamalar için ilgili belgeleri (veya uygulamasını) inceleyin.

Parametreler

Parametre Açıklama
settings gerekli
Bu yapılandırma geçişi tarafından ayarlanması gereken yapılandırma ayarları hakkında bilgi içeren bir sözlük. Anahtarlar derleme ayarı etiketleridir ve değerler, geçiş sonrası yeni değerlerdir. Diğer tüm ayarlar değiştirilmemiştir. Analiz testinin geçebilmek için ayarlanması gereken belirli yapılandırma ayarlarını tanımlamak için bunu kullanın.

Tümü

bool any(elements)

En az bir öğe Doğru olarak değerlendirilirse true (doğru) değerini döndürür. Öğeler, bool işlevi kullanılarak boole'ye dönüştürülür.
any([-1, 0, 1]) == True
any([False, 0, ""]) == False

Parametreler

Parametre Açıklama
elements gerekli
Bir dize veya öğe koleksiyonu.

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

Bu bağımlılığın, bir kayıt defteri yerine belirli bir konumdaki bir arşiv dosyasından (zip, gzip vb.) gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde etkili olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yoksayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
urls string; or Iterable of strings; zorunlu
Arşivin URL'leri; http(s):// veya file:// URL'leri olabilir.
integrity default = ''
Alt Kaynak Bütünlüğü biçiminde, arşiv dosyasının beklenen sağlama toplamı.
strip_prefix default = ''
Ayıklanan dosyalardan çıkarılacak bir dizin öneki.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarına işaret eden etiketlerin listesi. Yama dosyaları üst düzey projenin kaynak ağacında bulunmalıdır. Liste sırasına göre uygulanırlar.
patch_cmds Iterable of strings; default = []
Yamalar uygulandıktan sonra Linux/Macos'a uygulanacak Bash komutları dizisi.
patch_strip default = 0
Unix yamasının --strip bağımsız değişkeniyle aynıdır.

ilişkili program

Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)

Yeni bir özellik oluşturur. Bu işlevin sonucu global bir değerde depolanmalıdır. Daha fazla ayrıntı için lütfen Özelliklere giriş bölümüne bakın.

Parametreler

Parametre Açıklama
implementation gerekli
Tam olarak iki parametreyle bu özelliği uygulayan bir Starlark işlevi: Target (özelliğin uygulandığı hedef) ve ctx (hedefin oluşturulduğu kural bağlamı). Hedefin özelliklerine ctx.rule alanı üzerinden ulaşabilirsiniz. Bu işlev, bir özelliğin bir hedefe her bir uygulaması için analiz aşamasında değerlendirilir.
attr_aspects sequence of strings; default = []
Özellik adlarının listesi. En boy, bu adlara sahip bir hedefin özelliklerinde belirtilen bağımlılıklar boyunca yayılır. Burada yaygın olarak kullanılan değerler şunlardır: deps ve exports. Liste, bir hedefin tüm bağımlılıkları boyunca yayılması için tek bir "*" dizesi de içerebilir.
attrs dict; or None; varsayılan = Yok
Özelliğin tüm özelliklerini belirten bir sözlük. Bir özellik adından, "attr.label" veya "attr.string" gibi bir özellik nesnesine eşlenir (attr modülüne bakın). En boy özellikleri, ctx parametresinin alanları olarak uygulama işlevi için kullanılabilir.

_ ile başlayan dolaylı özellikler varsayılan değerlere sahip olmalı ve label veya label_list türünde olmalıdır.

Açık özelliklerin türü string olmalı ve values kısıtlaması kullanılmalıdır. Açık özellikler, özelliği yalnızca kısıtlamaya göre aynı ada, türe ve geçerli değerlere sahip özellikler içeren kurallarla kullanılacak şekilde kısıtlar.

required_providers default = []
Bu özellik, ilgili öğenin yayılımını yalnızca kuralları gerekli sağlayıcılarını tanıtan hedeflerle sınırlandırmasına olanak tanır. Değerin tek tek sağlayıcıları veya sağlayıcı listelerini içeren ancak ikisini birden içermeyen bir liste olması gerekir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerdir ancak [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

İç içe yerleştirilmemiş sağlayıcılar listesi otomatik olarak bir sağlayıcı listesi içeren bir listeye dönüştürülecek. Yani [FooInfo, BarInfo], otomatik olarak [[FooInfo, BarInfo]] biçimine dönüştürülecektir.

Bazı kural (ör. some_rule) hedeflerinin bir unsur için görünür olmasını sağlamak amacıyla some_rule, gerekli sağlayıcılar listelerinden en az birindeki tüm sağlayıcıların reklamını yapmalıdır. Örneğin, bir özelliğin required_providers değeri [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] ise bu özellik yalnızca some_rule öğesi FooInfo *veya* BarInfo *ya da* hem BazInfo *ve* QuxInfo sağlıyorsa hem de some_rule hedeflerini görebilir.

required_aspect_providers default = []
Bu özellik, bu özelliğin diğer yönleri incelemesini sağlar. Değerin tek tek sağlayıcıları veya sağlayıcı listelerini içeren ancak ikisini birden içermeyen bir liste olması gerekir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerdir ancak [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

İç içe yerleştirilmemiş sağlayıcılar listesi otomatik olarak bir sağlayıcı listesi içeren bir listeye dönüştürülecek. Yani [FooInfo, BarInfo], otomatik olarak [[FooInfo, BarInfo]] biçimine dönüştürülecektir.

Başka bir özelliği (ör. other_aspect) bu açıdan görünür hale getirmek için other_aspect, listelerden en az birindeki tüm sağlayıcıları sağlamalıdır. [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] örneğinde bu özellik yalnızca other_aspect, FooInfo *veya* BarInfo *ya da* hem BazInfo *hem de* QuxInfo sağlıyorsa other_aspect öğesini görebilir.

provides default = []
Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi.

Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini döndürme değerinden çıkarırsa hata meydana gelir. Ancak, uygulama işlevi burada listelenmeyen ek sağlayıcılar döndürebilir.

Listenin her bir öğesi, provider() tarafından döndürülen bir *Info nesnesidir. Tek fark, eski bir sağlayıcının kendi dize adıyla temsil edilmesidir.

requires sequence of Aspects; varsayılan = []
Bu en boydan önce uygulanması gereken yönlerin listesi.
fragments sequence of strings; default = []
Özelliğin hedef yapılandırmada gerektirdiği yapılandırma parçası adlarının listesi.
host_fragments sequence of strings; default = []
Özelliğin ana makine yapılandırmasında gerektirdiği yapılandırma parçası adlarının listesi.
toolchains sequence; default = []
Ayarlanırsa, bu kuralın gerektirdiği araç zinciri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve kural uygulamasına ctx.toolchain üzerinden sağlanır.
incompatible_use_toolchain_transition default = False
Kullanımdan kaldırıldı, artık kullanılmıyor ve kaldırılmalıdır.
doc default = ''
Belge oluşturma araçları tarafından ayıklanabilecek özelliğin açıklaması.
apply_to_generating_rules default = False
True (doğru) değerine ayarlanırsa en boy, çıkış dosyasına uygulandığında çıkış dosyasının oluşturma kuralına uygulanır.

Örneğin, bir özelliğin "True" (Doğru) özelliği üzerinden geçişli olarak yayıldığını ve False'un "alpha"yı hedeflemek için geçişli olarak yayıldığını ve "alpha"yı hedefleyen bir "alfa"ya uygulandığını varsayalım. "alfa"nın "deps = [':beta_output"]" içerdiğini varsayalım. Burada "beta_output", bir hedef "beta"nın beyan edilen çıkışıdır. "beta"nın "alfa" en boy oranından biri olarak "alfa" en boy oranına sahip olduğunu ve "alfa" en boyundan biri olarak "charlie" hedefi olduğunu varsayalım.

Varsayılan olarak False (yanlış) değerini alır.

exec_compatible_with sequence of strings; default = []
Yürütme platformunda bu yönün tüm örnekleri için geçerli olan kısıtlamaların listesi.
exec_groups dict; or None; default = None
Yürütme grubu adının (dize) değerini exec_groups olarak değiştirin. Ayarlandığında, unsurların tek bir örnek içinde birden fazla yürütme platformunda işlem çalıştırmasına izin verir. Daha fazla bilgi için yürütme grupları dokümanlarına bakın.

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

Başka bir Bazel modülüne doğrudan bağımlılık bildirir.

Parametreler

Parametre Açıklama
name gerekli
Doğrudan bağımlılık olarak eklenecek modülün adı.
version default = ''
Doğrudan bağımlılık olarak eklenecek modülün sürümü.
max_compatibility_level default = -1
Modülün doğrudan bağımlılık olarak eklenmesi için desteklenen maksimum compatibility_level. Modülün sürümü, desteklenen minimum uyumluluk_seviyesi değerini ve bu özellik belirtilmezse maksimum değeri ima eder.
repo_name default = ''
Bu bağımlılığı temsil eden harici deponun adı. Bu, varsayılan olarak modülün adıdır.
dev_dependency default = False
Geçerli modül kök modül değilse veya "--ignore_dev_dependency" etkinse bu bağımlılık "true" (doğru) değerinde yoksayılır.

bind

None bind(name, actual=None)

Uyarı: bind() kullanılması önerilmez. Sorunları ve alternatifleri hakkında uzun bir açıklama için Bağlamayı kaldırmayı düşünün bölümüne bakın.

//external paketinde bir hedefe takma ad verir.

Parametreler

Parametre Açıklama
name gerekli
Takma ad olarak kullanılacak "//external" altındaki etiket
actual string; or None; varsayılan = Yok
Takma ad verilecek gerçek etiket

bool

bool bool(x=False)

Bool türü için oluşturucu. Nesne None, False, boş dize (""), 0 sayısı veya boş bir koleksiyon (ör. (), []) ise False değerini döndürür. Aksi takdirde True değerini döndürür.

Parametreler

Parametre Açıklama
x default = False
Dönüştürülecek değişken.

configuration_field

LateBoundDefault configuration_field(fragment, name)

label türündeki bir özellik için geç sınır varsayılan değerine referansta bulunuyor. Değer belirlenmeden önce yapılandırmanın derlenmesini gerektiriyorsa değer "gecikme sınırı" olarak kabul edilir. Bunu değer olarak kullanan tüm özellikler gizli olmalıdır.

Örnek kullanım:

Kural özelliği tanımlanıyor:

'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))

Kural uygulamasında erişim:

  def _rule_impl(ctx):
    foo_info = ctx.attr._foo
    ...

Parametreler

Parametre Açıklama
fragment gerekli
Geç sınır değerini içeren bir yapılandırma parçasının adı.
name gerekli
Yapılandırma parçasından alınacak değerin adı.

Depset

depset depset(direct=None, order="default", *, transitive=None)

Bir depset oluşturur. direct parametresi, desteğin sonlandırılmasının doğrudan öğelerinin listesidir. transitive parametresi ise öğeleri oluşturulan desteğin dolaylı öğeleri haline gelen alt kümelerin listesidir. Depset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order parametresi ile belirtilir. Daha fazla bilgi için Derinlere genel bakış konusuna bakın.

Bir kaldırma kümesinin tüm öğeleri (doğrudan ve dolaylı), type(x) ifadesiyle elde edilen aynı türde olmalıdır.

Yineleme sırasında yinelemeleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, bir depset kümesinin tüm öğeleri karma oluşturma işlemine tabi olmalıdır. Ancak, bu sabit değer şu anda tüm oluşturucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı kontrol sağlamak için --incompatible_always_check_depset_elements işaretini kullanın. Bu, gelecekteki sürümlerde varsayılan davranış olacaktır. Sorun 10313'e bakın.

Ayrıca, öğeler şu anda sabit olmalıdır, ancak bu kısıtlama gelecekte gevşetilecektir.

Oluşturulan kaldırma işleminin sırası, transitive alt öğe düzeniyle uyumlu olmalıdır. "default" siparişi diğer siparişlerle uyumludur, diğer tüm siparişler yalnızca kendileriyle uyumludur.

Geriye-ileri uyumluluk hakkında not. Bu işlev şu anda konumsal items parametresini kabul ediyor. Bu parametre kullanımdan kaldırıldı ve gelecekte kaldırılacak. Kaldırılmasından sonra direct, depset işlevinin tek konum parametresi haline gelecek. Bu nedenle, aşağıdaki çağrılar eşdeğerdir ve geleceğe hazırdır:

depset(['a', 'b'], transitive = [...])
depset(direct = ['a', 'b'], transitive = [...])

Parametreler

Parametre Açıklama
direct sequence; or None; varsayılan = Yok
Bir öğenin doğrudan öğelerinin listesi.
order default = "default"
Yeni alt küme için geçiş stratejisi. Olası değerler için buraya bakın.
transitive sequence of depsets; or None; default = Yok
Öğeleri, kaldırma işleminin dolaylı öğeleri olacak alt öğelerin listesi.

dict

dict dict(pairs=[], **kwargs)

İsteğe bağlı bir konum bağımsız değişkeni ve isteğe bağlı bir anahtar kelime bağımsız değişkenleri grubundan bir sözlük oluşturur. Aynı anahtarın birden fazla kez verilmesi durumunda son değer kullanılır. Anahtar kelime bağımsız değişkenleriyle sağlanan girişler, konumsal bağımsız değişken aracılığıyla sağlanan girişlerden sonra gelmiş olarak kabul edilir.

Parametreler

Parametre Açıklama
pairs default = []
Öğelerin her biri 2 uzunluğunda olan bir dikte veya iterasyon (anahtar, değer).
kwargs gerekli
Ek giriş sözlüğü.

yer

list dir(x)

Bir dize listesi döndürür: parametre nesnesinin özniteliklerinin adları ve yöntemleri.

Parametreler

Parametre Açıklama
x gerekli
Kontrol edilecek nesne.

numaralandırmak

list enumerate(list, start=0)

Dizin (int) ve giriş dizisindeki öğeyle birlikte bir çift öğe listesi (iki öğeli küme) döndürür.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

Parametreler

Parametre Açıklama
list zorunlu
giriş sırası.
start varsayılan = 0
başlangıç dizini.

exec_group

exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)

Kural uygulaması sırasında belirli bir yürütme platformu için işlemler oluşturmak amacıyla kullanılabilecek bir yürütme grubu oluşturur.

Parametreler

Parametre Açıklama
toolchains sequence; default = []
Bu yürütme grubunun gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir.
exec_compatible_with sequence of strings; default = []
Yürütme platformundaki kısıtlamalar listesi.
copy_from_rule default = False
Doğru değerine ayarlanırsa bu yönetici grubu, grubun eklendiği kuralın araç zincirlerini ve kısıtlamalarını devralır. Başka bir dizeye ayarlanırsa hata verir.

başarısız

None fail(msg=None, attr=None, *args)

Yürütme işleminin bir hatayla başarısız olmasına neden oluyor.

Parametreler

Parametre Açıklama
msg default = Yok
Kullanımdan kaldırıldı: Bunun yerine konum bağımsız değişkenleri kullanın. Bu bağımsız değişken, dolaylı bir öncü konum argümanı gibi işlev görür.
attr string; or None; varsayılan = Yok
Kullanımdan kaldırıldı. Bu dizeyi içeren isteğe bağlı bir ön ekin hata mesajına eklenmesine neden olur.
args gerekli
Hata mesajında görünen, debugPrint ile biçimlendirilmiş (varsayılan olarak str'ye eşdeğerdir) ve boşluklarla birleştirilmiş değerler listesi.

float

float float(x=unbound)

Kayan değer olarak x değerini döndürür.
  • x zaten bir hareketli değerse float bunu değiştirmeden döndürür.
  • x bir Bool ise float, Doğru için 1,0 ve False için 0,0 döndürür.
  • x bir tam sayıysa float, x'e en yakın sonlu kayan nokta değerini döndürür veya büyüklük çok büyükse hata verir.
  • x bir dizeyse geçerli bir kayan nokta sabit değeri olmalı veya NaN, Inf ya da Infinity ile eşit olmalıdır (büyük/küçük harfe duyarlı değil). Bu ifadeye isteğe bağlı olarak + veya - işareti eklenir.
Başka herhangi bir değer hataya neden olur. Bağımsız değişken olmadan, float() işlevi 0,0 değerini döndürür.

Parametreler

Parametre Açıklama
x default = unbound
Dönüştürülecek değer.

Getattr

unknown getattr(x, name, default=unbound)

Verilen adın struct alanını döndürür (varsa). Aksi takdirde default (belirtilmişse) döndürür veya bir hata verir. getattr(x, "foobar"), x.foobar işlevine eş değerdir.
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

Parametreler

Parametre Açıklama
x gerekli
Özelliğine erişilen struct.
name gerekli
struct özelliğinin adı.
default default = unbound
struct'ın verilen ada sahip bir özelliği olmaması durumunda döndürülecek varsayılan değer.

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)

Bir bağımlılığın, Git deposunun belirli bir kaydından gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde etkili olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yoksayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
remote gerekli
Uzak Git deposunun URL'si.
commit default = ''
Kontrol edilmesi gereken kaydetme.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarına işaret eden etiketlerin listesi. Yama dosyaları üst düzey projenin kaynak ağacında bulunmalıdır. Liste sırasına göre uygulanırlar.
patch_cmds Iterable of strings; default = []
Yamalar uygulandıktan sonra Linux/Macos'a uygulanacak Bash komutları dizisi.
patch_strip default = 0
Unix yamasının --strip bağımsız değişkeniyle aynıdır.

Hasattr

bool hasattr(x, name)

x nesnesi belirtilen name için bir özelliğe veya yönteme sahipse True (Doğru), aksi takdirde False (Yanlış) değerini döndürür. Örnek:
hasattr(ctx.attr, "myattr")

Parametreler

Parametre Açıklama
x gerekli
Kontrol edilecek nesne.
name gerekli
Özelliğin adı.

hash

int hash(value)

Bir dize için karma değeri döndürür. Bu değer, Java'nın String.hashCode() algoritmasıyla aynı algoritma kullanılarak deterministik olarak hesaplanır. Diğer bir deyişle:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Dizelerin yanı sıra değerlerin karma hale getirilmesi şu anda desteklenmemektedir.

Parametreler

Parametre Açıklama
value gerekli
Karma oluşturma işlemi uygulanacak dize değeri.

int

int int(x, base=unbound)

x'i tam sayı olarak döndürür.
  • x zaten bir tam sayıysa int bunu değiştirmeden döndürür.
  • x bir bool ise int, Doğru için 1 ve False için 0 değerini döndürür.
  • x bir dizeyse <sign><prefix><digits> biçiminde olmalıdır. <sign>, "+" veya "-" değerine sahip ya da boş (pozitif olarak yorumlanır). <digits>, 0'dan base - 1'e kadar olan bir dizi rakamdır. Burada, a-z (veya eşdeğer olarak A-Z) harfleri 10-35 için rakam olarak kullanılır. base değerinin 2/8/16 olduğu durumda <prefix> isteğe bağlıdır ve sırasıyla 0b/0o/0x (veya eşdeğer olarak 0B/0O/0X) olabilir. base, bu tabanların dışında başka bir değer veya 0 özel değeriyse ön ek boş olmalıdır. base değerinin 0 olduğu durumda dize, hangi ön ekin kullanıldığına bağlı olarak 2/8/10/16 tabanlarından birinin seçilmesi anlamında bir tam sayı olarak yorumlanır. base 0 ise, ön ek kullanılmaz ve birden fazla basamak varsa baştaki basamak 0 olamaz. Bunun amacı, sekizlik ve ondalık sayı arasındaki karışıklığı önlemektir. Dizeyle temsil edilen sayının büyüklüğü, int türü için izin verilen aralıkta olmalıdır.
  • x bir hareketli değerse int, sıfıra doğru yuvarlanarak kayan noktanın tam sayı değerini döndürür. x sonlu değilse (NaN veya sonsuz) hatadır.
x başka bir türse veya değer, yukarıdaki biçimi karşılamayan bir dizeyse bu işlev başarısız olur. Python'un int işlevinden farklı olarak bu işlev, sıfır bağımsız değişkenlere izin vermez ve dize bağımsız değişkenleri için fazladan boşluklara izin vermez.

Örnekler:

int("123") == 123
int("-123") == -123
int("+123") == 123
int("FF", 16) == 255
int("0xFF", 16) == 255
int("10", 0) == 10
int("-0x10", 0) == -16
int("-0x10", 0) == -16
int("123.456") == 123

Parametreler

Parametre Açıklama
x gerekli
Dönüştürülecek dize.
base default = unbound
Bir dize değerini yorumlamak için kullanılan taban değer, varsayılan olarak 10'dur. 2 ile 36 (dahil) arasında veya x tam sayıymış gibi algılanması için 0 olmalıdır. Değer bir dize değilse bu parametre sağlanmamalıdır.

len

int len(x)

Bir dizenin, dizinin (liste veya unsur gibi), dikte veya tekrarlanabilir başka bir öğenin uzunluğunu döndürür.

Parametreler

Parametre Açıklama
x gerekli
Uzunluğu raporlanacak değer.

list

list list(x=[])

Verilen yinelenebilir değerle aynı öğelere sahip yeni bir liste döndürür.
list([1, 2]) == [1, 2]
list((2, 3, 2)) == [2, 3, 2]
list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]

Parametreler

Parametre Açıklama
x default = []
Dönüştürülecek nesne.

local_path_override

None local_path_override(module_name, path)

Bir bağımlılığın yerel diskteki belirli bir dizinden gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde etkili olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yoksayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
path gerekli
Bu modülün bulunduğu dizinin yolu.

maks.

unknown max(*args)

Verilen tüm bağımsız değişkenlerden en büyük olanı döndürür. Yalnızca tek bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan, iterasyonlu olmalıdır.Öğelerin karşılaştırılamaması (örneğin, dize içeren int) veya bağımsız değişkenin sağlanmaması hatadır.
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

Parametreler

Parametre Açıklama
args gerekli
Kontrol edilecek öğeler.

dk

unknown min(*args)

Verilen tüm bağımsız değişkenlerden en küçük olanı döndürür. Yalnızca bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan bir iterasyonlu olmalıdır. Öğeler karşılaştırılamazsa (örneğin, dizeyle int) veya bağımsız değişken verilmezse hata oluşur.
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

Parametreler

Parametre Açıklama
args gerekli
Kontrol edilecek öğeler.

modül

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

Geçerli Bazel deposuyla temsil edilen Bazel modülünün belirli özelliklerini tanımlar. Bu özellikler ya modülün önemli meta verileridir (adı ve sürümü gibi) ya da mevcut modülün ve bağlı öğelerinin davranışını etkiler.

En fazla bir kez çağrılmalıdır. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa) çıkarılabilir.

Parametreler

Parametre Açıklama
name default = ''
Modülün adı. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa) çıkarılabilir. Geçerli bir modül adı: 1) yalnızca küçük harf (a-z), rakam (0-9), nokta (.), kısa çizgi (-) ve alt çizgi (_) içermeli; 2) küçük harfle başlamalı; 3) küçük harfle veya rakamla bitmelidir.
version default = ''
Modülün sürümü. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa) çıkarılabilir.
compatibility_level default = 0
Modülün uyumluluk düzeyi; uyumsuz olan her önemli değişiklik için değiştirilmelidir. Bu sürüm dizesinin içine yerleştirilmemiş, ayrı bir alan olarak var olması dışında, SemVer açısından modülün "ana sürümü"dür. Farklı uyumluluk düzeylerine sahip modüller, farklı adlara sahip modüllermiş gibi sürüm çözünürlüğüne katılırlar. Ancak son bağımlılık grafiği, aynı ada ancak farklı uyumluluk düzeylerine sahip birden fazla modül içeremez (multiple_version_override yürürlükte değilse daha fazla ayrıntı için buraya bakın).
repo_name default = ''
Bu modülü temsil eden deponun, modülün kendisi tarafından görülen adı. Varsayılan olarak deponun adı modülün adıdır. Bu özellik, modül adından farklı bir depo adı kullanan projeler için taşıma işlemini kolaylaştırmak amacıyla belirtilebilir.
bazel_compatibility Iterable of strings; default = []
Kullanıcıların bu modülle uyumlu olan Bazel sürümlerini bildirmesine olanak tanıyan Bazel sürümlerinin listesi. Bağımlılık çözümlemesini ETKİLEMEZ, ancak bzlmod bu bilgileri mevcut Bazel sürümünüzün uyumlu olup olmadığını kontrol etmek için kullanır. Bu değerin biçimi, virgülle ayrılmış bazı sınırlama değerlerinden oluşan bir dizedir. Üç sınırlama desteklenir: <=X.X.X: Bazel sürümü X.X.X'e eşit veya bundan daha eski olmalıdır. Daha yeni bir sürümde uyumsuz olduğu bilinen bir değişiklik olduğunda kullanılır. >=X.X.X: Bazel sürümü X.X.X'e eşit veya bundan daha yeni olmalıdır.Yalnızca X.X.X tarihinden itibaren kullanılabilen bazı özellikler bağlı olduğunda kullanılır. -X.X.X: Bazel X.X.X sürümü uyumlu değildir. X.X.X'te sizi rahatsız eden ancak sonraki sürümlerde düzeltilen bir hata olduğunda kullanılır.

module_extension

unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)

Yeni bir modül uzantısı oluşturur. Dosyayı dışa aktarıp bir MODULE.bazel dosyasında kullanılabilmesi için genel bir değerde depolayın.

Parametreler

Parametre Açıklama
implementation gerekli
Bu modül uzantısını uygulayan işlev. Tek bir parametre (module_ctx) alınmalıdır. İşlev, kullanılabilir depo kümesini belirlemek için derlemenin başında bir kez çağrılır.
tag_classes default = {}
Uzantı tarafından kullanılan tüm etiket sınıflarını bildirmek için kullanılan bir sözlük. Etiket sınıfının adından bir tag_class nesnesine eşlenir.
doc default = ''
Belge oluşturma araçları tarafından alınabilecek modül uzantısının açıklaması.
environ sequence of strings; default = []
Bu modül uzantısının bağlı olduğu ortam değişkeninin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse uzantı yeniden değerlendirilir.
os_dependent default = False
Bu uzantının işletim sistemine bağlı olup olmadığını belirtir
arch_dependent default = False
Bu uzantının mimariye bağlı olup olmadığını belirtir

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

Bir bağımlılığın yine de bir kayıt defterinden gelmesi gerektiğini ancak birden fazla sürümünün bir arada bulunmasına izin verilmesi gerektiğini belirtir. Daha fazla bilgi için belgeleri inceleyin. Bu yönerge yalnızca kök modülde etkili olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yoksayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
versions Iterable of strings; gerekli
Birlikte kullanılmasına izin verilen sürümleri açık bir şekilde belirtir. Bu sürümler, bağımlılık grafiği ön seçiminde zaten mevcut olmalıdır. Bu modüldeki bağımlılıklar, aynı uyumluluk düzeyinde izin verilen en yakın sürüme "yükseltilir". Aynı uyumluluk düzeyindeki izin verilen tüm sürümlerden daha yüksek bir sürüme sahip olan bağımlılıklar ise hataya neden olur.
registry default = ''
Bu modülün kayıt defterini geçersiz kılar. Bu modülü varsayılan kayıt otoriteleri listesinden bulmak yerine, belirtilen kayıt kullanılmalıdır.

yazdır

None print(sep=" ", *args)

args hata ayıklama çıktısı olarak yazdırılır. Bu aramanın önüne "DEBUG" dizesi ve bu çağrının konumu (dosya ve satır numarası) eklenir. Bağımsız değişkenlerin dizelere tam olarak nasıl dönüştürüleceği belirtilmemiştir ve herhangi bir zamanda değişebilir. Özellikle str() ve repr() tarafından yapılan biçimlendirmeden farklı (ve daha ayrıntılı) olabilir.

Kullanıcılar için oluşturduğu spam nedeniyle, üretim kodunda print kullanılması önerilmez. Kullanımdan kaldırma işlemleri için mümkün olduğunda fail() kullanılan somut bir hatayı tercih edin.

Parametreler

Parametre Açıklama
sep default = " "
Nesneler arasındaki ayırıcı dize; varsayılan değer boşluk (" ").
args gerekli
Yazdırılacak nesneler.

provider

unknown provider(doc='', *, fields=None, init=None)

Sağlayıcı sembolü tanımlar. Sağlayıcı çağrıştırılarak örnek verilebilir veya bir hedeften söz konusu sağlayıcının örneğini almak için doğrudan bir anahtar olarak kullanılabilir. Örnek:
MyInfo = provider()
...
def _my_library_impl(ctx):
    ...
    my_info = MyInfo(x = 2, y = 3)
    # my_info.x == 2
    # my_info.y == 3
    ...

Sağlayıcıların nasıl kullanılacağına ilişkin kapsamlı bir kılavuz için Kurallar (Sağlayıcılar) bölümüne bakın.

init belirtilmezse Provider çağrılabilir değeri döndürür.

init belirtilirse 2 öğeden oluşan bir öğe döndürür: Provider çağrılabilir değeri ve ham yapıcı çağrılabilir değeri. Ayrıntılar için Kurallar (Özel sağlayıcıların özel olarak başlatılması) bölümünü inceleyin ve aşağıdaki init parametresiyle ilgili açıklamayı inceleyin.

Parametreler

Parametre Açıklama
doc default = ''
Belge oluşturma araçları tarafından alınabilecek, sağlayıcı açıklaması.
fields sequence of strings; or dict; or None; varsayılan = Yok
Belirtilirse, izin verilen alanlar grubunu kısıtlar.
Olası değerler:
  • alan listesi:
    provider(fields = ['a', 'b'])

  • sözlük alanı adı -> dokümanlar:
    provider(
           fields = { 'a' : 'Documentation for a', 'b' : 'Documentation for b' })
Tüm alanlar isteğe bağlıdır.
init callable; or None; varsayılan = Yok
Örnekleme sırasında sağlayıcının alan değerlerinin ön işlenmesi ve doğrulanması için isteğe bağlı bir geri çağırma. init belirtilirse provider(), 2 öğeden oluşan bir unsur döndürür: normal sağlayıcı simgesi ve ham kurucu.

Daha net bir açıklama aşağıda verilmiştir. Pratik bir tartışma ve kullanım alanları için Kurallar (sağlayıcıların özel başlatma) bölümüne bakın.

provider() çağrısı yapılarak oluşturulan sağlayıcı sembolü P olsun. Kavramsal olarak, P örneği, aşağıdakileri yapan bir varsayılan oluşturucu işlevi (c(*args, **kwargs)) çağırılarak oluşturulur:

  • args boş değilse bir hata oluşur.
  • provider() çağrılırken fields parametresi belirtildiyse ve kwargs, fields içinde listelenmeyen bir anahtar içeriyorsa bir hata oluşur.
  • Aksi takdirde c, kwargs öğesindeki her k: v girişi için v değerine sahip k adlı bir alana sahip yeni bir örnek döndürür.
Bir init geri çağırması verilmediğinde P sembolüne yapılan bir çağrı, c varsayılan oluşturucu işlevine bir çağrı görevi görür; diğer bir deyişle, P(*args, **kwargs) c(*args, **kwargs) değerini döndürür. Örneğin,
MyInfo = provider()
m = MyInfo(foo = 1)
, m öğesinin m.foo == 1 içeren MyInfo örneği olmasını sağlar.

Ancak init belirtilmişse P(*args, **kwargs) çağrısı şu adımları uygular:

  1. Geri çağırma init(*args, **kwargs) olarak çağrılır. Yani, P işlevine aktarılanların aynısı konum ve anahtar kelime bağımsız değişkenleriyle çağrılır.
  2. init işlevinin döndürülen değerinin, anahtarları alan adı dizeleri olan bir sözlük (d) olması beklenir. Aksi halde, bir hata oluşur.
  3. c(**d)'de olduğu gibi, anahtar kelime bağımsız değişkenleri olarak d girişleriyle varsayılan oluşturucu çağrılmış gibi yeni bir P örneği oluşturulur.

Not: Yukarıdaki adımlarda, *args veya **kwargs, init imzasıyla eşleşmiyorsa ya da init gövdesinin değerlendirilmesi başarısız olursa (örneğin, fail() öğesine yapılan bir çağrıyla kasıtlı olarak) veya init döndürülen değeri beklenen şemaya sahip bir sözlük değilse bir hata oluştuğu anlamına gelir.

Böylece init geri çağırması, ön işleme ve doğrulama için konum bağımsız değişkenlerine ve rastgele mantığa izin vererek normal sağlayıcı yapısını genelleştirir. İzin verilen fields listesinin atlatılmasına izin vermez.

init belirtildiğinde provider() işlevi döndürülen değer (P, r) olur. Burada r, ham yapıcıdır. Aslında r işlevinin davranışı, tam olarak yukarıda açıklanan varsayılan oluşturucu fonksiyonu c ile aynıdır. Genellikle r, adının önüne alt çizgi eklenen bir değişkene bağlıdır. Böylece, yalnızca geçerli .bzl dosyası ona doğrudan erişebilir:

MyInfo, _new_myinfo = provider(init = ...)

aralık

sequence range(start_or_stop, stop_or_none=None, step=1)

step artış kullanarak, öğelerin start değerinden stop değerine gittiği bir liste oluşturur. Tek bir bağımsız değişken sağlanırsa öğeler 0 ile söz konusu öğe arasında değişir.
range(4) == [0, 1, 2, 3]
range(3, 9, 2) == [3, 5, 7]
range(3, 0, -1) == [3, 2, 1]

Parametreler

Parametre Açıklama
start_or_stop gerekli
Durma sağlanırsa başlangıç öğesinin değeri, aksi takdirde durdurma ve gerçek başlangıç değeri 0 olur
stop_or_none int; or None; default = Yok
sonuç listesine dahil edilecek olmayan ilk öğenin isteğe bağlı dizini; liste oluşturma işlemi, stop değerine ulaşmadan önce durur.
step default = 1
Artış (varsayılan 1'dir). Olumsuz olabilir.

register_execution_platforms()

None register_execution_platforms(*platform_labels)

Önceden tanımlanmış bir platformu kaydederek Bazel'in bu platformu araç zinciri çözümlemesi sırasında yürütme platformu olarak kullanmasını sağlayın.

Parametreler

Parametre Açıklama
platform_labels sequence of strings; zorunlu
Kaydedilecek platformların etiketleri.

register_execution_platforms(dev_dependency)

None register_execution_platforms(dev_dependency=False, *platform_labels)

Bu modül seçildiğinde kaydedilecek önceden tanımlanmış yürütme platformlarını belirtir. Mutlak hedef kalıpları olmalıdır (ör. @ veya // ile başlayan). Daha fazla bilgi için araç zinciri çözünürlüğüne bakın.

Parametreler

Parametre Açıklama
dev_dependency default = False
True (doğru) değerine ayarlanırsa, mevcut modül kök modül değilse veya "--ignore_dev_dependency" etkinse yürütme platformları kaydedilmez.
platform_labels sequence of strings; zorunlu
Kaydedilecek platformların etiketleri.

register_toolchains()

None register_toolchains(*toolchain_labels)

Önceden tanımlanmış bir araç zincirini kaydettirerek Bazel'ın bu zinciri araç zinciri çözümlemesi sırasında kullanmasını sağlayın. Araç zincirlerini tanımlama ve kaydetme örneklerine bakın.

Parametreler

Parametre Açıklama
toolchain_labels sequence of strings; zorunlu
Kaydedilecek araç zincirlerinin etiketleri.

register_toolchains(dev_dependency)

None register_toolchains(dev_dependency=False, *toolchain_labels)

Bu modül seçildiğinde kaydedilecek önceden tanımlanmış araç zincirlerini belirtir. Mutlak hedef kalıpları olmalıdır (ör. @ veya // ile başlayan). Daha fazla bilgi için araç zinciri çözünürlüğüne bakın.

Parametreler

Parametre Açıklama
dev_dependency default = False
Geçerli modül kök modül değilse veya "--ignore_dev_dependency" etkinleştirilmişse araç zincirleri "true" (doğru) değerine kaydedilmez.
toolchain_labels sequence of strings; zorunlu
Kaydedilecek araç zincirlerinin etiketleri.

repository_rule

callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')

Yeni bir depo kuralı oluşturur. WORKSPACE dosyasından yüklenip çağrılabilmesi için genel bir değerde depolayın.

Parametreler

Parametre Açıklama
implementation gerekli
bu kuralı uygulayan işlev. Tek bir parametre olmalıdır, repository_ctx. İşlev, kuralın her örneği için yükleme aşamasında çağrılır.
attrs dict; or None; varsayılan = Yok
sözlüğü. Bir özellik adından özellik nesnesine eşlenir (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir dosyaya örtülü bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı olarak eklenir ve belirtilmemelidir.
local default = False
Bu kuralın yerel sistemden her şeyi getirdiğini ve her getirmede yeniden değerlendirilmesi gerektiğini belirtin.
environ sequence of strings; default = []
Bu kod deposu kuralının bağlı olduğu ortam değişkeninin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse depo yeniden getirilir.
configure default = False
Deponun, sistemi yapılandırma amacıyla incelediğini belirtin
remotable default = False
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değişebilir. Lütfen bu özelliğe güvenmeyin. Bu özellik, ---experimental_repo_remote_exec
Uzaktan yürütmeyle uyumlu ayarı yapılarak deneysel olarak etkinleştirilebilir.
doc default = ''
Belge oluşturma araçları tarafından alınabilen kod deposu kuralının açıklaması.

repr

string repr(x)

Herhangi bir nesneyi dize gösterimine dönüştürür. Bu, hata ayıklama için kullanışlıdır.
repr("ab") == '"ab"'

Parametreler

Parametre Açıklama
x gerekli
Dönüştürülecek nesne.

tersine çevrildi

list reversed(sequence)

Yinelenebilir orijinal dizinin öğelerini ters sırada içeren yeni ve dondurulmamış bir listeyi döndürür.
reversed([3, 5, 4]) == [4, 5, 3]

Parametreler

Parametre Açıklama
sequence gerekli
Ters çevrilecek yinelenebilir dizi (ör. liste).

kural

callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)

Hedef oluşturmak için BUILD dosyasından veya bir makrodan çağrılabilecek yeni bir kural oluşturur.

Kurallar, .bzl dosyasındaki genel değişkenlere atanmalıdır. Genel değişkenin adı kuralın adıdır.

Test kurallarının _test ile biten bir ada sahip olması gerekirken diğer tüm kurallarda bu son ek bulunmamalıdır. (Bu kısıtlama yalnızca kurallar için geçerlidir, hedefleri için geçerli değildir.)

Parametreler

Parametre Açıklama
implementation gerekli
Bu kuralı uygulayan Starlark işlevinin tam olarak tek bir parametresi olmalıdır: ctx. Fonksiyon, kuralın her örneği için analiz aşamasında çağrılır. Kullanıcı tarafından sağlanan özelliklere erişebilir. Belirtilen tüm çıkışları oluşturacak işlemler oluşturması gerekir.
test default = False
Bu kuralın bir test kuralı olup olmadığı, yani bir blaze test komutunun konusu olup olmadığı. Tüm test kuralları otomatik olarak yürütülebilir olarak kabul edilir; bir test kuralı için executable = True değerinin açıkça ayarlanması gereksizdir (ve önerilmez). Daha fazla bilgi için Kurallar sayfasını inceleyin.
attrs dict; or None; varsayılan = Yok
sözlüğü. Bir özellik adından özellik nesnesine eşlenir (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir etikete dolaylı bağımlılık eklemek için kullanılabilir. name özelliği dolaylı olarak eklenir ve belirtilmemelidir. visibility, deprecation, tags, testonly ve features özellikleri dolaylı yoldan eklenir ve geçersiz kılınamaz. Çoğu kural için yalnızca birkaç özellik gerekir. Kural işlevi, bellek kullanımını sınırlandırmak için özelliklerin boyutuna bir sınır uygular.
outputs dict; or None; or function; varsayılan = Yok
Kullanımdan kaldırıldı. Bu parametre artık kullanılmamaktadır ve yakında kaldırılacaktır. Lütfen bu özelliğe güvenmeyin. ---incompatible_no_rule_outputs_param ile devre dışı bırakıldı. Kodunuzun, yakında kaldırılmak üzere uygun olduğunu doğrulamak için bu işareti kullanın.
Bu parametrenin desteği sonlandırıldı. Bunun yerine OutputGroupInfo veya attr.output kullanmak için kuralları taşıyın.

Önceden tanımlanmış çıkışları tanımlayan bir şema. output ve output_list özelliklerinden farklı olarak kullanıcı, bu dosyalar için etiket belirtmez. Önceden tanımlanmış çıkışlar hakkında daha fazla bilgi için Kurallar sayfasını inceleyin.

Bu bağımsız değişkenin değeri bir sözlük veya sözlük oluşturan bir geri çağırma işlevidir. Geri çağırma işlevi, hesaplanan bağımlılık özelliklerine benzer şekilde çalışır: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin, outputs = _my_func öğesini def _my_func(srcs, deps): ... tanımıyla geçirirseniz işlev, srcs ve deps özelliklerine erişebilir. Sözlük ister doğrudan ister bir işlev aracılığıyla belirtilmiş olsun, aşağıdaki gibi yorumlanır.

Sözlükte her giriş, anahtarın bir tanımlayıcı, değer ise çıkışın etiketini belirleyen bir dize şablonu olduğu önceden tanımlanmış bir çıkış oluşturur. Kuralın uygulama işlevinde tanımlayıcı, ctx.outputs içindeki çıkış File değerine erişmek için kullanılan alan adı olur. Çıkışın etiketi kuralla aynı pakete sahiptir ve "%{ATTR}" formundaki her bir yer tutucunun ATTR özelliğinin değerinden oluşturulmuş bir dizeyle değiştirilmesiyle paketten sonraki parça oluşturulur:

  • Dize türündeki özellikler kelimesi kelimesine değiştirilir.
  • Etiket türünde özellikler, etiketin paketten sonra gelen bölümü olur (dosya uzantısı çıkarılarak). Örneğin, "//pkg:a/b.c" etiketi "a/b" olur.
  • Çıktı türünde özellikler, dosya uzantısı da dahil olmak üzere paketten sonra etiketin parçası haline gelir (yukarıdaki örnekte "a/b.c").
  • Yer tutucularda kullanılan tüm liste türündeki özelliklerin (örneğin, attr.label_list) tam olarak bir öğeye sahip olması gerekir. Müşterinin dönüşümü, liste dışı sürümüyle (attr.label) aynı.
  • Diğer özellik türleri yer tutucularda gösterilmeyebilir.
  • Özellik olmayan özel yer tutucular %{dirname} ve %{basename}, paketin dışında kural etiketinin bu kısımlarına genişler. Örneğin, "//pkg:a/b.c" içindeki dizin adı a, temel ad ise b.c şeklindedir.

Pratikte, en yaygın değiştirme yer tutucusu "%{name}" şeklindedir. Örneğin, "foo" adlı bir hedef için çıkışlar {"bin": "%{name}.exe"} talimatı, uygulama işlevinde ctx.outputs.bin olarak erişilebilen foo.exe adlı bir çıkışı önceden bildirir.

executable default = False
Bu kuralın yürütülebilir olarak kabul edilip edilmeyeceği, yani bir blaze run komutunun konusu olup olmadığı. Daha fazla bilgi için Kurallar sayfasını inceleyin.
output_to_genfiles default = False
True (doğru) değerine ayarlanırsa dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için gerekli olmadıkça (ör. C++ için başlık dosyaları oluştururken) bu işareti ayarlamayın.
fragments sequence of strings; default = []
Hedef yapılandırmada kuralın gerektirdiği yapılandırma parçası adlarının listesi.
host_fragments sequence of strings; default = []
Kuralın ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adlarının listesi.
_skylark_testable default = Yanlış
(Deneysel)

True (doğru) değerine ayarlanırsa bu kural, Actions sağlayıcısı aracılığıyla kendisine dayanan kurallara göre inceleme için işlemlerini gösterir. Ayrıca sağlayıcı, ctx.created_actions() işlevini çağırarak kuralın kendisi tarafından kullanılabilir.

Bu, yalnızca Starlark kurallarının analiz zamanı davranışını test etmek için kullanılmalıdır. Bu işaret gelecekte kaldırılabilir.
toolchains sequence; default = []
Ayarlanırsa, bu kuralın gerektirdiği araç zinciri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve kural uygulamasına ctx.toolchain üzerinden sağlanır.
incompatible_use_toolchain_transition default = False
Kullanımdan kaldırıldı, artık kullanılmıyor ve kaldırılmalıdır.
doc default = ''
Doküman oluşturma araçları tarafından alınabilecek kuralın açıklaması.
provides default = []
Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi.

Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini döndürme değerinden çıkarırsa hata meydana gelir. Ancak, uygulama işlevi burada listelenmeyen ek sağlayıcılar döndürebilir.

Listenin her bir öğesi, provider() tarafından döndürülen bir *Info nesnesidir. Tek fark, eski bir sağlayıcının kendi dize adıyla temsil edilmesidir.

exec_compatible_with sequence of strings; varsayılan = []
Yürütme platformunda bu kural türündeki tüm hedeflere uygulanan kısıtlamaların listesi.
analysis_test default = False
Doğru değerine ayarlanırsa bu kural, analiz testi olarak değerlendirilir.

Not: Analysis test kuralları, temel Starlark kitaplıklarında sağlanan altyapı kullanılarak tanımlanır. Yol gösterici bilgiler için Test konusuna bakın.

Bir kural analiz testi kuralı olarak tanımlanırsa kural özelliklerinde analysis_test_transition kullanılarak tanımlanan yapılandırma geçişlerinin kullanılmasına izin verilir ancak bazı kısıtlamalar etkinleştirilir:

  • Bu kuralın hedefleri, sahip olabilecekleri geçişli bağımlılıkların sayısı açısından sınırlıdır.
  • Kural, test kuralı olarak kabul edilir (test=True ayarlanmış gibi). Bu, test değerinin yerini alır
  • Kural uygulama işlevi, işlemleri kaydedemez. Bunun yerine, AnalysisTestResultInfo öğesini sağlayarak bir başarılı/başarısız sonucu kaydetmelidir.
build_setting BuildSetting; or None; varsayılan = Yok
Ayarlanırsa bu kuralın ne tür build setting olduğunu açıklar. config modülüne bakın. Politika ayarlanırsa bu kurala, buraya iletilen değere karşılık gelen bir türle birlikte "build_setting_default" adlı zorunlu bir özellik otomatik olarak eklenir.
cfg default = Yok
Ayarlanırsa, kuralın analizden önce kendi yapılandırmasına uygulayacağı yapılandırma geçişine işaret eder.
exec_groups dict; or None; default = None
Yürütme grubu adının (dize) değerini exec_groups olarak değiştirin. Ayarlandığında kuralların tek bir hedef içindeki birden fazla yürütme platformunda işlem çalıştırmasına izin verir. Daha fazla bilgi için yürütme grupları dokümanlarına bakın.
compile_one_filetype sequence of strings; or None; varsayılan = Yok
Kullanan --der_one_dependency: belirtilen dosya birden fazla kural tarafından kullanılıyorsa, bu kuralı diğerlerine göre seçmemiz gerekir.
name string; or None; varsayılan = Yok
Kullanımdan kaldırıldı. Bu parametre artık kullanılmamaktadır ve yakında kaldırılacaktır. Lütfen bu özelliğe güvenmeyin. --+incompatible_remove_rule_name_parameter ile devre dışı bırakıldı. Kodunuzun, yakında kaldırılmak üzere uygun olduğunu doğrulamak için bu işareti kullanın.
Kullanımdan kaldırıldı: Kullanmayın.

Bu kuralın, Bazel tarafından anlaşılan ve günlük kaydı, native.existing_rule(...)[kind] ve bazel query gibi bağlamlarda bildirilen adı. Genellikle bu, söz konusu kurala bağlanan Starlark tanımlayıcısıyla aynıdır. Örneğin, foo_library adlı bir kural genellikle foo_library = rule(...) olarak tanımlanır ve BUILD dosyasında foo_library(...) olarak somutlaştırılır.

Bu parametre atlanırsa kuralın adı, bildirilen .bzl modülünde bu kurala bağlanacak ilk Starlark genel değişkenin adı olarak ayarlanır. Dolayısıyla, ad foo_library ise foo_library = rule(...) öğesinin bu parametreyi belirtmesi gerekmez.

Bir kural için açık bir ad belirtmek, kuralı örneklendirmenize izin verilen yeri değiştirmez.

seç

unknown select(x, no_match_error='')

select(), bir kural özelliğini yapılandırılabilir hale getiren yardımcı işlevdir. Ayrıntılı bilgi için ansiklopedi oluşturma başlıklı makaleyi inceleyin.

Parametreler

Parametre Açıklama
x gerekli
Yapılandırma koşullarını değerlerle eşleştiren bir dikte. Her anahtar, bir config_setting veya restricted_value örneğini tanımlayan bir Label ya da etiket dizesidir. Dize yerine Etiketin ne zaman kullanılacağını öğrenmek için makrolarla ilgili dokümanlara bakın.
no_match_error default = ''
Hiçbir koşul eşleşmediğinde bildirilecek isteğe bağlı özel hata.

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

Bir bağımlılığın yine de bir kayıt defterinden gelmesi gerektiğini ancak sürümünün sabitlenmesi, kayıt defterinin geçersiz kılınması veya bir yama listesinin uygulanması gerektiğini belirtir. Bu yönerge yalnızca kök modülde etkili olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yoksayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
version default = ''
Bağımlılık grafiğinde bu modülün bildirilen sürümünü geçersiz kılar. Başka bir deyişle, bu modül bu geçersiz kılma sürümüne "sabitlenir". Biri geçersiz kılma işlemi yapmak isteyen tek kişi kayıt defteri veya yamalarsa bu özellik atlanabilir.
registry default = ''
Bu modülün kayıt defterini geçersiz kılar. Bu modülü varsayılan kayıt otoriteleri listesinden bulmak yerine, belirtilen kayıt kullanılmalıdır.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarına işaret eden etiketlerin listesi. Yama dosyaları üst düzey projenin kaynak ağacında bulunmalıdır. Liste sırasına göre uygulanırlar.
patch_cmds Iterable of strings; default = []
Yamalar uygulandıktan sonra Linux/Macos'a uygulanacak Bash komutları dizisi.
patch_strip default = 0
Unix yamasının --strip bağımsız değişkeniyle aynıdır.

sıralandı

list sorted(iterable, *, key=None, reverse=False)

Sağlanan yinelenebilir dizinin tüm öğelerini içeren yeni bir sıralı liste döndürür. Herhangi bir x ve y öğesi çifti x < y kullanılarak karşılaştırılamazsa hata oluşabilir. Ters bağımsız değişken True (Doğru) olmadığı sürece, öğeler azalan düzende sıralanır. Sıralama sabittir: Eşit şekilde karşılaştırılan öğeler orijinal göreli sıralarını korur.
sorted([3, 5, 4]) == [3, 4, 5]

Parametreler

Parametre Açıklama
iterable gerekli
Sıralama için yinelenebilir sıradır.
key default = Yok
Karşılaştırmadan önce her öğeye uygulanan isteğe bağlı bir işlev.
reverse default = False
Sonuçları azalan düzende döndürür.

str

string str(x)

Herhangi bir nesneyi dizeye dönüştürür. Bu, hata ayıklama için kullanışlıdır.
str("ab") == "ab"
str(8) == "8"

Parametreler

Parametre Açıklama
x gerekli
Dönüştürülecek nesne.

tag_class

tag_class tag_class(attrs={}, *, doc='')

Modül uzantısı tarafından kullanılabilecek veri nesneleri olan bir etiket sınıfı için özellik şeması tanımlayan yeni bir tag_class nesnesi oluşturur.

Parametreler

Parametre Açıklama
attrs default = {}
Bu etiket sınıfının tüm özelliklerini tanımlamak için kullanılan bir sözlük. Bir özellik adından özellik nesnesine eşlenir (attr modülüne bakın).
doc default = ''
Doküman oluşturma araçları tarafından alınabilecek etiket sınıfının açıklaması.

tuple

tuple tuple(x=())

Belirtilen tekrarlanabilir değerle aynı öğelere sahip bir tuple döndürür.
tuple([1, 2]) == (1, 2)
tuple((2, 3, 2)) == (2, 3, 2)
tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)

Parametreler

Parametre Açıklama
x default = ()
Dönüştürülecek nesne.

tür

string type(x)

Bağımsız değişkeninin tür adını döndürür. Bu, hata ayıklama ve tür denetimi için kullanışlıdır. Örnekler:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
Bu işlev ileride değişebilir. Python ile uyumlu kod yazmak ve geleceğe hazır olmak için bu kodu yalnızca dönüş değerlerini karşılaştırmak amacıyla kullanın:
if type(x) == type([]):  # if x is a list

Parametreler

Parametre Açıklama
x gerekli
Türü kontrol edilecek nesne.

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

Modül uzantısını temsil eden bir proxy nesnesi döndürür. Yöntemleri, modül uzantı etiketleri oluşturmak üzere çağrılabilir.

Parametreler

Parametre Açıklama
extension_bzl_file gerekli
Modül uzantısını tanımlayan Starlark dosyasının etiketi.
extension_name gerekli
Kullanılacak modül uzantısının adı. Bu ada sahip bir sembol, Starlark dosyası tarafından dışa aktarılmalıdır.
dev_dependency default = False
Geçerli modül kök modül değilse veya "--ignore_dev_dependency" etkinse modül uzantısının bu kullanımı Doğru değerine ayarlanırsa yok sayılır.
isolate default = False
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değişebilir. Lütfen bu özelliğe güvenmeyin. ---experimental_isolated_extension_usages ayarıyla deneysel olarak etkinleştirilebilir.
Doğru ise modül uzantısının hem bu hem de diğer modüllerdeki diğer kullanımlarından izole edilir. Bu kullanım için oluşturulan etiketler diğer kullanımları etkilemez ve uzantının bu kullanım için oluşturduğu kod depoları, uzantı tarafından oluşturulan diğer tüm kod depolarından ayrı olur.

Bu parametre şu anda deneme aşamasındadır ve yalnızca --experimental_isolated_extension_usages işaretiyle kullanılabilir.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

Belirtilen modül uzantısı tarafından oluşturulan bir veya daha fazla depoyu mevcut modülün kapsamına içe aktarır.

Parametreler

Parametre Açıklama
extension_proxy gerekli
use_extension çağrısı tarafından döndürülen bir modül uzantısı proxy nesnesi.
args gerekli
İçe aktarılacak depoların adları.
kwargs gerekli
Mevcut modülün kapsamına farklı adlarla içe aktarılacak belirli depoları belirtir. Anahtarlar geçerli kapsamda kullanılacak ad olmalıdır, değerler ise modül uzantısı tarafından dışa aktarılan orijinal adlar olmalıdır.

görünürlük

None visibility(value)

Başlatılmakta olan .bzl modülünün yük görünürlüğünü ayarlar.

Bir modülün yük görünürlüğü, diğer BUILD ve .bzl dosyalarının onu yükleyip yükleyemeyeceğini belirler. (Bu ayar, temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır. Bu kaynak dosyanın diğer hedeflere bağımlı bir durumda görünüp görünmeyeceğini belirler.) Yük görünürlüğü, paket düzeyinde çalışır: Bir modülü yüklemek için, yüklemeyi yapan dosyanın, modül için görünürlük izni verilen bir pakette olması gerekir. Bir modül, görünürlüğü ne olursa olsun her zaman kendi paketi içinde yüklenebilir.

visibility(), her .bzl dosyası için yalnızca bir kez ve bir işlevin içinde değil, yalnızca en üst düzeyde çağrılabilir. Tercih edilen stil, bu çağrının load() ifadelerinin ve bağımsız değişkeni belirlemek için gereken kısa mantığın hemen altına yerleştirilmesidir.

--check_bzl_visibility işareti false (yanlış) değerine ayarlanırsa yük görünürlüğü ihlalleri uyarı verir ancak derlemede başarısız olmaz.

Parametreler

Parametre Açıklama
value gerekli
Paket spesifikasyonu dizelerinin listesi veya tek bir paket spesifikasyonu dizesi.

Paket spesifikasyonları package_group ile aynı biçime sahiptir, ancak negatif paket özelliklerine izin verilmez. Yani bir spesifikasyonda şu formlar bulunabilir:

  • "//foo": //foo paketi
  • "//foo/...": //foo paketi ve tüm alt paketleri.
  • "public" veya "private": sırasıyla tüm paketler veya paket yok

"@" söz dizimine izin verilmez; tüm özellikler mevcut modülün deposuna göre yorumlanır.

value bir dize listesiyse bu modüle görünürlük izni verilen paket kümesi, her spesifikasyon tarafından temsil edilen paketlerin birleşimidir. (Boş liste private ile aynı etkiye sahiptir.) value tek bir dizeyse [value] tekil listesiymiş gibi değerlendirilir.

--incompatible_package_group_has_public_syntax ve --incompatible_fix_package_group_reporoot_syntax işaretlerinin bu bağımsız değişken üzerinde etkisi olmadığını unutmayın. "public" ve "private" değerleri her zaman kullanılabilir ve "//..." her zaman "mevcut depodaki tüm paketler" olarak yorumlanır.

çalışma alanı

None workspace(name)

Bu işlev yalnızca WORKSPACE dosyasında kullanılabilir ve WORKSPACE dosyasındaki diğer tüm işlevlerden önce bildirilmelidir. Her WORKSPACE dosyasının bir workspace işlevi olmalıdır.

Bu çalışma alanının adını ayarlar. Çalışma alanı adları, projenin Java paketi tarzında bir açıklaması olmalı ve ayırıcı olarak alt çizgiler kullanılmalıdır. Örneğin github.com/bazelbuild/bazel, com_github_bazelbuild_bazel kullanmalıdır.

Bu ad, deponun çalıştırma dosyalarının depolandığı dizin için kullanılır. Örneğin, yerel depoda bir runfile foo/bar varsa ve WORKSPACE dosyası workspace(name = 'baz') içeriyorsa, çalıştırma dosyası mytarget.runfiles/baz/foo/bar altında kullanılabilir olacaktır. Herhangi bir çalışma alanı adı belirtilmediyse çalıştırma dosyası, bar.runfiles/foo/bar ile simgesel olarak bağlanır.

Uzak depo kural adları, geçerli çalışma alanı adları olmalıdır. Örneğin, maven_jar(name = 'foo') kullanılabilir ancak maven_jar(name = 'foo%bar') kullanılamaz. Bazel, workspace(name = 'foo%bar') içeren maven_jar için WORKSPACE dosyası yazmaya çalışır.

Parametreler

Parametre Açıklama
name zorunlu
çalışma alanının adını girin. Adlar bir harfle başlamalıdır ve yalnızca harf, rakam, alt çizgi, kısa çizgi ve nokta içerebilir.

zip

list zip(*args)

tuple sayısının list değerini döndürür. Burada i'inci unsur, bağımsız değişken dizilerinin veya iterasyonların her birinden i'inci öğeyi içerir. Listede en kısa giriş boyutu bulunur. Yinelenebilir tek bir bağımsız değişkenle, 1 unsur listesi döndürür. Bağımsız değişken olmadığında boş bir liste döndürür. Örnekler:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

Parametreler

Parametre Açıklama
args gerekli
listelerin bir listesini çıkarırsınız.