Küresel

. Global ortama 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 zorunlu
Bir dize veya öğe koleksiyonu.

analysis_test_transition

transition analysis_test_transition(settings)

Bir 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 olan kuralların özelliklerine uygulanabilir. Bu tür kuralların işlevleri sınırlıdır (örneğin, bağımlılık ağacı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 kapsam açısından sınırlıdır.

Bu işlev, temel olarak Analysis Test Framework temel kitaplığını kolaylaştırmak için tasarlanmıştır. En iyi uygulamalar için bu programın dokümanlarına (veya uygulanmasına) bakın.

Parametreler

Parametre Açıklama
settings zorunlu
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 de geçiş sonrası yeni değerleridir. Diğer ayarlar değişmez. Bir analiz testinin başarılı olması için ayarlanması gereken belirli yapılandırma ayarlarını bildirmek için bunu kullanın.

herhangi

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 zorunlu
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 sadece kök modül tarafından kullanılabilir; Diğer bir deyişle, bir modül geçersiz kılmalar belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name zorunlu
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
urls string; or Iterable of strings; gerekli
Arşivin URL'leri; http(s):// veya file:// URL'leri olabilir.
integrity varsayılan = ''
Arşiv dosyasının, Alt Kaynak Bütünlüğü biçiminde beklenen sağlama toplamı.
strip_prefix varsayılan = ''
Ayıklanan dosyalardan alınacak dizin ön eki.
patches Iterable of strings; varsayılan = []
Bu modüle uygulanacak yama dosyalarını 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; varsayılan = []
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi.
patch_strip varsayılan = 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 unsur yaratır. Bu işlevin sonucu, genel bir değerde depolanmalıdır. Daha fazla bilgi için lütfen Yönler'e giriş bölümünü inceleyin.

Parametreler

Parametre Açıklama
implementation zorunlu
Tam olarak iki parametre ile bu hususu uygulayan bir Starlark işlevi: Target (entegrasyonun uygulandığı hedef) ve ctx (hedefin oluşturulduğu kural bağlamı). Hedefin özelliklerine ctx.rule alanından erişilebilir. Bu işlev, bir özelliğin bir hedefe her uygulanması için analiz aşamasında değerlendirilir.
attr_aspects sequence of strings; varsayılan = []
Özellik adlarının listesi. Görünüm, bu adlara sahip bir hedefin özelliklerinde belirtilen bağımlılıklar boyunca yayılır. Buradaki yaygın değerler arasında deps ve exports bulunur. 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 açıklayan bir sözlük. Özellik adından "attr.label" veya "attr.string" gibi bir özellik nesnesiyle eşlenir (attr modülüne bakın). En boy özellikleri, uygulama işlevinde ctx parametresinin alanları olarak 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ını kullanmalıdır. Açık özellikler, en boy oranını yalnızca kısıtlamaya göre aynı ad, tür ve geçerli değerlere sahip kurallarla kullanılacak şekilde kısıtlar.

required_providers varsayılan = []
Bu özellik, özelliğin yayılmasını, yalnızca kuralları zorunlu sağlayıcıların reklamını yapan hedeflerle sınırlamasına olanak tanır. Değer, ya tek tek sağlayıcılar ya da sağlayıcı listeleri içeren bir liste olmalıdır (ikisini birden değil). Ö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ülecektir. Yani [FooInfo, BarInfo], otomatik olarak [[FooInfo, BarInfo]] biçimine dönüştürülecek.

Bazı kural (ör. some_rule) hedeflerinin bir özellik tarafından görülebilmesi için some_rule, zorunlu sağlayıcı listelerinden en az birindeki tüm sağlayıcıların reklamını yapmalıdır. Örneğin, bir özelliğin required_providers öğesi [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] ise bu özellik yalnızca some_rule, FooInfo *veya* BarInfo *ya da* BazInfo *ve* QuxInfo sağladığında some_rule hedeflerini görebilir.

required_aspect_providers varsayılan = []
Bu özellik, ilgili unsurun diğer unsurları incelemesine olanak tanır. Değer, ya tek tek sağlayıcılar ya da sağlayıcı listeleri içeren bir liste olmalıdır (ikisini birden değil). Ö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ülecektir. Yani [FooInfo, BarInfo], otomatik olarak [[FooInfo, BarInfo]] biçimine dönüştürülecek.

Bu unsura başka bir özelliğin (ör. other_aspect) görünür olması 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* BazInfo *ve* QuxInfo sağladığında other_aspect öğesini görebilir.

provides varsayılan = []
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 bu bir hatadır. 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 sağlayıcının bunun yerine dize adıyla temsil edilmesidir.

requires sequence of Aspects; varsayılan = []
Bu özellikten önce uygulanması gereken özelliklerin listesi.
fragments sequence of strings; varsayılan = []
Özelliğin hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi.
host_fragments sequence of strings; varsayılan = []
Özelliğin ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adlarının listesi.
toolchains sequence; varsayılan = []
Ayarlanırsa bu kuralın gerektirdiği araç zincirleri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla kuralın uygulanmasına sağlanır.
incompatible_use_toolchain_transition varsayılan = Yanlış
Kullanımdan kaldırıldı ve artık kullanılmıyor ve kaldırılması gerekiyor.
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek unsurun açıklaması.
apply_to_generating_rules varsayılan = Yanlış
Doğru değerine ayarlanırsa öğe, çıkış dosyasına uygulandığında çıkış dosyasının oluşturma kuralına uygulanır.

Örneğin, bir unsurun "deps" özelliği aracılığıyla geçişli olarak yayıldığını ve "alfa" hedefine uygulandığını varsayalım. "alfa"nın "deps = [':beta_çıkış"]" değerine sahip olduğunu ve burada "beta_çıkış" değerinin hedef "beta"nın bildirilen çıkışı olduğunu varsayalım. "Beta"nın "dep"lerinden biri olarak "charlie" hedefini içerdiğini varsayalım. En boy için "apply_to_generating_rules=True" değerini döndürürse en boy oranı "alfa", "beta" ve "charlie" üzerinden yayılır. Yanlış değerine ayarlanırsa en boy oranı yalnızca "alfa"ya aktarılır.

Varsayılan olarak False (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; varsayılan = Yok
Yürütme grubu adının (dize) exec_group sn olarak ayarlanmış hali. Ayarlanırsa özelliklerin tek bir örnek içinde birden fazla yürütme platformunda işlem çalıştırmasına olanak tanır. Daha fazla bilgi için yürütme grupları belgelerine göz atı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 zorunlu
Doğrudan bağımlılık olarak eklenecek modülün adı.
version varsayılan = ''
Doğrudan bağımlılık olarak eklenecek modülün sürümü.
max_compatibility_level varsayılan = -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_seviyesini ve bu özellik belirtilmezse maksimum uyumluluk düzeyini ifade eder.
repo_name varsayılan = ''
Bu bağımlılığı temsil eden harici deponun adı. Bu, varsayılan olarak modülün adıdır.
dev_dependency varsayılan = Yanlış
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 alternatifleri hakkında uzun bir tartışma için Bağlantıyı kaldırmayı göz önünde bulundurun bölümüne bakın.

//external paketinde bir hedefe takma ad verir.

Parametreler

Parametre Açıklama
name zorunlu
'//harici' altındaki etiket (Takma ad olarak kullanılır)
actual string; or None; varsayılan = Yok
Diğer adı verilecek gerçek etiket

bool

bool bool(x=False)

Bool türünün oluşturucusu. Nesne None, False, boş bir 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)

Etiket türündeki bir özellik için geç sınırlanan bir varsayılan değere başvuruda bulunuyor. Bir değer "geç sınırlanmış" yapılandırmanın gerekli olup olmadığını belirtmenizi öneririz. Bunu değer olarak kullanan tüm özellikler gizli olmalıdır.

Örnek kullanım:

Kural özelliği tanımlama:

'_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 zorunlu
Geç sınır değeri içeren bir yapılandırma parçasının adı.
name zorunlu
Yapılandırma parçasından alınacak değerin adı.

çökmüş

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

depset oluşturur. direct parametresi, depset'in doğrudan öğelerinin listesidir. transitive parametresi ise öğeleri, oluşturulan görüntünün dolaylı öğeleri haline gelen depset'lerin listesidir. Depset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order parametresiyle belirtilir. Daha fazla bilgi için Depsise genel bakış başlıklı makaleyi inceleyin.

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

Yineleme sırasında yinelemeleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, kümedeki tüm öğeler karma hale getirilebilir olmalıdır. Ancak bu değişken, şu anda tüm kurucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı denetim sağlamak için --incompliance_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 ileride gevşetilecektir.

Oluşturulan depsetin sırası, transitive depsetlerinin sırasıyla uyumlu olmalıdır. "default" siparişi diğer siparişlerle uyumludur, diğer tüm siparişler yalnızca kendileri ile uyumludur.

Geriye dönük uyumlulukla ilgili not: Bu işlev şu anda konumsal bir items parametresini kabul etmektedir. Kullanımdan kaldırıldı ve gelecekte kaldırılacak. direct, kaldırıldıktan sonra depset işlevinin tek konum parametresi haline gelecek. Bu nedenle, aşağıdaki çağrıların her 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 kümenin doğrudan öğelerinin listesi.
order varsayılan = "varsayılan"
Yeni konsol için geçiş stratejisi. Olası değerler için buraya bakın.
transitive sequence of depsets; or None; varsayılan = Yok
Öğeleri, derinliğin dolaylı öğeleri haline gelecek olan depset'lerin listesi.

dikt

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

İsteğe bağlı konumsal bir bağımsız değişkenden 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 çok kez verildiği durumlarda son değer kullanılır. Anahtar kelime bağımsız değişkenleri aracılığıyla sağlanan girişlerin, konum bağımsız değişkeni aracılığıyla sağlanan girişlerden sonra geldiği kabul edilir.

Parametreler

Parametre Açıklama
pairs varsayılan = []
Öğelerinin her biri uzunluk olarak 2 (anahtar, değer) olan bir dikt veya yinelenebilir.
kwargs zorunlu
Ek girişlerin sözlüğü.

dir

list dir(x)

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

Parametreler

Parametre Açıklama
x zorunlu
Kontrol edilecek nesne.

numaralandırmak

list enumerate(list, start=0)

Dizin (int) ve giriş dizisindeki öğeyi içeren çiftlerin (iki öğeli devir) listesini 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
anlamına gelir.

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; varsayılan = []
Bu yürütme grubunun gerektirdiği araç zincirleri 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ın listesi.
copy_from_rule varsayılan = Yanlış
Doğru değerine ayarlanırsa bu yönetici grubu, grubun bağlı olduğu kuralın araç zincirlerini ve kısıtlamalarını devralır. Başka bir dizeye ayarlanırsa hata oluşur.

başarısız

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

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

Parametreler

Parametre Açıklama
msg varsayılan = Yok
Kullanımdan kaldırıldı: Bunun yerine konum bağımsız değişkenleri kullanın. Bu argüman, üstü kapalı bir lider konum argümanı olarak 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 eklenmesini sağlar.
args zorunlu
Hata mesajında görünen, str ile biçimlendirilmiş ve boşluklarla birleştirilen bir değer listesi.

kayan noktalı

float float(x=unbound)

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

Parametreler

Parametre Açıklama
x varsayılan = bağlı değil
Dönüştürülecek değer.

getattr

unknown getattr(x, name, default=unbound)

Belirli bir adın struct alanını döndürür. Aksi takdirde default (belirtilmişse) değerini 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 zorunlu
Özelliğine erişilen struct.
name zorunlu
struct özelliğinin adı.
default varsayılan = bağlı değil
struct'ın belirtilen ada ait bir özelliğe sahip olmaması durumunda döndürülecek varsayılan değerdir.

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 sadece kök modül tarafından kullanılabilir; Diğer bir deyişle, bir modül geçersiz kılmalar belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name zorunlu
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
remote zorunlu
Uzak Git deposunun URL'si.
commit varsayılan = ''
İncelenmesi gereken kayıt.
patches Iterable of strings; varsayılan = []
Bu modüle uygulanacak yama dosyalarını 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; varsayılan = []
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi.
patch_strip varsayılan = 0
Unix yamasının --strip bağımsız değişkeniyle aynıdır.

hasattr

bool hasattr(x, name)

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

Parametreler

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

hash

int hash(value)

Bir dize için karma değer döndürür. Bu değer, belirleyici bir şekilde Java'nın String.hashCode() algoritması kullanılarak hesaplanır. Diğer bir deyişle:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Dize dışında değerler için karma oluşturma işlemi şu anda desteklenmemektedir.

Parametreler

Parametre Açıklama
value zorunlu
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ı ise int bunu değiştirmeden döndürür.
  • x bir bool ise int, Doğru için 1, Yanlış için 0 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 ile base - 1 aralığındaki rakamlardan oluşur. Burada a-z (veya eşdeğeri, A-Z) harfleri 10-35 arası 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ğeri 0B/0O/0X) olabilir; base bu tabanlardan başka bir değer veya 0 özel değeri dışında bir değerse önek boş olmalıdır. base değerinin 0 olduğu durumda dize, kullanılan ön eke bağlı olarak 2/8/10/16 tabanlarından birinin seçilmesi anlamında tam sayı sabit değeri olarak yorumlanır. base değeri 0 ise herhangi bir ön ek kullanılmaz ve birden fazla basamak varsa baştaki basamak 0 olamaz. Sekizlik ve ondalık arasındaki karışıklığı önlemek içindir. Dizenin temsil ettiği sayının büyüklüğü, tam sayı türü için izin verilen aralıkta olmalıdır.
  • x bir kayan noktalı sayıysa int, sıfıra yuvarlanarak kayan noktalı değerin tam sayı değerini döndürür. x sonlu değilse (NaN veya sonsuzluk) bir hatadır.
x farklı bir türdeyse 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şkene izin vermez ve dize bağımsız değişkenleri için fazladan boşluk bırakmaz.

Ö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 zorunlu
Dönüştürülecek dize.
base varsayılan = bağlı değil
Bir dize değerini yorumlamak için kullanılan taban; varsayılan olarak 10 değerine ayarlanır. 2 ile 36 (dahil) arasında veya x, tam sayı bir tam sayıymış gibi tabanın algılanması için 0 arasında olmalıdır. Değer bir dize değilse bu parametre sağlanmamalıdır.

Len

int len(x)

Dize, adım sırası (ör. liste veya demet), dikim veya başka bir yinelemenin uzunluğunu döndürür.

Parametreler

Parametre Açıklama
x zorunlu
Uzunluğu bildirilecek değer.

list

list list(x=[])

Belirtilen 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 varsayılan = []
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 sadece kök modül tarafından kullanılabilir; Diğer bir deyişle, bir modül geçersiz kılmalar belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name zorunlu
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
path zorunlu
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 bir bağımsız değişken sağlanmışsa bu, boş olmayan bir iterable olmalıdır.Öğeler karşılaştırılamazsa (örneğin, dizeyle int) veya hiçbir bağımsız değişken belirtilmemişse bu bir hatadır.
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

Parametreler

Parametre Açıklama
args zorunlu
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 boş olmayan bir yineleme olmalıdır. Öğeler karşılaştırılamazsa (örneğin, dizeyle int) veya bağımsız değişken belirtilmediyse bu bir hatadır.
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

Parametreler

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

modül

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

Mevcut Bazel deposunda gösterilen Bazel modülünün belirli özelliklerini tanımlar. Bu özellikler ya modülün temel meta verileridir (ad ve sürüm gibi) ya da mevcut modülün ve bağımlılarının davranışını etkiler.

En fazla bir kez aranmalıdır. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa olduğu gibi) atlanabilir.

Parametreler

Parametre Açıklama
name varsayılan = ''
Modülün adı. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa olduğu gibi) atlanabilir. Geçerli bir modül adı: 1) yalnızca küçük harf (a-z), rakam (0-9), nokta (.), tire (-) ve alt çizgi (_) içermelidir; 2) küçük harfle başlamalı, 3) küçük harfle veya rakamla bitmelidir.
version varsayılan = ''
Modülün sürümü. Yalnızca bu modül kök modülse (başka bir modüle bağımlı olmayacaksa olduğu gibi) atlanabilir.
compatibility_level varsayılan = 0
Modülün uyumluluk düzeyi; önemli bir uyumsuz değişiklik ortaya çıktığında bunun değiştirilmesi gerekir. Bu aslında "ana sürüm" dahil edilmiştir. Tek fark, sürüm dizesine gömülü olmaması, ancak ayrı bir alan olarak bulunmasıdır. Farklı uyumluluk seviyelerine sahip modüller, farklı adlara sahip modüller gibi sürüm çözünürlüğüne katılır. Ancak son bağımlılık grafiği aynı ada ancak farklı uyumluluk seviyelerine sahip birden fazla modül içeremez (multiple_version_override etkin değilse daha ayrıntılı bilgi için ilgili sayfaya bakın).
repo_name varsayılan = ''
Bu modülü temsil eden deponun adı, modülün kendisi tarafından görüntülenir. Varsayılan olarak, kod deposunun adı modülün adıdır. Bu, modül adından farklı bir depo adı kullanan projeler için taşımayı kolaylaştırmak amacıyla belirtilebilir.
bazel_compatibility Iterable of strings; varsayılan = []
Kullanıcıların hangi Bazel sürümlerinin bu modülle uyumlu olduğunu bildirmelerini sağlayan bazel sürümlerinin listesi. Bağımlılık çözümünü etkilemez ancak bzlmod, mevcut Bazel sürümünüzün uyumlu olup olmadığını kontrol etmek için bu bilgileri kullanır. Bu değerin biçimi, virgülle ayrılmış bazı kısıtlama değerlerini içeren bir dizedir. Üç kısıtlama desteklenir: <=X.X.X: Bazel sürümü, X.X.X ile aynı veya daha eski olmalıdır. Yeni bir sürümde bilinen uyumsuz değişiklik olduğunda kullanılır. >=X.X.X: Bazel sürümü X.X.X ile aynı veya daha yeni olmalıdır.Yalnızca X.X.X'ten itibaren kullanılabilen bazı özelliklere bağlı olduğunuzda kullanılır. -X.X.X: X.X.X Bazel 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. Dışa aktarılıp MODULE.bazel dosyasında kullanılabilmesi için global bir değerde depolayın.

Parametreler

Parametre Açıklama
implementation zorunlu
Bu modül uzantısını uygulayan işlev. Tek bir parametre olmalıdır: module_ctx. Bu işlev, kullanılabilir depo kümesini belirlemek için bir derlemenin başında bir kez çağrılır.
tag_classes default = {}
Uzantı tarafından kullanılan tüm etiket sınıflarını bildiren bir sözlük. Etiket sınıfının adından bir tag_class nesnesiyle eşlenir.
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek modül uzantısının açıklaması.

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 bunun birden fazla sürümünün birlikte bulunmasına izin verilmesi gerektiğini belirtir. Bu yönerge sadece kök modül tarafından kullanılabilir; Diğer bir deyişle, bir modül geçersiz kılmalar belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name zorunlu
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ça 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 "yükseltilecek" .
registry varsayılan = ''
Bu modül için kayıt defterini geçersiz kılar; Bu modülü varsayılan kayıt defteri listesinden bulmak yerine, verilen kayıt defteri kullanılmalıdır.

yazdır

None print(sep=" ", *args)

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

Kullanıcılar için oluşturduğu spam nedeniyle üretim kodunda print kullanılması önerilmez. Desteğin sonlandırılması için mümkün olduğunda fail() kullanımıyla ilgili ağır bir hata oluşturmayı tercih edin.

Parametreler

Parametre Açıklama
sep varsayılan = " "
Nesneler arasındaki ayırıcı dize, varsayılan olarak boşluk (" ") şeklindedir.
args zorunlu
Yazdırılacak nesneler.

sağlayıcı

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

Sağlayıcı sembolünü tanımlar. Sağlayıcı, çağırılarak örneklenebilir veya doğrudan bir hedeften bu sağlayıcının bir örneğini almak için 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 rehber için Kurallar (Sağlayıcılar) başlıklı makaleyi inceleyin.

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

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

Parametreler

Parametre Açıklama
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek 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 şunlardır:
  • 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ğerlerini ön işleme ve doğrulamak için isteğe bağlı bir geri çağırma. init belirtilirse provider(), 2 öğeden oluşan bir öğe döndürür: normal sağlayıcı sembolü ve ham oluşturucu.

Net bir açıklama şöyledir: Kolay anlaşılır bir tartışma ve kullanım alanları için Kurallar (Sağlayıcıların özel başlatılması) başlıklı makaleyi inceleyin.

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

  • args boş değilse bir hata oluşur.
  • provider() çağrılırken fields parametresi belirtilmişse ve kwargs, fields içinde listelenmeyen herhangi 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ı verilmediğinde, P simgesine yapılan bir çağrı, varsayılan oluşturucu işlevi c için bir çağrı olarak işlev 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 bunu m.foo == 1 içeren bir MyInfo örneği olacak şekilde doğrudan yapar.

Ancak init değerinin belirtildiği durumda P(*args, **kwargs) çağrısı, aşağıdaki adımları uygular:

  1. Geri çağırma, init(*args, **kwargs) olarak, yani P içine iletilen konum ve anahtar kelime bağımsız değişkenleriyle tamamen aynı şekilde ç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. Değilse bir hata oluşur.
  3. Yeni bir P örneği, c(**d) örneğinde olduğu gibi, d girişleriyle varsayılan oluşturucu anahtar kelime bağımsız değişkenleri olarak çağrılarak oluşturulur.

Not: Yukarıdaki adımlar, *args veya **kwargs öğesinin init imzasıyla eşleşmemesi veya init öğesinin gövdesinin değerlendirilmesinin başarısız olması (belki kasıtlı olarak fail() çağrısıyla) veya init değerinin beklenen şemaya sahip bir sözlük olmadığı durumlarda bir hata oluştuğu anlamına gelir.

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

init belirtildiğinde, provider() işlevinin döndürülen değeri (P, r) demeti haline gelir. Burada r, ham oluşturucu olur. Aslında r işlevinin davranışı, tam olarak yukarıda açıklanan c varsayılan oluşturucu işleviyle aynıdır. Genellikle r, adının önüne bir alt çizgi eklenen bir değişkene bağlıdır. Böylece, yalnızca geçerli .bzl dosyası 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 ilgili öğ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 zorunlu
Durak sağlanmışsa başlangıç öğesinin değeri, aksi takdirde durdurma ve gerçek başlangıç değeri 0'dır
stop_or_none int; or None; varsayılan = Yok
oluşturulan listeye dahil edilmeyen ilk öğenin isteğe bağlı dizini; listenin oluşturulması stop tamamlanmadan önce durur.
step varsayılan = 1
Artış (varsayılan 1'dir). Negatif olabilir.

register_execution_platforms()

None register_execution_platforms(*platform_labels)

Araç zinciri çözümleme sırasında Bazel'in yürütme platformu olarak kullanabilmesi için önceden tanımlanmış bir platformu kaydedin.

Parametreler

Parametre Açıklama
platform_labels sequence of strings; gerekli
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şlamalıdır). Daha fazla bilgi için araç zinciri çözünürlüğü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = Yanlış
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; gerekli
Kaydedilecek platformların etiketleri.

register_toolchains()

None register_toolchains(*toolchain_labels)

Bazel'in araç zinciri çözümlemesi sırasında kullanabilmesi için önceden tanımlanmış bir araç zinciri kaydedin. Araç zincirlerini tanımlama ve kaydetme örneklerine bakın.

Parametreler

Parametre Açıklama
toolchain_labels sequence of strings; gerekli
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şlamalıdır). Daha fazla bilgi için araç zinciri çözünürlüğü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = Yanlış
Doğru değerine ayarlanırsa mevcut modül kök modül değilse veya "--ignore_dev_dependency" etkinse araç zincirleri kaydedilmez.
toolchain_labels sequence of strings; gerekli
Kaydedilecek araç zincirlerinin etiketleri.

repository_rule(uygulama; attrs; yerel, environ, yapılandırma, remotable, 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 zorunlu
bu kuralı uygulayan fonksiyondur. 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üğünü kullanmanızı öneririz. Özellik adı, özellik nesnesiyle eşlenir (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir dosyaya etiket için ö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 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; varsayılan = []
Bu depo kuralının bağlı olduğu ortam değişkeninin listesini sağlar. Listedeki bir ortam değişkeni değişirse depo yeniden getirilir.
configure varsayılan = Yanlış
Deponun, sistemi yapılandırma amacıyla incelediğini belirtir
remotable varsayılan = Yanlış
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değişebilir. Lütfen bu metrikten yararlanmayın. ---experimental_repo_remote_exec
Uzaktan yürütmeyle uyumlu olarak ayarlanarak deneysel olarak etkinleştirilebilir
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek depo kuralının açıklaması.

repository_rule(uygulama; attrs; yerel, environ, yapılandırma, remotable, 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 zorunlu
bu kuralı uygulayan fonksiyondur. 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üğünü kullanmanızı öneririz. Özellik adı, özellik nesnesiyle eşlenir (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir dosyaya etiket için ö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 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; varsayılan = []
Bu depo kuralının bağlı olduğu ortam değişkeninin listesini sağlar. Listedeki bir ortam değişkeni değişirse depo yeniden getirilir.
configure varsayılan = Yanlış
Deponun, sistemi yapılandırma amacıyla incelediğini belirtir
remotable varsayılan = Yanlış
Deneysel. Bu parametre deneme amaçlıdır ve herhangi bir zamanda değişebilir. Lütfen bu metrikten yararlanmayın. ---experimental_repo_remote_exec
Uzaktan yürütmeyle uyumlu olarak ayarlanarak deneysel olarak etkinleştirilebilir
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek depo kuralının açıklaması.

yir

string repr(x)

Herhangi bir nesneyi dize gösterimine dönüştürür. Bu, hata ayıklama konusunda faydalıdır.
repr("ab") == '"ab"'

Parametreler

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

tersine çevrildi

list reversed(sequence)

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

Parametreler

Parametre Açıklama
sequence zorunlu
Tersine çevrilecek yinelemeli 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 DERLE dosyası veya makrodan çağrılabilecek yeni bir kural oluşturur.

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

Test kurallarında adın _test ile bitmesi gerekir. Diğer hiçbir kuralda ise 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 zorunlu
bu kuralı uygulayan Starlark işlevinin tam olarak bir parametresi olmalıdır: ctx. İşlev, kuralın her örneği için analiz aşamasında çağrılır. Kullanıcının sağladığı özelliklere erişebilir. Tanımlanan tüm çıkışları oluşturmak için işlemler oluşturması gerekir.
test varsayılan = Yanlış
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 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; varsayılan = Yok
sözlüğünü kullanmanızı öneririz. Özellik adı, özellik nesnesiyle 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 örtülü olarak 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 parametrenin desteği sonlandırılmıştır ve yakında kaldırılacaktır. Lütfen bu metrikten yararlanmayın. ---incompatible_no_rule_outputs_param ile devre dışı bırakıldı. Kodunuzun, kaldırılma olasılığı yüksek olan içerikle uyumlu olduğunu doğrulamak için bu işareti kullanın.
Bu parametrenin desteği sonlandırıldı. Kuralları, bunun yerine OutputGroupInfo veya attr.output kullanacak şekilde taşıyın.

Önceden beyan edilmiş çıkışları tanımlayan bir şema. output ve output_list özelliklerinin aksine kullanıcı, bu dosyalar için etiketleri belirtmez. Önceden beyan edilmiş çıkışlar hakkında daha fazla bilgi için Kurallar sayfasını inceleyin.

Bu bağımsız değişkenin değeri ya bir sözlük ya da sözlük oluşturan bir geri çağırma işlevidir. Geri çağırma, hesaplanan bağımlılık özelliklerine benzer: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin, def _my_func(srcs, deps): ... tanımıyla outputs = _my_func parametresini 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, şu şekilde yorumlanır.

Sözlükten her giriş, önceden beyan edilmiş bir çıkış oluşturur. Bu çıkışta anahtar bir tanımlayıcıdır, değer ise çıkışın etiketini belirleyen bir dize şablonudur. Kuralın uygulama işlevinde tanımlayıcı, ctx.outputs'te çıkışın File öğesine erişmek için kullanılan alan adı olur. Çıkışın etiketi, kuralla aynı pakete sahiptir ve "%{ATTR}" biçiminin her bir yer tutucusunun, ATTR özelliğinin değerinden oluşturulan bir dizeyle değiştirilmesiyle paketin oluşturulmasından sonraki bölüm:

  • Dize türündeki özellikler aynen değiştirilir.
  • Etiket türünde özellikler, dosya uzantısı çıkarıldıktan sonra etiketin paketten sonraki bölümü haline gelir. Örneğin, "//pkg:a/b.c" etiketi "a/b" olur.
  • Çıkış türünde özellikler, dosya uzantısı da dahil olmak üzere etiketin paketten sonraki 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. Satıcının dönüşümü, liste dışı sürümüyle (attr.label) aynı.
  • Diğer özellik türleri yer tutucularda gösterilemez.
  • Özellik olmayan özel yer tutucular %{dirname} ve %{basename}, paketi hariç tutarak kural etiketinin bu kısımlarına genişler. Örneğin, "//pkg:a/b.c" için dirname 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 {"bin": "%{name}.exe"} komutu, uygulama işlevinde ctx.outputs.bin olarak erişilebilen foo.exe adlı bir çıkışı önceden bildirir.

executable varsayılan = Yanlış
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 varsayılan = Yanlış
True (doğru) değerine ayarlanırsa dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için gerekli olmadığı sürece (ör. C++ için başlık dosyaları oluştururken) bu işareti ayarlamayın.
fragments sequence of strings; varsayılan = []
Kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi.
host_fragments sequence of strings; varsayılan = []
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 (doğru) ise bu kural, işlemlerini bir Actions sağlayıcısı aracılığıyla ona bağımlı kurallar tarafından incelenmek üzere kullanıma sunar. Sağlayıcı, ctx.created_actions() işlevini çağırarak da 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 ileride kaldırılabilir.
toolchains sequence; varsayılan = []
Ayarlanırsa bu kuralın gerektirdiği araç zincirleri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla kuralın uygulanmasına sağlanır.
incompatible_use_toolchain_transition varsayılan = Yanlış
Kullanımdan kaldırıldı ve artık kullanılmıyor ve kaldırılması gerekiyor.
doc varsayılan = ''
Belge oluşturma araçları ile çıkarılabilecek kuralın açıklaması.
provides varsayılan = []
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 bu bir hatadır. 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 sağlayıcının bunun yerine 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 varsayılan = Yanlış
Doğru ise, bu kural bir 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 bölümüne bakın.

Bir kural analiz test kuralı olarak tanımlanırsa, ö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 olabilecek geçişli bağımlılıkların sayısı açısından sınırlıdır.
  • Kural, bir test kuralı olarak kabul edilir (test=True ayarlanmış gibi). Bu, test değerinin yerini alır
  • Kural uygulama işlevi, işlemleri kaydetmeyebilir. Bunun yerine, AnalysisTestResultInfo sağlayarak başarılı/başarısız sonucu kaydetmesi gerekir.
build_setting BuildSetting; or None; varsayılan = Yok
Ayarlanmışsa bu kuralın ne tür bir build setting olduğunu açıklar. config modülünü inceleyin. Bu ayarlanırsa "build_setting_default" adlı zorunlu bir özellik ayarlanır. değeri, buraya geçirilen değere karşılık gelen bir türle otomatik olarak bu kurala eklenir.
cfg varsayılan = Yok
Ayarlanırsa, analizden önce kuralın kendi yapılandırmasına uygulayacağı yapılandırma geçişine işaret eder.
exec_groups dict; or None; varsayılan = Yok
Yürütme grubu adının (dize) exec_group sn olarak ayarlanmış hali. Ayarlanırsa kuralların tek bir hedef 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ı belgelerine göz atın.
compile_one_filetype sequence of strings; or None; varsayılan = Yok
--Compute_one_dependency tarafından kullanılır: Belirtilen dosyayı birden çok kural tüketirse diğerlerinin yerine bu kuralı seçmemiz gerekir.
name string; or None; varsayılan = Yok
Kullanımdan kaldırıldı. Bu parametrenin desteği sonlandırılmıştır ve yakında kaldırılacaktır. Lütfen bu metrikten yararlanmayın. --+incompatible_remove_rule_name_parameter ile devre dışı bırakıldı. Kodunuzun, kaldırılma olasılığı yüksek olan içerikle uyumlu olduğunu doğrulamak için bu işareti kullanın.
Kullanımdan kaldırıldı: Kullanmayın.

Bazel tarafından anlaşıldığı ve günlük kaydı, native.existing_rule(...)[kind], bazel query gibi bağlamlarda bildirildiği şekliyle bu kuralın adı. Bu genellikle, 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 BUILD dosyasında foo_library(...) olarak örneklenir.

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

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

seç

unknown select(x, no_match_error='')

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

Parametreler

Parametre Açıklama
x zorunlu
Yapılandırma koşullarını değerlerle eşleyen bir dikte. Her anahtar, config_setting veyarestriction_value örneğini tanımlayan bir Etiket veya etiket dizesidir. Dize yerine Etiket ne zaman kullanılacağını öğrenmek için makrolarla ilgili dokümanlara bakın.
no_match_error varsayılan = ''
Hiçbir koşul eşleşmezse bildirilecek isteğe bağlı özel hata.

single_version_override

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

Bağımlılığın hâlâ bir kayıt defterinden gelmesi gerektiğini ancak sürümünün sabitlenmesi, kaydının geçersiz kılınması veya bir yama listesi uygulanması gerektiğini belirtir. Bu yönerge sadece kök modül tarafından kullanılabilir; Diğer bir deyişle, bir modül geçersiz kılmalar belirtiyorsa başkaları tarafından bağımlılık olarak kullanılamaz.

Parametreler

Parametre Açıklama
module_name zorunlu
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
version varsayılan = ''
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 "sabitlenmiş" olacaktır bu geçersiz kılma sürümüne ekleyebilirsiniz. Geçersiz kılmak isteyen tek şey kayıt defteri veya yamalarsa bu özellik atlanabilir.
registry varsayılan = ''
Bu modül için kayıt defterini geçersiz kılar; Bu modülü varsayılan kayıt defteri listesinden bulmak yerine, verilen kayıt defteri kullanılmalıdır.
patches Iterable of strings; varsayılan = []
Bu modüle uygulanacak yama dosyalarını 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; varsayılan = []
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi.
patch_strip varsayılan = 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. x, y elemanlarından herhangi biri x < y. Ters bağımsız değişken Doğru değerine sahip olmadığı sürece öğeler artan düzende sıralanır. True olarak ayarlanmış bu durumda, sıra azalan düzendedir. Sıralama sabittir: Eşit oranda karşılaştırma yapan öğeler orijinal göreceli sıralarını korur.
sorted([3, 5, 4]) == [3, 4, 5]

Parametreler

Parametre Açıklama
iterable zorunlu
Sıralama yapılacak yinelenebilir adım sırası.
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.

str

string str(x)

Herhangi bir nesneyi dizeye dönüştürür. Bu, hata ayıklama konusunda faydalıdır.
str("ab") == "ab"
str(8) == "8"

Parametreler

Parametre Açıklama
x zorunlu
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 bir etiket sınıfı için özellik şemasını 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 bildiren bir sözlük. Özellik adı, özellik nesnesiyle eşlenir (attr modülüne bakın).
doc varsayılan = ''
Belge oluşturma araçları tarafından çıkarılabilecek etiket sınıfının açıklaması.

tuple

tuple tuple(x=())

Belirtilen yinelenebilir değerle aynı öğelere sahip bir demet 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 varsayılan = ()
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, hata ayıklama ve tür kontrolü için faydalıdır. Örnekler:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
Bu işlev ileride değişebilir. Python uyumlu kod yazmak ve geleceğe hazır olmak için bu kodu yalnızca döndürülen değerleri karşılaştırmak amacıyla kullanın:
if type(x) == type([]):  # if x is a list

Parametreler

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

use_extension

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

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

Parametreler

Parametre Açıklama
extension_bzl_file zorunlu
Starlark dosyasında modül uzantısını tanımlayan bir etiket.
extension_name zorunlu
Kullanılacak modül uzantısının adı. Starlark dosyası bu ada sahip bir simgeyi dışa aktarmalıdır.
dev_dependency varsayılan = Yanlış
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 mevcut modülün kapsamına içe aktarır.

Parametreler

Parametre Açıklama
extension_proxy zorunlu
use_extension çağrısı tarafından döndürülen bir modül uzantısı proxy nesnesi.
args zorunlu
İçe aktarılacak depoların adları.
kwargs zorunlu
Geçerli 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)

Şu anda 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 o modülü yükleyip yükleyemeyeceğini belirler. (Bu, temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır ve dosyanın başka hedeflerin bağımlılığı olarak görünüp görünmeyeceğini belirler.) Yükleme görünürlüğü, paket düzeyinde çalışır: Bir modülü yüklemek için yüklemeyi yapan dosya, modüle görünürlüğü verilen bir pakette bulunmalıdır. Bir modül, görünürlüğüne bakılmaksızın her zaman kendi paketine 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ıyı load() ifadelerinin hemen altına ve bağımsız değişkeni belirlemek için gereken kısa mantığın altına yerleştirmektir.

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

Parametreler

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

Negatif paket özelliklerine izin verilmemesi dışında paket spesifikasyonları package_group ile aynı biçime sahiptir. Diğer bir deyişle, bir spesifikasyon şu biçimlerde 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 mevcut modülün deposuna göre yorumlanır.

value bir dize listesiyse bu modüle görünürlüğü verilen paket grubu, her bir spesifikasyon tarafından temsil edilen paketlerin birleşimidir. (Boş liste, private ile aynı etkiye sahiptir.) value tek bir dizeyse bu tekli liste [value] 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 herhangi bir etkisinin 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ı bir workspace işlevine sahip olmalıdır.

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

Bu ad, deponun çalıştırma dosyalarının depolandığı dizin için kullanılır. Örneğin, yerel depoda foo/bar çalıştırma dosyası varsa ve WORKSPACE dosyası workspace(name = 'baz') 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 sembollü olur.

Uzak depo kural adları, geçerli çalışma alanı adları olmalıdır. Örneğin, maven_jar(name = 'foo') URL'si elde edilebilir, ancak Bazel workspace(name = 'foo%bar') içeren maven_jar için WORKSPACE dosyası yazmaya çalışacağından maven_jar(name = 'foo%bar') kullanamazsınız.

Parametreler

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

zip

list zip(*args)

tuple sn. için bir list döndürür. Burada i'inci unsur, bağımsız değişken dizilerinin veya yinelemelerin her birinden i'inci öğeyi içerir. Liste, en kısa girişin boyutuna sahiptir. Yinelenebilir tek bir bağımsız değişkenle, 1 unsurlu bir liste döndürür. Bağımsız değişken olmadan boş bir liste döndürüyor. Ö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.