Küresel

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

Üyeler

tümü

bool all(elements)

Tüm öğeler Doğru 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-test 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şlevi kullanarak 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 Çerçevesi çekirdek kitaplığını kolaylaştırmak amacıyla tasarlanmıştır. En iyi uygulamalar için ürünün dokümanlarına (veya uygulamasına) bakın.

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 ayarların hiçbiri değişmez. Bir analiz testinin geçmesi 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 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 defterinden değil, belirli bir konumdaki bir arşiv dosyasından (zip, gzip vb.) gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modül tarafından kullanılabilir. Diğer bir deyişle, bir modül herhangi bir geçersiz kılma belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılma işleminin 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ının sırası.
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 Özellikler'e giriş bölümünü inceleyin.

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, analiz aşamasında bir unsurun hedefe her bir uygulaması için 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. Buradaki genel değerler arasında deps ve exports yer alır. Liste, bir hedefin tüm bağımlılıkları boyunca yayılacak 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ı özelliklerin varsayılan değerleri ve label veya label_list türünde olması gerekir.

Açık özellikler string türünde olmalı ve values kısıtlamasını kullanmalıdır. Açık özellikler, en boy özelliğinin yalnızca kısıtlamaya göre aynı ada, türe ve geçerli değerlere sahip özelliklere sahip kurallarla kullanılmasını kısıtlar.

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

İç içe aktarılmamış 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) hedeflerin bir özellik tarafından görülebilmesi için some_rule, gerekli sağlayıcı listelerinden en az birindeki tüm sağlayıcıların reklamını yapmalıdır. Örneğin, bir boyutun required_providers değeri [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] ise bu özellik yalnızca some_rule, FooInfo *veya* BarInfo *ya da* hem BazInfo *ve* QuxInfo sağlarsa some_rule hedeflerini görebilir.

required_aspect_providers default = []
Bu özellik, bu özelliğin diğer yönleri incelemesine olanak tanır. Değer, tek tek sağlayıcıları veya sağlayıcı listelerini içeren bir liste olmalıdır, ancak her ikisini birden içeremez. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerdir ancak [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

İç içe aktarılmamış 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 özellik açısından 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 *veya* hem BazInfo *hem de* QuxInfo sağladığında 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ürdüğü değerden çıkarırsa bir hata oluşur. Ancak, uygulama işlevi burada listelenmeyen ek sağlayıcılar döndürebilir.

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

requires sequence of Aspects; varsayılan = []
Bu yönden önce yayılması gereken özelliklerin 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 grubu. 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ılması gerekiyor.
doc default = ''
Belge oluşturma araçlarıyla çıkarılabilecek ö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" özelliği üzerinden geçişli olarak yayıldığını ve "False" (Yanlış) özelliği üzerinden yayıldığını ve "alpha" hedefine yayıldığını varsayalım. "alpha"nın "deps = [":beta_output"]" değerine sahip olduğunu ve burada "beta_output"un, bir hedef "beta" hedef çıkışı olduğunu varsayalım. "beta"nın "alfa" en boylarından biri için hedef "charlie" olduğunu varsayın ve "alfa" en boylarından biri olarak "charlie"yi hedef alır ve ardından "alfa" en boy oranına uygulayacağını varsayalım.

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

exec_compatible_with sequence of strings; varsayılan = []
Yürütme platformunda bu özelliğin 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ı (dize) dikteyi exec_groups olarak ayarlayın. Ayarlanırsa özelliklerin 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 göz atın.

bazel_dep

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

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

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ü.
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
True (doğru) değerine ayarlanırsa mevcut modül kök modül değilse veya "--ignore_dev_dependency" etkinse bu bağımlılık yoksayılır.

bind

None bind(name, actual=None)

Uyarı: bind() kullanılması önerilmez. Sorunları ve alternatifleriyle ilgili uzun açıklamalar için Bağlamayı kaldırma bölümüne bakın.

//external paketinde bir hedefe takma ad verir.

Parametreler

Parametre Açıklama
name gerekli
'//external' altındaki etiket, takma ad olarak kullanılır
actual string; or None; varsayılan = Yok
Diğer adı kullanılacak 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 varsayılan = Yanlış
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 bir değere başvuruda bulunur. Değer, değer belirlenmeden önce yapılandırmanın oluşturulmasını gerektiriyorsa "gecikme sınırı"dır. 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ğeri içeren bir yapılandırma parçasının adı.
name gerekli
Yapılandırma parçasından alınacak değerin adı.

bitirmek

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

Bir dpset oluşturur. direct parametresi, depset öğesinin doğrudan öğelerinin listesidir. transitive parametresi ise öğeleri oluşturulan desteğin dolaylı öğeleri haline gelen alt kaynakların 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.

Depset'in 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, depset kümesinin tüm öğelerine karma oluşturma işlemi uygulanabilir. Ancak bu değişmez 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 dep kümesinin sırası, transitive alt kümelerinin sıralamasıyla uyumlu olmalıdır. "default" siparişi diğer tüm siparişlerle uyumludur, diğer tüm siparişler yalnızca kendileriyle uyumludur.

Geriye-ileri uyumlulukla ilgili not alın. Bu işlev şu anda konumsal items parametresini kabul ediyor. Artık desteği sonlandırılmış olup ileride kaldırılacaktır. Ayrıca, direct kaldırıldıktan sonra depset işlevinin tek konum parametresi olacaktır. Bu nedenle, aşağıdaki çağrıların ikisi de 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 kullanımdan kaldırma işleminin doğrudan öğelerinin listesi.
order default = "default"
Yeni erişim kümesinin geçiş stratejisi. Olası değerler için buraya bakın.
transitive sequence of depsets; or None; default = None
Öğeleri, desteğin dolaylı öğeleri olacak olan uygulamaların yer aldığı bir liste.

dict

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

İsteğe bağlı konumsal bir bağımsız değişken ve isteğe bağlı bir anahtar kelime bağımsız değişkeni grubundan bir sözlük oluşturur. Aynı anahtarın birden çok 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şkenle sağlanan girişlerden sonra gelir.

Parametreler

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

dir

list dir(x)

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

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 listesi (iki öğeli unsur) döndürür.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

Parametreler

Parametre Açıklama
list gerekli
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 uygulama 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; varsayılan = []
Yürütme platformundaki kısıtlamalar listesi.
copy_from_rule default = False
Doğru değerine ayarlanırsa bu yönetici grubu, bu grubun eklendiği kuralın araç zincirlerini ve kısıtlamalarını devralır. Başka bir dizeye ayarlanırsa hata verilir.

başarısız

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

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

Parametreler

Parametre Açıklama
msg default = Yok
Kullanımdan kaldırıldı: Bunun yerine konumsal bağımsız değişkenler kullanın. Bu argüman gizli bir öncü konumsal bağımsız değişken 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, str ile biçimlendirilmiş ve boşluklarla birleştirilmiş değerlerin listesi.

float

float float(x=unbound)

Kayan değer olarak x değerini döndürür.
  • x zaten bir kesirli sayıysa float bunu değiştirmeden döndürür.
  • x bir Bool ise float, Doğru için 1.0 ve Yanlış 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 döndürür.
  • x bir dizeyse bu, 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). İsteğe bağlı olarak öncesinde + veya - işareti olmalıdır.
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ı (varsa) döndürür. Aksi takdirde, default (belirtilmişse) döndürür veya bir hata verir. getattr(x, "foobar"), x.foobar ile 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 belirtilen ada sahip bir özelliğe sahip 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, bir Git deposunun belirli bir kaydından gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modül tarafından kullanılabilir. Diğer bir deyişle, bir modül herhangi bir geçersiz kılma belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılma işleminin uygulanacağı Bazel modülü bağımlılığının adı.
remote gerekli
Uzak Git deposunun URL'si.
commit default = ''
Kontrol edilmesi gereken kayıt.
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ının sırası.
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 özelliğinin bir özelliğine veya yöntemine sahipse Doğru değerini, aksi takdirde 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. Örneğin:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Dizelerin yanı sıra değerlerin karma oluşturma işlemi ş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ı değeri 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 Yanlış için 0 değerini döndürür.
  • x bir dizeyse <sign><prefix><digits> biçiminde olmalıdır. <sign>, "+" ya da "-" değerine sahip veya boş (pozitif olarak yorumlanır). <digits>, 0'dan base - 1'e kadar olan bir sayı dizisidir. Burada, a-z (veya eşdeğer olarak A-Z) harfleri 10-35 için rakam olarak kullanılır. base değerinin 08.02.2016 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 veya 0 özel değeri dışında başka bir değerse önek boş olmalıdır. base ifadesinin 0 olduğu durumda dize, kullanılan ön eke bağlı olarak 2/8/10/16 tabanlarından biri seçildiği için 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 basamak arasında karışıklık olmasını önlemektir. Dizenin temsil ettiği sayının büyüklüğü, int türü için izin verilen aralıkta olmalıdır.
  • x bir ondalık sayıysa int, sıfıra doğru yuvarlanarak ondalık değerinin tam sayı değerini döndürür. x sonlu değilse (NaN veya sonsuzsa) bir hatadır.
x başka bir türse veya değer yukarıdaki biçime uymayan 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şkene ve dize bağımsız değişkenlerinde 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 değerine ayarlanır. 2 ile 36 (dahil) arasında veya x, değişmez tam sayıymış gibi tabanın 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 dizenin 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ül tarafından kullanılabilir. Diğer bir deyişle, bir modül herhangi bir geçersiz kılma belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılma işleminin 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 boş olmayan iterasyonlu olmalıdır.Öğeler karşılaştırılamıyorsa (örneğin, dizeyle int) veya bağımsız değişken sunulmuyorsa bu bir hatadır.
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

Parametreler

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

dak

unknown min(*args)

Verilen tüm bağımsız değişkenlerden en küçük olanı döndürür. Tek bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan yinelenebilir olmalıdır. Öğeler karşılaştırılamıyorsa (örneğin, dizeyle int) veya hiçbir bağımsız değişken sunulmuyorsa bu bir hatadır.
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=[])

Mevcut 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ı özelliklerinin 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ğlı olmayacaksa) atlanabilir.

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ğlı olmayacaksa) atlanabilir. Geçerli modül adı: 1) yalnızca küçük harf (a-z), rakam (0-9), nokta (.), kısa çizgi (-) ve alt çizgi (_) içermelidir; 2) küçük harfle başlamalı; 3) küçük harf 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ğlı olmayacaksa) atlanabilir.
compatibility_level varsayılan = 0
Modülün uyumluluk düzeyi. Uyumsuz önemli bir değişiklik yapıldığında bu değiştirilmelidir. Bu, SemVer açısından modülün "ana sürümü"dür. Tek fark, sürüm dizesinin içine yerleştirilmemiştir ve ayrı bir alan olarak mevcuttur. Farklı uyumluluk düzeylerine sahip modüller, farklı adlara sahip modüllermiş gibi sürüm çözünürlüğüne katılır. Ancak nihai bağımlılık grafiği, aynı ada ancak farklı uyumluluk düzeylerine sahip birden çok modül içeremez (multiple_version_override etkin değilse; daha fazla ayrıntı için oraya 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. Kendisi modül adından farklı bir depo adı kullanan projeler için taşıma işlemini kolaylaştırmak amacıyla bu belirtilebilir.
bazel_compatibility Iterable of strings; default = []
Kullanıcıların bu modülle hangi Bazel sürümlerinin uyumlu olduğunu 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.ye eşit veya daha yeni olmalıdır. Yalnızca X.X.X. -X.X.X ve sonrasında kullanılabilen bazı özelliklere bağlı olduğunuzda kullanılır. Bazel X.X.X sürümü uyumlu değildir. X.X.X'te sizi bozan ancak sonraki sürümlerde düzeltilen bir hata olduğunda kullanılır.

module_extension

unknown module_extension(implementation, *, tag_classes={}, doc='')

Yeni bir modül uzantısı oluşturur. MODULE.bazel dosyasında dışa aktarılıp kullanılabilmesi için global 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ı belirtmek için bir sözlük. Etiket sınıfı adından bir tag_class nesnesine eşlenir.
doc default = ''
Doküman oluşturma araçları tarafından çıkarılabilen modül uzantısının bir açıklaması.

multiple_version_override

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

Bir bağımlılığın kayıt defterinden gelmeye devam etmesi gerektiğini ancak birden fazla sürümünün birlikte bulunmasına izin verilmesi gerektiğini belirtir. Bu yönerge yalnızca kök modül tarafından kullanılabilir. Diğer bir deyişle, bir modül herhangi bir geçersiz kılma belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılma işleminin 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ça belirtir. Bu sürümler, bağımlılık grafiği ön seçiminde halihazırda 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 otoritesi kullanılmalıdır.

yazdır

None print(sep=" ", *args)

args dosyasını hata ayıklama çıktısı olarak yazdırır. Bu aramanın önüne "DEBUG" dizesi ve bu çağrının konumunu (dosya ve satır numarası) eklenir. Bağımsız değişkenlerin dizelere tam olarak hangi yöntemle dönüştürülmesi gerektiği belirtilmemiştir ve herhangi bir zamanda değiştirilebilir. Ö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ünse fail() kullanılmasını tercih edin.

Parametreler

Parametre Açıklama
sep default = " "
Nesneler arasındaki ayırıcı dize. Varsayılan olarak boşluk (" ") kullanılır.
args gerekli
Yazdırılacak nesneler.

sağlayıcı

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

Sağlayıcı simgesi tanımlar. Sağlayıcı, çağrı yapılarak örneklenebilir veya bir hedeften söz konusu sağlayıcının bir ö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ğıyla ilgili kapsamlı bir kılavuz için Kurallar (Sağlayıcılar) bölümüne bakın.

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

init belirtilirse 2 öğeden oluşan bir çift döndürür: Provider çağrılabilir değeri ve ham oluşturucu çağrılabilir değeri. Ayrıntılar için Kurallar (Özel sağlayıcıların özelleştirmesi) bölümüne ve aşağıdaki init parametresine ilişkin açıklamalara bakın.

Parametreler

Parametre Açıklama
doc default = ''
Doküman oluşturma araçlarıyla alınabilen, sağlayıcının 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; default = None
Örnekleme sırasında sağlayıcının alan değerlerinin ön işlemesi 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.

Kesin 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ı simgesi P olsun. Kavramsal olarak P örneği, aşağıdaki işlemleri 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ıldığında fields parametresi belirtildiyse ve kwargs, fields içinde listelenmeyen bir anahtar içeriyorsa bir hata oluşur.
  • Aksi takdirde c, kwargs içindeki 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ının verilmediği durumda, P simgesine yapılan bir çağrı, c varsayılan oluşturucu işlevine bir çağrı olarak hareket eder; 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 öğesini m.foo == 1 içeren bir MyInfo örneği olacak şekilde doğrudan yapar.

Ancak init belirtildiğinde P(*args, **kwargs) çağrısı şu adımları gerçekleştirir:

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

Not: Yukarıdaki adımlarda, *args veya **kwargs, init imzasıyla eşleşmezse ya da init gövdesinin değerlendirmesi (bilerek fail() aracılığıyla yapılan bir çağrı aracılığıyla) başarısız olursa ya da init döndürülen değer beklenen şemaya sahip bir sözlük değilse bir hata oluştuğu anlamına gelir.

Bu şekilde init geri çağırması, ön işleme ve doğrulama için konumsal bağımsız değişkenlere ve rastgele mantığa izin vererek normal sağlayıcı yapısını genelleştirir. Ancak, izin verilen fields listesinin atlatılmasına izin verilmez.

init belirtildiğinde provider(), döndürülen değer (P, r) haline gelir. Burada r, ham oluşturucudur. Aslında r işlevi, tam olarak yukarıda açıklanan varsayılan oluşturucu fonksiyonunun c davranışıyla aynıdır. r, genellikle adının önüne alt çizgi eklenmiş 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 değerinde artış kullanarak, start ile stop aralığındaki öğelerin bulunduğu 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
oluşturulan listeye dahil edilmeyecek ilk öğenin isteğe bağlı dizini; stop değerine ulaşılmadan önce liste oluşturma işlemi durdurulur.
step varsayılan = 1
Artım (varsayılan 1'dir). Olumsuz olabilir.

register_execution_platforms()

None register_execution_platforms(*platform_labels)

Önceden tanımlanmış bir platformu kaydederek Bazel'ın araç zinciri çözümü sırasında bu platformu bir 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()

None register_execution_platforms(*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 (yani, @ veya // ile başlamalıdır). Daha fazla bilgi için araç zinciri çözünürlüğüne bakın.

Parametreler

Parametre Açıklama
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'in bu araç zincirini araç zinciri çözümü sırasında kullanabilirsiniz. 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()

None register_toolchains(*toolchain_labels)

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

Parametreler

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

repository_rule(uygulama, attrs, yerel, environ, yapılandır, uzaklaştırılan, doküman)

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 bir örneği için yükleme aşamasında çağrılır.
attrs dict; or None; default = Yok
sözlüğü. Bir özellik adından özellik nesnesine eşlenir (bkz. attr modülü). _ ile başlayan özellikler gizlidir ve bir dosyaya dolaylı bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı yoldan eklenmiştir ve belirtilmemelidir.
local varsayılan = Yanlış
Bu kuralın yerel sistemden her şeyi getirdiğini ve her getirme işleminde yeniden değerlendirilmesi gerektiğini belirtin.
environ sequence of strings; default = []
Bu depo 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 varsayılan = Yanlış
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değiştirilebilir. Lütfen bu özelliğe güvenmeyin. ---experimental_repo_remote_exec ayarıyla
Uzaktan yürütmeyle uyumlu
doc default = ''
Doküman oluşturma araçları tarafından çıkarılabilen kod deposu kuralının açıklaması.

repository_rule(uygulama, attrs, yerel, environ, yapılandır, uzaklaştırılan, doküman)

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 bir örneği için yükleme aşamasında çağrılır.
attrs dict; or None; default = Yok
sözlüğü. Bir özellik adından özellik nesnesine eşlenir (bkz. attr modülü). _ ile başlayan özellikler gizlidir ve bir dosyaya dolaylı bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı yoldan eklenmiştir ve belirtilmemelidir.
local varsayılan = Yanlış
Bu kuralın yerel sistemden her şeyi getirdiğini ve her getirme işleminde yeniden değerlendirilmesi gerektiğini belirtin.
environ sequence of strings; default = []
Bu depo 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 varsayılan = Yanlış
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değiştirilebilir. Lütfen bu özelliğe güvenmeyin. ---experimental_repo_remote_exec ayarıyla
Uzaktan yürütmeyle uyumlu
doc default = ''
Doküman oluşturma araçları tarafından çıkarılabilen kod deposu kuralının açıklaması.

yy

string repr(x)

Herhangi bir nesneyi dize gösterimine dönüştürür. Bu, hata ayıklama için yararlı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, dondurulmamış bir listeyi döndürür.
reversed([3, 5, 4]) == [4, 5, 3]

Parametreler

Parametre Açıklama
sequence gerekli
Ters alınacak yinelenebilir adım sırası (ö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 makrodan çağrılabilecek yeni bir kural oluşturur.

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

Test kurallarının adı _test ile bitmelidir. Diğer 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şlevi, tam olarak bir parametreye sahip olmalıdır: ctx. İşlev, kuralın her bir ö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şturmalıdır.
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ı gerekmez (ve önerilmez). Daha fazla bilgi için Kurallar sayfasına göz atın.
attrs dict; or None; default = Yok
sözlüğü. Bir özellik adından özellik nesnesine eşlenir (bkz. attr modülü). _ ile başlayan özellikler gizlidir ve bir etikete dolaylı bağımlılık eklemek için kullanılabilir. name özelliği dolaylı yoldan eklenmiştir ve belirtilmemelidir. visibility, deprecation, tags, testonly ve features özellikleri dolaylı yoldan eklenir ve geçersiz kılınamaz. Çoğu kural yalnızca birkaç özelliğe ihtiyaç duyar. Kural işlevi, bellek kullanımını sınırlamak için attr'lerin 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ılır. Kodunuzun, hemen kaldırılmak üzere uygun olduğunu doğrulamak için bu işareti kullanın.
Bu parametre kullanımdan kaldırıldı. Bunun yerine OutputGroupInfo veya attr.output kullanacak şekilde 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, 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 belirtilsin, aşağıdaki gibi yorumlanır.

Sözlükte her giriş, anahtarın bir tanımlayıcı, değerin 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'te çıkışın File değerine erişmek için kullanılan alan adı olur. Çıkışın etiketi kuralla aynı pakete sahiptir ve "%{ATTR}" formunun her bir yer tutucusu, ATTR özelliğinin değerinden oluşturulmuş bir dizeyle değiştirilerek paketten sonraki bölüm oluşturulur:

  • Dize türünde özellikler kelimesi kelimesine değiştirilir.
  • Etiketle belirtilen özellikler, dosya uzantısı çıkarılarak paketten sonraki etiketin parçası haline gelir. Örneğin, "//pkg:a/b.c" etiketi "a/b" olur.
  • Çıkış türü ö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ünde özellikler (örneğin, attr.label_list) tam olarak bir öğeye sahip olmalıdır. Bu kullanıcının dönüşümü, liste dışı sürümüyle (attr.label) aynı.
  • Diğer özellik türleri yer tutucularda görünmeyebilir.
  • Özellik dışı özel yer tutucular %{dirname} ve %{basename}, paketi hariç olmak üzere kural etiketinin bu bölümlerine genişler. Örneğin "//pkg:a/b.c" içinde dirname a, temel ad ise b.c olur.

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

executable default = False
Bu kuralın yürütülebilir olarak kabul edilip edilmediği, yani bir blaze run komutunun konusu olup olmadığı. Daha fazla bilgi için Kurallar sayfasına göz atın.
output_to_genfiles default = False
Doğru değerine ayarlanırsa dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk açısından gerekli olmadığı sürece (ör. C++ için üstbilgi dosyaları oluştururken) bu işareti ayarlamayın.
fragments sequence of strings; default = []
Kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının 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 varsayılan = Yanlış
(Deneysel)

Doğru ise bu kural, Actions sağlayıcısı aracılığıyla kendisine bağlı kuralları temel alarak yaptığı işlemleri inceleme için gösterir. Sağlayıcı, ctx.created_actions() işlevini çağırarak kuralın kendisi için de 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 grubu. 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ılması gerekiyor.
doc default = ''
Doküman oluşturma araçları tarafından çıkarılabilen 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ürdüğü değerden çıkarırsa bir hata oluşur. Ancak, uygulama işlevi burada listelenmeyen ek sağlayıcılar döndürebilir.

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

exec_compatible_with sequence of strings; varsayılan = []
Yürütme platformunda bu kural türünün tüm hedefleri için geçerli olan 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ın özelliklerinde analysis_test_transition kullanılarak tanımlanan yapılandırma geçişlerinin kullanılmasına izin verilir, ancak bazı kısıtlamalar uygulanır:

  • Bu kuralın hedefleri, sahip olabilecekleri geçişli bağımlılıkların sayısı ile 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 bir build setting olduğunu açıklar. config modülüne bakın. 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 varsayılan = Yok
Ayarlanırsa, kuralın analizden önce kendi yapılandırmasına uygulanacak yapılandırma geçişine işaret eder.
exec_groups dict; or None; default = None
Yürütme grubu adını (dize) dikteyi exec_groups olarak ayarlayın. Ayarlanırsa kuralların tek bir hedef içinde birden çok yürütme platformunda işlem çalıştırmasına izin verir. Daha fazla bilgi için yürütme grupları dokümanlarına göz atın.
compile_one_filetype sequence of strings; or None; varsayılan = Yok
Kullanan --der_one_dependency: Belirtilen dosya birden fazla kural tarafından tüketilirse 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ılır. Kodunuzun, hemen 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şıldığı ve günlük kaydı, native.existing_rule(...)[kind] ve bazel query gibi bağlamlarda bildirilen adı. Genellikle bu, bu 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 DERLEME 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şkeninin adı olarak ayarlanır. Dolayısıyla, ad foo_library ise foo_library = rule(...) parametresinin bu parametreyi belirtmesi gerekmez.

Bir kural için açık bir ad belirtmeniz, kuralı oluşturmanıza izin verilen yeri değiştirmez.

seçer

unknown select(x, no_match_error='')

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

Parametreler

Parametre Açıklama
x gerekli
Yapılandırma koşullarını değerlerle eşleştiren bir komut. Her anahtar, 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ül tarafından kullanılabilir. Diğer bir deyişle, bir modül herhangi bir geçersiz kılma belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılma işleminin 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". Geçersiz kılma işleminin tümü 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 otoritesi 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ının sırası.
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ıralanmış liste döndürür. Herhangi bir x ve y öğesi çifti x < y kullanılarak karşılaştırılamazsa bir hata oluşabilir. Ters bağımsız değişken Doğru değerine eşit olmadığı sürece öğeler azalan düzende sıralanır. Sıralama sabittir: Eşit olarak 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 varsayılan = Yok
Karşılaştırmadan önce her öğeye uygulanan isteğe bağlı bir işlev.
reverse varsayılan = Yanlış
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 yararlı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ılabilen veri nesneleri olan 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 (bkz. attr modülü).
doc default = ''
Doküman oluşturma araçları tarafından çıkarılabilen etiket sınıfının açıklaması.

tuple

tuple tuple(x=())

Verilen yinelenebilir 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şkenin tür adını döndürür. Bu özellik, 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 gelecekte değişebilir. Python ile uyumlu kod yazıp geleceğe hazır olmak için bu kodu yalnızca döndürülen değerleri karşılaştırmak için 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)

Bir modül uzantısını temsil eden bir proxy nesnesi döndürür. Yöntemler, modül uzantı etiketleri oluşturmak için ç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
Doğru değerine ayarlanırsa mevcut modül kök modül değilse veya "--ignore_dev_dependency" etkinse modül uzantısının bu kullanımı yoksayılır.

use_repo

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

Belirtilen modül uzantısı tarafından oluşturulan bir veya daha fazla depoyu geçerli 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ükleme 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, temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır. Bu kaynak, dosyanın diğer hedeflerin bağımlılığı olarak görünüp görünemeyeceğ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ün görünürlüğüne izin verilen bir pakette bulunması 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 yalnızca üst düzeyde çağrılabilir, bir işlevin içinde çağırılamaz. 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 dizeleri listesi veya tek bir paket spesifikasyonu dizesi.

Paket özellikleri, package_group ile aynı biçime sahiptir, ancak negatif paket özelliklerine izin verilmez. Yani bir spesifikasyon şu şekillerde olabilir:

  • "//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 spesifikasyonlar geçerli 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 spesifikasyonun temsil ettiği paketlerin birleşimidir. (Boş liste private ile aynı etkiye sahiptir.) value tek bir dizeyse [value] tekil listesi gibi ele alınır.

--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 bir WORKSPACE dosyasında kullanılabilir ve WORKSPACE dosyasındaki diğer tüm işlevlerden önce bildirilmelidir. Her WORKSPACE dosyası bir workspace işlevine sahip 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 çizgi 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 çalıştırma dosyası foo/bar bulunuyorsa ve WORKSPACE dosyası workspace(name = 'baz') dosyası içeriyorsa çalıştırma dosyası mytarget.runfiles/baz/foo/bar altında kullanılabilir. Çalışma alanı adı belirtilmezse çalıştırma dosyası, bar.runfiles/foo/bar ile sembolik olarak bağlanır.

Uzak depo kural adları, geçerli çalışma alanı adları olmalıdır. Örneğin, maven_jar(name = 'foo') olabilir ancak maven_jar(name = 'foo%bar') olmayabilir. Çünkü Bazel, workspace(name = 'foo%bar') içeren maven_jar için bir WORKSPACE dosyası yazmaya çalışacaktır.

Parametreler

Parametre Açıklama
name gerekli
çalışma alanının adı. 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)

Bir tuple 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. Liste, en kısa girişin boyutuna sahiptir. Tek bir yinelenebilir bağımsız değişkenle, 1 unsurdan oluşan bir liste 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 zorunlu
listeler hazırlayın.