Globaller

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

Üyeler

tümü

bool all(elements)

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

Parametreler

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

analysis_test_transition

transition analysis_test_transition(settings)

Bir analiz testi kuralının bağımlılıklarına uygulanacak bir yapılandırma geçişi oluşturur. Bu geçiş yalnızca analysis_test = True içeren kuralların özelliklerine uygulanabilir. Bu tür kurallar özellikler açısından sınırlıdır (ör. 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, transition kullanılarak oluşturulan geçişlere kıyasla potansiyel kapsam açısından sınırlıdır.

Bu işlev öncelikle Analysis Test Framework temel kitaplığını kolaylaştırmak için tasarlanmıştır. En iyi uygulamalar için dokümanlarını (veya uygulamasını) inceleyin.

Parametreler

Parametre Açıklama
settings required
Bu yapılandırma geçişiyle ayarlanması gereken yapılandırma ayarlarıyla ilgili bilgileri içeren bir sözlük. Anahtarlar, derleme ayarı etiketleridir ve değerler, geçiş sonrası yeni değerlerdir. Diğer tüm ayarlar değiştirilmez. Bir analiz testinin geçmesi için ayarlanması gereken belirli yapılandırma ayarlarını bildirmek için bu özelliği kullanın.

herhangi

bool any(elements)

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

Parametreler

Parametre Açıklama
elements required
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, 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ülde geçerli olur. Başka bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yok sayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
urls string; or Iterable of strings; zorunlu
Arşivin URL'leri; http(s):// veya file:// URL'leri olabilir.
integrity default = ""
Arşiv dosyasının, alt kaynak bütünlüğü biçimindeki beklenen sağlama toplamı.
strip_prefix default = ''
Çıkarılan dosyalardan kaldırılacak bir dizin öneki.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarını gösteren etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Listelenen sırayla uygulanır.
patch_cmds Iterable of strings; default = []
Yama uygulandıktan sonra Linux/MacOS'te uygulanacak Bash komutlarının sırası.
patch_strip varsayılan = 0
Unix patch'in --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 yön oluşturur. Bu işlevin sonucu genel bir değerde saklanmalıdır. Daha fazla bilgi için lütfen Aspects'e giriş bölümünü inceleyin.

Parametreler

Parametre Açıklama
implementation gerekli
Bu yönü uygulayan bir Starlark işlevi. Tam olarak iki parametreye sahiptir: Target (yönün uygulandığı hedef) ve ctx (hedefin oluşturulduğu kural bağlamı). Hedefin özellikleri ctx.rule alanı üzerinden kullanılabilir. Bu işlev, bir yönün bir hedefe her uygulanması için analiz aşamasında değerlendirilir.
attr_aspects sequence of strings; default = []
Özellik adlarının listesi. Yön, 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 yer alır. Liste, bir hedefin tüm bağımlılıklarına yayılacak tek bir dize "*" da içerebilir.
attrs dict; or None; default = None
Yönün tüm özelliklerini bildiren bir sözlük. Özellik adından özellik nesnesine eşleme yapar (ör. `attr.label` veya `attr.string`) (attr modülüne bakın). Görünüm özellikleri, ctx parametresinin alanları olarak uygulama işlevinde kullanılabilir.

_ ile başlayan örtülü özelliklerin varsayılan değerleri olmalı ve türü label veya label_list olmalıdır.

Açık özellikler string türünde olmalı ve values kısıtlaması kullanılmalıdır. Açık özellikler, yönün yalnızca kısıtlamaya göre aynı ada, türe ve geçerli değerlere sahip özelliklerin bulunduğu kurallarla kullanılmasını sağlar.

required_providers default = []
Bu özellik, yönün yayılımını yalnızca kuralları gerekli sağlayıcılarının reklamı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ı ancak ikisini birden içermemelidir. Ö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ı listesi, otomatik olarak bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani [FooInfo, BarInfo] otomatik olarak [[FooInfo, BarInfo]] ürününe dönüştürülür.

Bazı kuralların (ör. some_rule) bir yön için görünür olması amacıyla 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 yönün required_providers'sı [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] ise bu yön yalnızca some_rule, FooInfo *veya* BarInfo *veya* hem BazInfo *hem de* QuxInfo sağlarsa some_rule hedeflerini görebilir.

required_aspect_providers default = []
Bu özellik, bu yönün 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ı ancak ikisini birden içermemelidir. Ö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ı listesi, otomatik olarak bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani [FooInfo, BarInfo] otomatik olarak [[FooInfo, BarInfo]] ürününe dönüştürülür.

Başka bir yönü (ör. other_aspect) bu yönde görünür kılmak 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 yön yalnızca other_aspect, FooInfo *veya* BarInfo *veya* hem BazInfo *hem de* QuxInfo sağlarsa other_aspect'yi 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önüş değerinden çıkarırsa 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. Ancak eski sağlayıcılar bunun yerine dize adıyla temsil edilir.

requires sequence of Aspects; default = []
Bu yönün yayılması için önceden yayılması gereken yönlerin listesi.
fragments sequence of strings; default = []
Aspect'in hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi.
host_fragments sequence of strings; default = []
List of names of configuration fragments that the aspect requires in host configuration.
toolchains sequence; default = []
Ayarlandığında, bu kuralın gerektirdiği araç zincirleri kümesi. 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 uygulamasına 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ı tarafından ayıklanabilen yönün açıklaması.
apply_to_generating_rules default = False
Doğruysa yön, çıkış dosyasına uygulandığında çıkış dosyasının oluşturma kuralına uygulanır.

Örneğin, bir yönün "deps" özelliği aracılığıyla geçişli olarak yayıldığını ve "alpha" hedefine uygulandığını varsayalım. "alpha"nın "deps = [':beta_output']" olduğunu varsayalım. Burada "beta_output", "beta" hedefinin bildirilmiş bir çıkışıdır. "beta"nın "deps"lerinden biri olarak "charlie" hedefi olduğunu varsayalım. Yön için "apply_to_generating_rules=True" ise yön, "alpha", "beta" ve "charlie" aracılığıyla yayılır. False ise yön yalnızca "alpha"ya yayılır.

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

exec_compatible_with sequence of strings; default = []
Yürütme platformunda bu yönün tüm örnekleri için geçerli olan kısıtlamaların listesi.
exec_groups dict; or None; default = None
Dict of execution group name (string) to exec_groups. Ayarlanırsa yönlerin tek bir örnek içinde birden fazla yürütme platformunda işlem yapmasına izin verir. Daha fazla bilgi için yürütme grupları dokümanlarını inceleyin.

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 default = ''
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 compatibility_level'ı ve bu özellik belirtilmemişse maksimum compatibility_level'ı ifade eder.
repo_name default = ''
Bu bağımlılığı temsil eden harici deponun adı. Bu, varsayılan olarak modülün adıdır.
dev_dependency varsayılan = False
Doğruysa 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ğlamayı kaldırmayı düşünün başlıklı makaleyi inceleyin.

//external paketinde bir hedefe takma ad verir.

Parametreler

Parametre Açıklama
name gerekli
Takma ad olarak kullanılacak, "//external" altındaki etiket
actual string; or None; default = None
The real label to be aliased

bool

bool bool(x=False)

bool türü için oluşturucu. 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 default = False
Dönüştürülecek değişken.

configuration_field

LateBoundDefault configuration_field(fragment, name)

label türündeki bir özelliğin geç bağlanan varsayılan değerine referans veriyor. Bir değerin "geç bağlanması", değerin belirlenmesinden önce yapılandırmanın oluşturulmasını gerektirdiği anlamına gelir. Değer olarak bunu kullanan tüm özellikler özel olmalıdır.

Örnek kullanım:

Kural özelliği tanımlama:

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

Kural uygulamasına erişme:

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

Parametreler

Parametre Açıklama
fragment required
Geç bağlanan 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ı.

depset

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 depset'in dolaylı öğeleri haline gelen depset'lerin listesidir. Depsset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order parametresiyle belirtilir. Daha fazla bilgi için Depsets'e genel bakış bölümüne bakın.

Bir depset'in tüm öğeleri (doğrudan ve dolaylı), type(x) ifadesiyle elde edildiği gibi aynı türde olmalıdır.

Tekrarlama sırasında yinelenenleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, bir depset'in tüm öğeleri karma oluşturulabilir olmalıdır. Ancak bu değişmez, şu anda tüm oluşturucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı kontrolü etkinleştirmek için --incompatible_always_check_depset_elements işaretini kullanın. Bu, gelecekteki sürümlerde varsayılan davranış olacaktır. 10313 numaralı soruna bakın.

Ayrıca, öğeler şu anda değişmez olmalıdır. Ancak bu kısıtlama gelecekte gevşetilecektir.

Oluşturulan bağımlılık kümesinin sırası, transitive bağımlılık kümelerinin sırasıyla uyumlu olmalıdır. "default" sırası diğer sıralarla uyumludur, diğer tüm sıralar yalnızca kendi aralarında uyumludur.

Geriye/ileri dönük uyumlulukla ilgili not. Bu işlev şu anda konumsal bir items parametresini kabul etmektedir. Bu işlevin desteği sonlandırıldı ve gelecekte kaldırılacak. Kaldırıldıktan sonra direct, depset işlevinin tek konum parametresi olacak. Bu nedenle, aşağıdaki iki çağrı da eşdeğerdir ve gelecekte sorunsuz çalışır:

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

Parametreler

Parametre Açıklama
direct sequence; or None; default = None
Bir depset'in doğrudan öğelerinin listesi.
order varsayılan = "varsayılan"
Yeni depset için geçiş stratejisi. Olası değerler için buraya bakın.
transitive sequence of depsets; or None; default = None
Öğeleri depset'in dolaylı öğeleri haline gelecek olan depset'lerin listesi.

dict

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

İsteğe bağlı bir konumsal bağımsız değişkenden ve isteğe bağlı bir anahtar kelime bağımsız değişkenleri grubundan sözlük oluşturur. Aynı anahtarın birden fazla kez verildiği durumlarda son değer kullanılır. Anahtar kelime bağımsız değişkenleri aracılığıyla sağlanan girişler, konumsal bağımsız değişken aracılığıyla sağlanan girişlerden sonra gelir.

Parametreler

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

dir

list dir(x)

Dizelerin listesini 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)

Dizine (int) ve giriş dizisindeki öğeye sahip çiftler (iki öğeli demetler) listesini döndürür.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

Parametreler

Parametre Açıklama
list gerekli
giriş dizisi.
start default = 0
başlangıç dizini.

exec_group

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

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

Parametreler

Parametre Açıklama
toolchains sequence; default = []
Bu yürütme grubunun gerektirdiği araç zincirleri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir.
exec_compatible_with sequence of strings; default = []
Yürütme platformundaki kısıtlamaların listesi.
copy_from_rule default = False
Doğru olarak ayarlanırsa bu yürütme grubu, 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ütmenin bir hatayla başarısız olmasına neden olur.

Parametreler

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

kayan noktalı

float float(x=unbound)

x'i kayan nokta değeri olarak döndürür.
  • x zaten bir kayan nokta sayısıysa float, bu sayıyı olduğu gibi döndürür.
  • x bir boole değeri ise float, True için 1,0 ve False için 0,0 değerini döndürür.
  • x bir tamsa float, x'e en yakın sonlu kayan nokta değerini veya büyüklük çok büyükse bir hata döndürür.
  • x bir dizeyse geçerli bir kayan nokta değişmezi olmalı veya büyük/küçük harf duyarlılığı göz ardı edilerek NaN, Inf ya da Infinity değerine eşit olmalıdır. İsteğe bağlı olarak + veya - işaretiyle başlayabilir.
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 ada sahip yapının alanını (varsa) döndürür. Aksi takdirde, default (belirtilmişse) döndürülür veya hata oluşturulur. getattr(x, "foobar"), x.foobar ile eş değerdir.
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

Parametreler

Parametre Açıklama
x required
Özelliğine erişilen yapı.
name zorunlu
Yapı özelliğinin adı.
default default = unbound
Yapıda, verilen ada sahip bir özellik olmaması durumunda döndürülecek varsayılan değer.

git_override

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

Bir bağımlılığın, Git deposunun belirli bir commit'inden gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde geçerli olur. Başka bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yok sayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
remote gerekli
Uzak Git deposunun URL'si.
commit varsayılan = ""
Ödeme yapılması gereken işlem.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarını gösteren etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Listelenen sırayla uygulanır.
patch_cmds Iterable of strings; default = []
Yama uygulandıktan sonra Linux/MacOS'te uygulanacak Bash komutlarının sırası.
patch_strip varsayılan = 0
Unix patch'in --strip bağımsız değişkeniyle aynıdır.

hasattr

bool hasattr(x, name)

x nesnesi, verilen name özelliğine veya yöntemine sahipse True, aksi takdirde False değerini döndürür. Örnek:
hasattr(ctx.attr, "myattr")

Parametreler

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

hash

int hash(value)

Bir dize için karma değeri döndürür. Bu, Java'nın String.hashCode() ile aynı algoritma kullanılarak deterministik olarak hesaplanır. Bu algoritma şöyledir:
s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Dizeler dışındaki değerlerin karma oluşturma işlemi şu anda desteklenmemektedir.

Parametreler

Parametre Açıklama
value required
Karma oluşturulacak dize değeri.

int

int int(x, base=unbound)

x'i tam sayı değeri olarak döndürür.
  • x zaten bir tamsa int bunu değiştirmeden döndürür.
  • x bir boole değeri ise int, True için 1, False için 0 değerini döndürür.
  • x bir dizeyse <sign><prefix><digits> biçiminde olmalıdır. <sign>, "+", "-" veya boş (pozitif olarak yorumlanır) olmalıdır. <digits>, 0'dan base - 1'e kadar olan bir basamak dizisidir. Burada a-z harfleri (veya eşdeğeri olan A-Z) 10-35 için basamak olarak kullanılır. base 2/8/16 ise <prefix> isteğe bağlıdır ve sırasıyla 0b/0o/0x (veya eşdeğeri olarak 0B/0O/0X) olabilir. base bu tabanlar veya özel değer 0 dışında herhangi bir değerse önek boş olmalıdır. base değerinin 0 olduğu durumlarda, dize bir tam sayı değişmezi olarak yorumlanır. Bu durumda, hangi önekin kullanıldığına bağlı olarak 2/8/10/16 tabanlarından biri seçilir. base 0 ise önek kullanılmaz ve birden fazla basamak varsa baştaki basamak 0 olamaz. Bunun nedeni, sekizlik ve ondalık sayılar arasındaki karışıklığı önlemektir. Dizeyle gösterilen sayının büyüklüğü, int türü için izin verilen aralıkta olmalıdır.
  • x bir kayan nokta sayısıysa int, sıfıra doğru yuvarlayarak kayan nokta sayısının tam sayı değerini döndürür. X sonlu değilse (NaN veya sonsuz) hata döndürülür.
x başka bir türdeyse veya değer yukarıdaki biçimi karşılamayan bir dizeyse bu işlev başarısız olur. Python'daki int işlevinin aksine, bu işlev sıfır bağımsız değişkene ve dize bağımsız değişkenleri için gereksiz 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 zorunlu
Dönüştürülecek dize.
base default = unbound
Bir dize değerini yorumlamak için kullanılan taban; varsayılan olarak 10'dur. 2 ile 36 arasında (2 ve 36 dahil) veya 0 olmalıdır. 0 değeri, tabanı x tam sayı değişmezmiş gibi algılamak için kullanılır. Değer bir dize değilse bu parametre sağlanmamalıdır.

len

int len(x)

Bir dizenin, dizinin (ör. liste veya tanımlama grubu), sözlüğün ya da diğer yinelenebilirlerin uzunluğunu döndürür.

Parametreler

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

list

list list(x=[])

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

Parametreler

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

local_path_override

None local_path_override(module_name, path)

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

Parametreler

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

maks.

unknown max(*args)

Belirtilen tüm bağımsız değişkenler arasında en büyüğünü 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ılabilir değilse (örneğin, dizeyle int) veya bağımsız değişken verilmemişse hata oluşur.
max(2, 5, 4) == 5
max([5, 6, 3]) == 6

Parametreler

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

dk

unknown min(*args)

Belirtilen tüm bağımsız değişkenler arasındaki en küçüğü döndürür. Yalnızca bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan bir yinelenebilir olmalıdır. Öğeler karşılaştırılamıyorsa (ör. int ile string) veya bağımsız değişken verilmemişse hata oluşur.
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

Parametreler

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

modül

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

Mevcut Bazel deposu tarafından temsil edilen Bazel modülünün belirli özelliklerini bildirir. Bu özellikler, modülün temel meta verileridir (ör. ad ve sürüm) veya mevcut modülün ve bağımlılarının davranışını etkiler.

En fazla bir kez çağrılmalıdır. Bu modül yalnızca kök modülse (yani başka bir modül tarafından kullanılmayacaksa) atlanabilir.

Parametreler

Parametre Açıklama
name default = ''
Modülün adı. Yalnızca bu modül kök modülse (yani başka bir modül tarafından kullanılmayacaksa) atlanabilir. Geçerli bir modül adı: 1) yalnızca küçük harf (a-z), rakam (0-9), nokta (.), kısa çizgi (-) ve alt çizgi (_) içermelidir; 2) küçük harfle başlamalıdır; 3) küçük harf veya rakamla bitmelidir.
version default = ""
Modülün sürümü. Yalnızca bu modül kök modülse (yani başka bir modül tarafından kullanılmayacaksa) atlanabilir.
compatibility_level varsayılan = 0
Modülün uyumluluk düzeyi. Bu değer, uyumsuz büyük bir değişiklik yapıldığında her seferinde değiştirilmelidir. Bu, SemVer açısından modülün "ana sürümü"dür. Ancak sürüm dizesine yerleştirilmez ve ayrı bir alan olarak bulunur. Farklı uyumluluk düzeylerine sahip modüller, farklı adlara sahip modüller gibi sürüm çözümlemeye katılır. Ancak son bağımlılık grafiği, aynı ada ancak farklı uyumluluk düzeylerine sahip birden fazla modül içeremez (multiple_version_override geçerli olmadığı sürece; daha fazla ayrıntı için buraya bakın).
repo_name default = ''
Bu modülü temsil eden deponun, modülün kendisi tarafından görünen adı. Varsayılan olarak, depodaki modülün adı kullanılır. Bu, modül adından farklı bir depo adı kullanan projelerin geçişini kolaylaştırmak için belirtilebilir.
bazel_compatibility Iterable of strings; default = []
Kullanıcıların, hangi Bazel sürümlerinin bu modülle uyumlu olduğunu bildirmesine olanak tanıyan Bazel sürümlerinin listesi. Bu bilgi, bağımlılık çözümlemesini ETKİLEMEZ ancak bzlmod, mevcut Bazel sürümünüzün uyumlu olup olmadığını kontrol etmek için bu bilgiyi kullanır. Bu değerin biçimi, virgülle ayrılmış bazı kısıtlama değerlerinden oluşan bir dizedir. Üç kısıtlama desteklenir: <=X.X.X: Bazel sürümü, X.X.X sürümüne eşit veya daha eski olmalıdır. Daha yeni bir sürümde bilinen bir uyumsuz değişiklik olduğunda kullanılır. >=X.X.X: Bazel sürümü, X.X.X sürümüne eşit veya daha yeni olmalıdır.Yalnızca X.X.X sürümünden itibaren kullanılabilen bazı özelliklere bağlı olduğunuzda kullanılır. -X.X.X: Bazel X.X.X sürümü uyumlu değildir. X.X.X sürümünde sizi etkileyen ancak sonraki sürümlerde düzeltilen bir hata olduğunda kullanılır.

module_extension

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

Yeni bir modül uzantısı oluşturur. Dışa aktarılabilmesi ve MODULE.bazel dosyasında kullanılabilmesi için bu değeri genel bir değerde saklayın.

Parametreler

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

multiple_version_override

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

Bağımlılığın yine bir kayıt defterinden gelmesi gerektiğini ancak birden fazla sürümünün birlikte bulunmasına izin verilmesi gerektiğini belirtir. Daha fazla ayrıntı için belgeleri inceleyin. Bu yönerge yalnızca kök modülde geçerli olur. Başka bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yok sayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
versions Iterable of strings; required
Birlikte bulunması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, aynı uyumluluk düzeyinde izin verilen en yakın yüksek sürüme "yükseltilirken", aynı uyumluluk düzeyinde izin verilen sürümlerden daha yüksek bir sürüme sahip bağımlılıklar hataya neden olur.
registry default = ""
Bu modül için kayıt defterini geçersiz kılar. Bu modül, varsayılan kayıt defteri listesinden bulunmak yerine belirtilen kayıt defteri kullanılmalıdır.

yazdır

None print(sep=" ", *args)

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

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

Parametreler

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

sağlayıcı

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

Sağlayıcı simgesini tanımlar. Sağlayıcı, çağrılarak örneklenebilir veya doğrudan hedefteki sağlayıcı ö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ı kullanmayla ilgili kapsamlı bir kılavuz için Kurallar (Sağlayıcılar) başlıklı makaleyi inceleyin.

init belirtilmemişse çağrılabilir bir Provider değeri döndürür.

init belirtilirse 2 öğeden oluşan bir demet döndürür: Provider çağrılabilir değeri ve raw constructor çağrılabilir değeri. Ayrıntılar için Kurallar (Özel sağlayıcıların özel olarak başlatılması) başlıklı makaleyi ve aşağıdaki init parametresiyle ilgili tartışmayı inceleyin.

Parametreler

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

  • dictionary field name -> documentation:
    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
Sağlayıcının alan değerlerini örnekleme sırasında önceden işlemek ve doğrulamak için isteğe bağlı geri çağırma. init belirtilirse provider(), 2 öğeli bir demet döndürür: normal sağlayıcı sembolü ve bir raw constructor.

Ayrıntılı bir açıklama aşağıda verilmiştir. Sezgisel bir tartışma ve kullanım alanları için Kurallar (Sağlayıcıların özel olarak başlatılması) başlıklı makaleye bakın.

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

  • args boş değilse hata oluşur.
  • provider() çağrıldığında fields parametresi belirtilmişse ve kwargs, fields içinde listelenmeyen herhangi bir anahtar içeriyorsa hata oluşur.
  • Aksi takdirde, c, kwargs içindeki her k: v girişi için v değerine sahip k adlı bir alan içeren yeni bir örnek döndürür.
Bir init geri çağırması verilmediği durumda, P sembolüne yapılan bir çağrı, varsayılan oluşturucu işlevi c'a yapılan bir çağrı gibi davranır. Başka bir deyişle, P(*args, **kwargs), c(*args, **kwargs) değerini döndürür. Örneğin,
MyInfo = provider()
m = MyInfo(foo = 1)
, m öğesinin m.foo == 1 ile birlikte bir MyInfo örneği olmasını doğrudan sağlar.

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

  1. Geri çağırma, init(*args, **kwargs) olarak çağrılır. Yani, P'ye iletilenlerle aynı konumsal ve anahtar kelime bağımsız değişkenleriyle çağrılır.
  2. init işlevinin dönüş değerinin, anahtarları alan adı dizeleri olan bir sözlük (d) olması beklenir. Aksi takdirde hata oluşur.
  3. P öğesinin yeni bir örneği, d girişleri anahtar kelime bağımsız değişkenleri olarak kullanılarak varsayılan oluşturucu çağrılıyormuş gibi oluşturulur (ör. c(**d)).

NB: Yukarıdaki adımlar, *args veya **kwargs, init'nin imzasıyla eşleşmiyorsa ya da init'nin gövdesinin değerlendirilmesi başarısız olursa (belki de fail() çağrısıyla kasıtlı olarak) veya init'nin dönüş değeri beklenen şemaya sahip bir sözlük değilse bir hata oluştuğu anlamına gelir.

Bu şekilde, init geri çağırma, konum bağımsız argümanlara 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 atlanmasını sağlamaz.

init belirtildiğinde provider() işlevinin dönüş değeri (P, r) demeti olur. Burada r, ham oluşturucudur. Aslında, r öğesinin davranışı, yukarıda bahsedilen varsayılan oluşturucu işlevi c ile aynıdır. Genellikle r, yalnızca mevcut .bzl dosyasının doğrudan erişebilmesi için adı alt çizgiyle başlayan bir değişkene bağlanır:

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

aralık

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

Öğelerin step artışıyla start'dan stop'a gittiği bir liste oluşturur. Tek bir bağımsız değişken sağlanırsa öğeler 0 ile bu öğ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
Durdurma sağlanırsa başlangıç öğesinin değeri, aksi takdirde durdurma değeri ve gerçek başlangıç 0 olur
stop_or_none int; or None; default = None
optional index of the first item not to be included in the resulting list; generation of the list stops before stop is reached.
step varsayılan = 1
Artış (varsayılan değer 1'dir). Negatif olabilir.

register_execution_platforms()

None register_execution_platforms(*platform_labels)

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

Parametreler

Parametre Açıklama
platform_labels sequence of strings; required
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 toolchain çözümü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = False
Doğruysa mevcut modül kök modül değilse veya `--ignore_dev_dependency` etkinse yürütme platformları kaydedilmez.
platform_labels sequence of strings; required
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ç zincirini kaydedin. Tanımlama ve araç zincirlerini kaydetme örneklerine bakın.

Parametreler

Parametre Açıklama
toolchain_labels sequence of strings; required
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 toolchain çözümü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = False
Doğruysa mevcut modül kök modül değilse veya `--ignore_dev_dependency` etkinse araç zincirleri kaydedilmez.
toolchain_labels sequence of strings; required
Kaydedilecek araç zincirlerinin etiketleri.

repository_rule

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

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

Parametreler

Parametre Açıklama
implementation required
the function that implements this rule. Tek bir parametre (repository_ctx) içermelidir. İşlev, kuralın her örneği için yükleme aşamasında çağrılır.
attrs dict; or None; default = None
dictionary to declare all the attributes of the rule. Bir özellik adından bir özellik nesnesine eşleme yapar (attr modülüne bakın). _ ile başlayan özellikler özeldir ve bir dosyaya etikete yönelik örtülü bir bağımlılık eklemek için kullanılabilir (bir depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği örtülü olarak eklenir ve belirtilmemelidir.
local default = False
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şkenlerinin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse depo yeniden getirilir.
configure varsayılan = False
Deponun, yapılandırma amacıyla sistemi incelediğini belirtin.
remotable default = False
Deneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu bilgileri kullanmayın. ---experimental_repo_remote_exec
Uzaktan yürütmeyle uyumlu ayarını yaparak deneysel olarak etkinleştirilebilir.
doc default = ''
Belge oluşturma araçları tarafından çıkarılabilen, depo kuralının açıklaması.

repr

string repr(x)

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

Parametreler

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

tersine çevrilmiş

list reversed(sequence)

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

Parametreler

Parametre Açıklama
sequence required
Ters çevrilecek yinelenebilir sıra (ö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ılabilen yeni bir kural oluşturur.

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

Test kurallarının adı _test ile bitmelidir. Diğer tüm kurallar bu soneki içermemelidir. (Bu kısıtlama yalnızca kurallar için geçerli olup hedefleri için geçerli değildir.)

Parametreler

Parametre Açıklama
implementation required
Bu kuralı uygulayan Starlark işlevi tam olarak bir parametreye sahip olmalıdır: ctx. İşlev, kuralın her örneği için analiz aşamasında çağrılır. Kullanıcı tarafından sağlanan özelliklere erişebilir. Bildirilen tüm çıkışları oluşturmak için işlemler oluşturmalıdır.
test default = False
Bu kuralın bir test kuralı olup olmadığı, yani blaze test komutuna tabi olup olamayacağı. Tüm test kuralları otomatik olarak yürütülebilir kabul edilir. Bir test kuralı için executable = True değerini açıkça ayarlamak gereksizdir (ve önerilmez). Daha fazla bilgi için Kurallar sayfası'na bakın.
attrs dict; or None; default = None
dictionary to declare all the attributes of the rule. Bir özellik adından bir özellik nesnesine eşleme yapar (attr modülüne bakın). _ ile başlayan özellikler özeldir ve bir etikete örtülü bağımlılık eklemek için kullanılabilir. name özelliği örtülü 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. Bellek kullanımını sınırlamak için kural işlevi, attrs boyutuna bir sınır uygular.
outputs dict; or None; or function; default = None
Kullanımdan kaldırıldı. Bu parametrenin desteği sonlandırıldı ve yakında kaldırılacak. Lütfen bu bilgileri kullanmayın. ---incompatible_no_rule_outputs_param ile devre dışı bırakılır. Kodunuzun, bu özelliğin yakında kaldırılmasıyla uyumlu olduğunu doğrulamak için bu işareti kullanın.
Bu parametrenin desteği sonlandırılmıştır. Kuralları OutputGroupInfo veya attr.output kullanacak şekilde taşıyın.

Önceden bildirilmiş çıkışları tanımlamak için kullanılan şema. output ve output_list özelliklerinden farklı olarak, kullanıcı bu dosyaların etiketlerini belirtmez. Önceden bildirilmiş çıkışlar hakkında daha fazla bilgi için Kurallar sayfası'na bakın.

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, hesaplanmış bağımlılık özelliklerine benzer şekilde çalışır: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin, outputs = _my_func bağımsız değişkenini def _my_func(srcs, deps): ... tanımıyla iletirseniz işlev, srcs ve deps özelliklerine erişebilir. Sözlük doğrudan veya bir işlev aracılığıyla belirtilmiş olsun, aşağıdaki şekilde yorumlanır.

Sözlükteki her giriş, anahtarın tanımlayıcı, değerin ise çıkışın etiketini belirleyen bir dize şablonu olduğu önceden bildirilmiş bir çıkış oluşturur. Kuralın uygulama işlevinde tanımlayıcı, ctx.outputs içinde çıkışın File öğesine erişmek için kullanılan alan adı olur. Çıkışın etiketi, kuralın paketiyle aynıdır ve paketten sonraki bölüm, "%{ATTR}" biçimindeki her yer tutucunun ATTR özelliğinin değerinden oluşturulan bir dizeyle değiştirilmesiyle üretilir:

  • Dize türündeki özellikler bire bir değiştirilir.
  • Etiket türündeki özellikler, paket adından sonraki etiket bölümü olur (dosya uzantısı hariç). Örneğin, "//pkg:a/b.c" etiketi "a/b" olur.
  • Çıkış türü özellikler, dosya uzantısı da dahil olmak üzere paketten sonra etiketin bir parçası olur (yukarıdaki örnekte "a/b.c").
  • Yer tutucularda kullanılan tüm liste türündeki özelliklerin (ör. attr.label_list) tam olarak bir öğesi olması gerekir. Dönüşümleri, liste dışı sürümleriyle aynıdır (attr.label).
  • Diğer özellik türleri yer tutucularda görünmeyebilir.
  • Özel olmayan özellik yer tutucuları %{dirname} ve %{basename}, kuralın etiketinin paket hariç tutularak bu bölümlerine genişletilir. Örneğin, "//pkg:a/b.c" içinde dirname a, basename ise b.c'dir.

Uygulamada, en yaygın yer tutucu "%{name}"'dır. Örneğin, "foo" adlı bir hedef için outputs dict {"bin": "%{name}.exe"}, uygulama işlevinde ctx.outputs.bin olarak erişilebilen foo.exe adlı bir çıkışı önceden bildirir.

executable default = False
Bu kuralın yürütülebilir olup olmadığı, yani blaze run komutuna tabi olup olamayacağı. Daha fazla bilgi için Kurallar sayfası'na bakın.
output_to_genfiles default = False
True ise dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için (ör. C++ için başlık dosyaları oluştururken) gerekli olmadığı sürece 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 default = False
(Deneysel)

Doğruysa bu kural, Actions sağlayıcısı aracılığıyla kendisine bağlı olan kurallar tarafından incelenmek üzere işlemlerini kullanıma sunar. Sağlayıcı, ctx.created_actions() çağrılarak 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 = []
Ayarlandığında, bu kuralın gerektirdiği araç zincirleri kümesi. 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 uygulamasına 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ı 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önüş değerinden çıkarırsa 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. Ancak eski sağlayıcılar bunun yerine dize adıyla temsil edilir.

exec_compatible_with sequence of strings; default = []
Bu kural türünün tüm hedefleri için geçerli olan, yürütme platformundaki kısıtlamaların listesi.
analysis_test varsayılan = False
true ise bu kural analiz testi olarak değerlendirilir.

Not: Analiz testi kuralları öncelikli olarak temel Starlark kitaplıklarında sağlanan altyapı kullanılarak tanımlanır. Yardım için Test bölümüne bakın.

Bir kural analiz testi 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 uygulanır:

  • Bu kuralın hedefleri, sahip olabilecekleri geçişli bağımlılıkların sayısı bakımından sınırlıdır.
  • Kural, test kuralı olarak kabul edilir (test=True ayarlanmış gibi). Bu, test değerinin yerine geçer.
  • Kural uygulama işlevi, işlemleri kaydetmeyebilir. Bunun yerine, AnalysisTestResultInfo sağlayarak başarılı/başarısız sonucunu kaydetmelidir.
build_setting BuildSetting; or None; default = None
Ayarlanırsa bu kuralın ne tür bir build setting olduğunu açıklar. config modülüne bakın. Bu ayar belirlenirse 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 uygulayacağı yapılandırma geçişini gösterir.
exec_groups dict; or None; default = None
Yürütme grubu adının (dize) exec_group sözlüğü. Ayarlanırsa kuralların tek bir hedef içinde birden fazla yürütme platformunda işlem yapmasına olanak tanır. Daha fazla bilgi için yürütme grupları dokümanlarını inceleyin.
compile_one_filetype sequence of strings; or None; default = None
Used by --compile_one_dependency: if multiple rules consume the specified file, should we choose this rule over others.
name string; or None; default = None
Kullanımdan kaldırıldı. Bu parametrenin desteği sonlandırıldı ve yakında kaldırılacak. Lütfen bu bilgileri kullanmayın. --+incompatible_remove_rule_name_parameter ile devre dışı bırakılır. Kodunuzun, bu özelliğin yakında kaldırılmasıyla uyumlu olduğunu doğrulamak için bu işareti kullanın.
Kullanımdan kaldırıldı: Kullanmayın.

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

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(...) bu parametreyi belirtmesi gerekmez.

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

seç

unknown select(x, no_match_error='')

select(), bir kural özelliğini yapılandırılabilir hale getiren yardımcı işlevdir. Ayrıntılar için derleme ansiklopedisine bakın.

Parametreler

Parametre Açıklama
x gerekli
Yapılandırma koşullarını değerlerle eşleyen bir sözlük. Her anahtar, bir config_setting veya constraint_value örneğini tanımlayan bir etiket ya da etiket dizesidir. Dize yerine ne zaman etiket kullanacağınız hakkında bilgi edinmek için makrolarla ilgili dokümanları inceleyin.
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 yine bir sicilden gelmesi gerektiğini ancak sürümünün sabitlenmesi, sicilinin geçersiz kılınması veya bir yama listesinin uygulanması gerektiğini belirtir. Bu yönerge yalnızca kök modülde geçerli olur. Başka bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılıyorsa kendi geçersiz kılmaları yok sayılır.

Parametreler

Parametre Açıklama
module_name gerekli
Bu geçersiz kılmanın uygulanacağı Bazel modülü bağımlılığının adı.
version default = ''
Bu modülün bağımlılık grafiğinde belirtilen sürümünü geçersiz kılar. Yani bu modül, bu geçersiz kılma sürümüne "sabitlenir". Yalnızca kayıt otoritesi veya yamalar geçersiz kılınmak isteniyorsa bu özellik atlanabilir.
registry default = ""
Bu modül için kayıt defterini geçersiz kılar. Bu modül, varsayılan kayıt defteri listesinden bulunmak yerine belirtilen kayıt defteri kullanılmalıdır.
patches Iterable of strings; default = []
Bu modüle uygulanacak yama dosyalarını gösteren etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Listelenen sırayla uygulanır.
patch_cmds Iterable of strings; default = []
Yama uygulandıktan sonra Linux/MacOS'te uygulanacak Bash komutlarının sırası.
patch_strip varsayılan = 0
Unix patch'in --strip bağımsız değişkeniyle aynıdır.

sıralanmış

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 ve y öğe çiftlerinden herhangi biri x < y kullanılarak karşılaştırılamıyorsa hata oluşabilir. Ters bağımsız değişkeni Doğru olmadığı sürece öğeler artan düzende sıralanır. Ters bağımsız değişkeni Doğru ise sıralama azalan düzende olur. Sıralama sabittir: Eşit 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ıralanacak yinelenebilir dizi.
key varsayılan = Yok
Karşılaştırmadan önce her öğeye uygulanan isteğe bağlı bir işlev.
reverse default = False
Sonuçları azalan düzende döndürür.

str

string str(x)

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

Parametreler

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

tag_class

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

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

Parametreler

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

tuple

tuple tuple(x=())

Belirtilen yinelenebilir değerle aynı öğeleri içeren 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 default = ()
Dönüştürülecek nesne.

tür

string type(x)

Bağımsız değişkeninin tür adını döndürür. Bu, hata ayıklama ve tür kontrolü için yararlı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 yazmak ve gelecekte sorun yaşamamak için bu işlevi yalnızca dönüş değerlerini karşılaştırmak üzere kullanın:
if type(x) == type([]):  # if x is a list

Parametreler

Parametre Açıklama
x required
Türünün kontrol edileceği nesne.

use_extension

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

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

Parametreler

Parametre Açıklama
extension_bzl_file required
Modül uzantısını tanımlayan Starlark dosyasının etiketi.
extension_name zorunlu
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 varsayılan = False
Doğruysa 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.
isolate default = False
Deneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu bilgileri kullanmayın. ---experimental_isolated_extension_usages
olarak ayarlanarak deneysel olarak etkinleştirilebilir. Doğruysa modül uzantısının bu kullanımı, hem bu modüldeki hem de diğer modüllerdeki tüm diğer kullanımlardan izole edilir. Bu kullanım için oluşturulan etiketler diğer kullanımları etkilemez ve uzantı tarafından bu kullanım için oluşturulan depolar, uzantı tarafından oluşturulan diğer tüm depolardan farklıdır.

Bu parametre şu anda deneyseldir ve yalnızca --experimental_isolated_extension_usages işaretiyle kullanılabilir.

use_repo

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

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

Parametreler

Parametre Açıklama
extension_proxy required
Bir 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
Belirli depoların, farklı adlarla mevcut modülün kapsamına aktarılacağını belirtir. Anahtarlar, geçerli kapsamda kullanılacak ad olmalı, 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ükleme görünürlüğünü ayarlar.

Bir modülün yükleme görünürlüğü, diğer BUILD ve .bzl dosyalarının bu modülü yükleyip yükleyemeyeceğini belirler. (Bu, dosyanın diğer hedeflerin bağımlılığı olarak görünüp görünmeyeceğini belirleyen temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır.) Yükleme görünürlüğü, paket düzeyinde çalışır: Bir modülü yüklemek için yükleme işlemini yapan dosyanın, modüle görünürlük izni verilmiş bir pakette bulunması gerekir. Bir modül, görünürlüğünden bağımsız olarak her zaman kendi paketi içinde yüklenebilir.

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

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

Parametreler

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

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

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

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

value bir dizeler listesiyse bu modüle görünürlük verilen paketler kümesi, her spesifikasyonun temsil ettiği paketlerin birleşimidir. (Boş bir liste, private ile aynı etkiye sahiptir.) value tek bir dizeyse [value] tek öğeli listesiymiş gibi değerlendirilir.

--incompatible_package_group_has_public_syntax ve --incompatible_fix_package_group_reporoot_syntax işaretlerinin bu bağımsız değişken üzerinde hiçbir 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 tanımlanmalıdır. Her WORKSPACE dosyasında bir workspace işlevi olmalıdır.

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

Bu ad, depodaki çalıştırma dosyalarının depolandığı dizin için kullanılır. Örneğin, yerel depoda foo/bar adlı bir çalıştırma dosyası varsa ve WORKSPACE dosyasında workspace(name = 'baz') varsa çalıştırma dosyası mytarget.runfiles/baz/foo/bar altında kullanılabilir. Çalışma alanı adı belirtilmezse runfile, 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') olamaz. Çünkü Bazel, workspace(name = 'foo%bar') içeren maven_jar için bir WORKSPACE dosyası yazmaya çalışır.

Parametreler

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

zip

list zip(*args)

list dizisi döndürür. Buradaki i. demet, bağımsız değişken dizilerinin veya yinelenebilirlerin her birinden i. öğeyi içerir.tuple Liste, en kısa girişin boyutuna sahiptir. Tek bir yinelenebilir bağımsız değişkenle 1 öğeli demetlerin listesini döndürür. Bağımsız değişken olmadan boş bir liste döndürür. Örnekler:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

Parametreler

Parametre Açıklama
args gerekli
listeleri ZIP olarak sıkıştırın.