Küresel

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

Üyeler

tümü

bool all(elements)

Tüm öğeler doğru olarak değerlendiriliyorsa veya koleksiyon boşsa doğru değerini döndürür. Öğeler, bool işlevi kullanılarak doğru/yanlış 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-test kuralının bağımlılıklarına uygulanacak bir yapılandırma geçişi oluşturur. Bu geçiş yalnızca analysis_test = True içeren kuralların özelliklerine uygulanabilir. Bu tür kuralların özellikleri kısıtlıdır (örneğin, bağımlılık ağaçlarının boyutu sınırlıdır). Bu nedenle, bu iş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 ilgili dokümanları (veya uygulamayı) inceleyin.

Parametreler

Parametre Açıklama
settings required
Bu yapılandırma geçişi tarafından ayarlanması gereken yapılandırma ayarları hakkında bilgi içeren bir sözlük. Anahtarlar, derleme ayarı etiketleridir ve değerler, geçiş sonrası yeni değerleridir. Diğer tüm ayarlar değişmez. Bir analiz testinin geçmesi için ayarlanması gereken belirli yapılandırma ayarlarını belirtmek amacıyla bunu kullanın.

herhangi

bool any(elements)

En az bir öğe doğru olarak değerlendirilirse doğru değerini döndürür. Öğeler, bool işlevi kullanılarak doğru/yanlış 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 otoritesinden 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. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılırsa kendi geçersiz kılma işlemleri yoksayılır.

Parametreler

Parametre Açıklama
module_name required
Bu geçersiz kılma işleminin uygulanacağı Bazel modülü bağımlılığının adı.
urls string; or Iterable of strings; zorunlu
Arşivin URL'leri; http(s):// veya file:// URL'leri olabilir.
integrity varsayılan = "'
Alt Kaynak Bütünlüğü biçiminde arşiv dosyasının beklenen sağlama toplamı.
strip_prefix varsayılan = ''
Çıkarılan dosyalardan kaldırılacak bir dizin ön eki.
patches Iterable of strings; default = []
Bu modüle uygulanacak yamalar dosyalarını işaret eden etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Bunlar liste sırasına göre uygulanır.
patch_cmds Iterable of strings; default = []
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 boyut oluşturur. Bu işlevin sonucu bir genel değerde depolanmalıdır. Daha fazla bilgi için lütfen yönlere giriş başlıklı makaleyi inceleyin.

Parametreler

Parametre Açıklama
implementation required
Bu yönü uygulayan ve tam olarak iki parametre içeren bir Starlark işlevi: Hedef (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, analiz aşamasında bir özelliğin hedefe her uygulanması için 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ıklara göre yayılır. Buradaki yaygın değerler deps ve exports'dur. Liste, bir hedefin tüm bağımlılıkları boyunca dağıtılacak tek bir dize "*" de içerebilir.
attrs dict; or None; default = None
Boyutun tüm özelliklerini açıklayan bir sözlük. Bir özellik adını "attr.label" veya "attr.string" gibi bir özellik nesnesine eşler (attr modülüne bakın). Yön özellik değerleri, uygulama işlevi tarafından ctx parametresinin alanları olarak kullanılabilir.

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

Açık atıf özellikleri string türüne sahip olmalı ve values kısıtlamasını kullanmalıdır. Belirli özellikler, görünümün yalnızca kısıtlamaya göre aynı ada, türe ve geçerli değerlere sahip özellikler içeren kurallarla kullanılmasını kısıtlar.

required_providers default = []
Bu özellik, özelliğin yayılmasını yalnızca kuralları gerekli sağlayıcılarının reklamını yapan hedeflerle sınırlandırmasına olanak tanır. Değer, tekil sağlayıcılar veya sağlayıcı listeleri içeren bir liste olmalıdır ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerken [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

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

Bazı kuralların (ör. some_rule) hedeflerinin bir görünüme görünür olması için some_rule'ün, gerekli sağlayıcı listelerinden en az birindeki tüm sağlayıcıların reklamını yapması gerekir. Örneğin, bir özelliğin required_providers değeri [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] ise bu özellik yalnızca some_rule FooInfo *veya* BarInfo *veya* hem BazInfo *hem* QuxInfo sağladığında 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, tekil sağlayıcılar veya sağlayıcı listeleri içeren bir liste olmalıdır ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerken [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

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

Başka bir yönü (ör. other_aspect) bu yönü tarafından görünür hale getirmek için other_aspect, listelerden en az birindeki tüm sağlayıcıları sağlamalıdır. [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] örneğinde bu görünüm, yalnızca other_aspect FooInfo *veya* BarInfo *veya* hem BazInfo hem de QuxInfo sağladığında other_aspect'ü 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. Bununla birlikte, eski bir sağlayıcı, dize adıyla temsil edilir.

requires sequence of Aspects; default = []
Bu özellikten önce dağıtılması gereken özelliklerin listesi.
fragments sequence of strings; default = []
Yönelinin hedef yapılandırmada gerektirdiği yapılandırma parçalarının adları.
host_fragments sequence of strings; default = []
Yönelinmenin ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adları.
toolchains sequence; default = []
Ayarlanırsa bu kuralın gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. Araçlar zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla kural uygulamasına sağlanır.
incompatible_use_toolchain_transition default = False
Deprecated, this is no longer in use and should be removed.
doc default = ''
Doküman oluşturma araçları tarafından ayıklanabilen yönün açıklaması.
apply_to_generating_rules varsayılan = Yanlış
Doğru ise bir çıkış dosyasına uygulandığında, yön, çıkış dosyasının oluşturma kuralına uygulanır.

Örneğin, bir özelliğin "deps" özelliği aracılığıyla aktarmalı olarak yayıldığını ve "alpha" hedefine uygulandığını varsayalım. "alpha"nın "deps = [':beta_output']" değerine sahip olduğunu varsayalım. Burada "beta_output", bir "beta" hedefinin tanımlanmış bir çıkışıdır. "beta"nın "deps" özelliklerinden biri olarak "charlie" hedefinin olduğunu varsayalım. Özellik için "apply_to_generating_rules=True" ise özellik "alpha", "beta" ve "charlie" aracılığıyla yayılır. Yanlış ise özellik yalnızca "alpha"ya yayılır.

Varsayılan olarak yanlıştır.

exec_compatible_with sequence of strings; default = []
Yürütme platformundaki, bu özelliğin tüm örnekleri için geçerli olan kısıtlamaların listesi.
exec_groups dict; or None; default = None
Yürütme grubu adının (dize) exec_groups ile dizini. Ayarlanırsa yönlerin tek bir örnek içinde birden fazla yürütme platformunda işlemler çalıştırmasına olanak tanır. Daha fazla bilgi için yürütme grupları belgelerine bakın.

bazel_dep

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

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

Parametreler

Parametre Açıklama
name required
Doğrudan bağımlılık olarak eklenecek modülün adı.
version default = ''
Doğrudan bağımlılık olarak eklenecek modülün sürümü.
max_compatibility_level default = -1
Modülün doğrudan bağımlılık olarak eklenmesi için desteklenen maksimum compatibility_level. Modülün sürümü, desteklenen minimum compatibility_level değerini ve bu özellik belirtilmemişse maksimum değeri belirtir.
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 ayrıntılı bilgi için bind işlevini kaldırmayı düşünün başlıklı makaleyi inceleyin.

Bir hedefe //external paketinde takma ad verir.

Parametreler

Parametre Açıklama
name required
"//external" altındaki etiket, takma ad olarak kullanılır.
actual string; or None; default = None
Takma ad verilecek gerçek etiket

bool

bool bool(x=False)

bool türü için kurucu. Nesne None, False, boş dize (""), 0 sayısı veya boş bir koleksiyon (ör. (), []) ise False döndürür. Aksi takdirde True 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)

Etiket türündeki bir özellik için geç bağlanmış varsayılan değeri referans alır. Bir değer, değeri belirlemeden önce yapılandırmanın oluşturulmasını gerektiriyorsa "geç bağlanma" özelliğine sahiptir. Bu değeri kullanan tüm özellikler özel olmalıdır.

Örnek kullanım:

Kural özelliğini tanımlama:

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

Kural uygulama sırasında erişim:

  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 required
Yapılandırma parçasından alınacak değerin adı.

depset

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

Bir depset oluşturur. direct parametresi, bağımlılık grubunun doğrudan öğelerinin bir listesi, transitive parametresi ise öğeleri oluşturulan bağımlılık grubunun dolaylı öğeleri haline gelen bağımlılık gruplarının bir listesidir. Depset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order parametresi tarafından belirtilir. Daha fazla bilgi için Depset'lere genel bakış başlıklı makaleyi inceleyin.

Bir depsetteki tüm öğeler (doğrudan ve dolaylı), type(x) ifadesiyle elde edilen türde olmalıdır.

Yineleme sırasında yinelemeleri ortadan kaldırmak için karma oluşturmaya dayalı bir küme kullanıldığından, bir depset'in tüm öğeleri karma oluşturmaya uygun olmalıdır. Ancak bu değişmez özellik şu anda tüm kurucularda 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. Sayı 10313 sorununa bakın.

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

Oluşturulan depo grubunun sırası, transitive depo gruplarının sırasıyla uyumlu olmalıdır. "default" siparişi diğer tüm siparişlerle uyumludur. Diğer tüm siparişler yalnızca kendileriyle uyumludur.

Geriye dönük/ileri dönük uyumlulukla ilgili not. Bu işlev şu anda konumsal bir items parametresini kabul etmektedir. Bu işlev için destek sonlandırılmış olup gelecekte kaldırılacaktır. Kaldırıldıktan sonra direct, depset işlevinin tek konumsal parametresi haline gelecektir. Bu nedenle, aşağıdaki çağrıların ikisi de eşdeğerdir ve gelecekte de geçerli olacaktır:

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

Parametreler

Parametre Açıklama
direct sequence; or None; default = None
Bir depsetin doğrudan öğelerinin listesi.
order default = "default"
Yeni depset için tarama stratejisi. Olası değerler için buraya bakın.
transitive sequence of depsets; or None; default = None
Öğeleri depsetin dolaylı öğeleri olacak depsetlerin 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şkeni 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, konumsal bağımsız değişken aracılığıyla sağlanan girişlerden sonra geldiği kabul edilir.

Parametreler

Parametre Açıklama
pairs default = []
Bir sözlük veya öğelerinin her biri 2 uzunlukta (anahtar, değer) olan bir iterlenebilir.
kwargs required
Ek girişler sözlüğü.

dir

list dir(x)

Parametre nesnesinin özelliklerinin ve yöntemlerinin adlarını içeren bir dize listesi döndürür.

Parametreler

Parametre Açıklama
x required
Kontrol edilecek nesne.

enumerate

list enumerate(list, start=0)

Giriş dizisindeki dizini (int) ve öğeyi içeren bir çiftler listesi (iki öğeli tuple) döndürür.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]

Parametreler

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

exec_group

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

Kural uygulama sırasında belirli bir yürütme platformu için işlem 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ç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir.
exec_compatible_with sequence of strings; default = []
Yürütme platformundaki kısıtlamaların listesi.
copy_from_rule default = False
Bu yürütme grubu, doğru olarak ayarlanırsa bu grubun bağlı olduğu kuralın araç zincirlerini ve kısıtlamalarını devralır. Başka bir dize olarak ayarlanırsa hata oluşur.

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 default = None
Deprecated: bunun yerine konumsal bağımsız değişkenleri kullanın. Bu bağımsız değişken, açık bir başlangıç konumsal bağımsız değişkeni gibi davranır.
attr string; or None; default = None
Desteği sonlandırıldı. Bu dizeyi içeren isteğe bağlı bir ön ekin hata mesajına eklenmesine neden olur.
args required
Hata mesajında görünen, debugPrint ile biçimlendirilmiş (varsayılan olarak str ile eşdeğerdir) ve boşluklarla birleştirilmiş bir değer listesi.

kayan noktalı

float float(x=unbound)

x değerini kayan noktalı değer olarak döndürür.
  • x zaten kayan noktalı bir değerse float, değeri değiştirmeden döndürür.
  • x bir boole ise float, True için 1,0 ve False için 0,0 değerini döndürür.
  • x bir int ise float, x'e en yakın sonlu kayan nokta değerini döndürür veya büyüklük çok büyükse bir hata döndürür.
  • x bir dize ise geçerli bir kayan noktalı değişmez değer veya NaN, Inf ya da Infinity ile eşit (büyük/küçük harf duyarlılığı yoksayılır) olmalıdır. Dilerseniz + veya - işareti de eklenebilir.
Başka herhangi bir değer hataya neden olur. Bağımsız değişken içermeyen 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)

Varsa yapının, belirtilen ada sahip alanını döndürür. Aksi takdirde default değerini (belirtilmişse) döndürür veya hata oluşturur. getattr(x, "foobar"), x.foobar değerine eş değerdir.
getattr(ctx.attr, "myattr")
getattr(ctx.attr, "myattr", "mydefault")

Parametreler

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

git_override

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

Bir bağımlılık için Git deposunun belirli bir gönderiminden gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde geçerli olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılırsa kendi geçersiz kılma işlemleri yoksayılır.

Parametreler

Parametre Açıklama
module_name required
Bu geçersiz kılma işleminin uygulanacağı Bazel modülü bağımlılığının adı.
remote zorunlu
Uzak Git deposunun URL'si.
commit default = ''
Check out yapılması gereken commit.
patches Iterable of strings; default = []
Bu modüle uygulanacak yamalar dosyalarını işaret eden etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Bunlar liste sırasına göre uygulanır.
patch_cmds Iterable of strings; default = []
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 özelliğine veya yöntemine sahipse True (Doğru), aksi takdirde False (Yanlış) değerini döndürür. Örnek:
hasattr(ctx.attr, "myattr")

Parametreler

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

hash

int hash(value)

Bir dize için karma oluşturma değeri döndürme. Bu değer, Java'nın String.hashCode() ile aynı algoritma kullanılarak belirlenir. Şöyle ki:
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 desteklenmiyor.

Parametreler

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

int

int int(x, base=unbound)

x değerini tam sayı olarak döndürür.
  • x zaten int ise int, değeri değiştirilmeden döndürür.
  • x bir boole ise int, True için 1 ve False için 0 değerini döndürür.
  • x bir dize ise <sign><prefix><digits> biçiminde olmalıdır. <sign>, "+", "-" veya boştur (pozitif olarak yorumlanır). <digits>, 0 ile base - 1 arasındaki bir basamak dizisidir. Bu dizede, 10-35 için a-z harfleri (veya eşdeğeri olarak A-Z) 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ğer olarak 0B/0O/0X) olabilir; base bu tabanlar dışında başka bir değer veya özel değer 0 ise ön ek boş olmalıdır. base değerinin 0 olduğu durumlarda, dize bir tam sayı literali olarak yorumlanır. Yani, varsa kullanılan ön eke bağlı olarak 2/8/10/16 tabanlarından biri seçilir. base 0 ise ön ek kullanılmaz ve birden fazla basamak varsa ilk basamak 0 olamaz. Bu, sekizlik ve ondalık sistem arasındaki karışıklığı önlemek içindir. Dizeyle temsil edilen sayının büyüklüğü, int türü için izin verilen aralık içinde olmalıdır.
  • x bir kayan noktaysa int, kayan noktanın tam sayı değerini sıfıra yuvarlayarak döndürür. x sonlu değilse (NaN veya sonsuz) hata oluşur.
x başka bir türse veya değer yukarıdaki biçimi karşılamayan bir dizeyse bu işlev başarısız olur. Python'un int işlevinin aksine bu işlev sıfır bağımsız değişkene izin vermez 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 required
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 (dahil) veya x bir tam sayı değişmeziymiş gibi taban değerini algılamak için 0 olmalıdır. Değer bir dize değilse bu parametre sağlanmamalıdır.

len

int len(x)

Bir dizenin, dizinin (ör. liste veya tuple), sözlüğün veya başka bir iterlenebilir öğenin uzunluğunu döndürür.

Parametreler

Parametre Açıklama
x required
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ık öğesinin yerel diskteki belirli bir dizinden gelmesi gerektiğini belirtir. Bu yönerge yalnızca kök modülde geçerli olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılırsa kendi geçersiz kılma işlemleri yoksayılır.

Parametreler

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

maks.

unknown max(*args)

Verilen tüm bağımsız değişkenler arasından en büyük olanı döndürür. Yalnızca bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan bir iteratör olmalıdır. Öğeler karşılaştırılabilir değilse (ör. tamsayı ile dize) veya bağımsız değişken sağlanmamışsa 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)

Verilen tüm bağımsız değişkenler arasından en küçük olanı döndürür. Yalnızca bir bağımsız değişken sağlanırsa bu bağımsız değişken boş olmayan bir iteratör olmalıdır. Öğeler karşılaştırılabilir değilse (ör. tamsayı ile dize) veya bağımsız değişken verilmezse hata oluşur.
min(2, 5, 4) == 2
min([5, 6, 3]) == 3

Parametreler

Parametre Açıklama
args 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 belirtir. Bu özellikler, modülün temel meta verileridir (ad ve sürüm gibi) veya mevcut modülün ve bağımlılarının davranışını etkiler.

En fazla bir kez çağrılmalıdır. Yalnızca bu modül kök modülse (yani başka bir modül tarafından bağımlı olmayacaksa) 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 bağımlı olmayacaksa) 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ı; 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 bağımlı olmayacaksa) atlanabilir.
compatibility_level default = 0
Modülün uyumluluk seviyesi. Bu değer, uyumsuz büyük bir değişiklik her uygulandığında değiştirilmelidir. Bu, SemVer açısından modülün "büyük sürümü"dür. Bununla birlikte, sürüm dizesine yerleştirilmez ve ayrı bir alan olarak bulunur. Farklı uyumluluk düzeylerine sahip modüller, farklı ada sahip modüllermiş gibi sürüm çözümüne katılır ancak nihai bağımlılık grafiği, aynı ada sahip ancak farklı uyumluluk düzeylerine sahip birden fazla modül içeremez (multiple_version_override etkin değilse; daha fazla bilgi için buraya bakın).
repo_name default = ''
Bu modülün kendisinin gördüğü şekilde, modülü temsil eden deponun adı. Varsayılan olarak, deponun adı modülün adıdır. Bu, kendisi için modül adından farklı bir depo adı kullanan projelerin taşınmasını kolaylaştırmak için belirtilebilir.
bazel_compatibility Iterable of strings; default = []
Kullanıcıların bu modülle uyumlu Bazel sürümlerini belirtmesine olanak tanıyan 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ğerlerinin dizesidir. Üç kısıtlama desteklenir: <=X.X.X: Bazel sürümü X.X.X'e eşit veya bu sürümden eski olmalıdır. Daha yeni bir sürümde uyumsuz olduğu bilinen bir değişiklik olduğunda kullanılır. >=X.X.X: Bazel sürümü X.X.X ile aynı veya daha yeni olmalıdır.Yalnızca X.X.X sürümünden itibaren kullanılabilen bazı özelliklere ihtiyaç duyduğunuzda kullanılır. -X.X.X: X.X.X Bazel sürümü uyumlu değildir. X.X.X sürümünde, çalışmanızı engelleyen 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ılıp MODULE.bazel dosyasında kullanılabilmesi için global bir değerde saklayın.

Parametreler

Parametre Açıklama
implementation required
Bu modül uzantısını uygulayan işlev. Tek bir parametre (module_ctx) almalıdır. Mevcut depo grubunu 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ı beyan etmek için bir sözlük. Etiket sınıfının adından bir tag_class nesnesine eşlenir.
doc default = ''
Doküman oluşturma araçları tarafından ayıklanabilen 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ı belirtir
arch_dependent default = False
Bu uzantının mimariye bağlı olup olmadığını belirtir

multiple_version_override

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

Bir bağımlılık için yine de bir kayıt defteri kullanılacağını ancak birden fazla sürümünün birlikte var olmasına izin verilmesi gerektiğini belirtir. Daha fazla ayrıntı için dokümanları inceleyin. Bu yönerge yalnızca kök modülde geçerli olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılırsa kendi geçersiz kılma işlemleri yoksayılır.

Parametreler

Parametre Açıklama
module_name required
Bu geçersiz kılma işleminin uygulanacağı Bazel modülü bağımlılığının adı.
versions Iterable of strings; required
Bir arada 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ülün bağımlılıkları, aynı uyumluluk düzeyinde izin verilen en yakın üst sürüme "yükseltilir". Aynı uyumluluk düzeyinde izin verilen sürümlerden daha yüksek sürüme sahip bağımlılıklar ise hataya neden olur.
registry default = ''
Bu modülün kayıt defterini geçersiz kılar; bu modül varsayılan kayıt defteri listesinden bulunmaz, belirtilen kayıt defteri kullanılır.

yazdır

None print(sep=" ", *args)

Hata ayıklama çıkışı olarak args yazdırır. Öncesine "DEBUG" dizesi ve bu çağrının konumu (dosya ve satır numarası) eklenir. Argümanların dizelere dönüştürülme şekli belirtilmez ve herhangi bir zamanda değişebilir. Özellikle str() ve repr() tarafından yapılan biçimlendirmeden farklı (ve daha ayrıntılı) olabilir.

Kullanıcılar için spam oluşturduğundan, üretim kodunda print kullanılması önerilmez. Desteği sonlandırılan özellikler için mümkün olduğunda fail() kullanarak kesin hata 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)

Bir sağlayıcı simgesini tanımlar. Sağlayıcı, çağrılarak örneklendirilebilir veya doğrudan bir hedeften ilgili 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 kılavuz 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 tuple döndürür: Provider çağrılabilir değer ve ham kurucu ç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 aşağıdaki init parametresi tartışmasına bakın.

Parametreler

Parametre Açıklama
doc default = ''
Doküman oluşturma araçları tarafından ayıklanabilen sağlayıcının açıklaması.
fields sequence of strings; or dict; or None; default = None
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
Oluşturma 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 işlevi. init belirtilirse provider(), 2 öğeden oluşan bir tuple döndürür: normal sağlayıcı sembolü ve bir ham kurucu.

Aşağıda bu konu hakkında ayrıntılı bir açıklama verilmiştir. 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ı yapılarak oluşturulan sağlayıcı sembolü olsun. Kavramsal olarak, P örneği, aşağıdakileri yapan varsayılan bir oluşturucu işlevi c(*args, **kwargs) çağrılarak oluşturulur:

  • args boş değilse hata oluşur.
  • provider() çağrılırken fields parametresi belirtilmişse ve kwargs, fields'te listelenmeyen bir anahtar içeriyorsa hata meydana gelir.
  • 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.
init geri çağırma işlevi verilmediği takdirde, P simgesine yapılan çağrı, varsayılan yapıcı işlevi c'e yapılan çağrı gibi davranır. Diğer bir deyişle, P(*args, **kwargs) c(*args, **kwargs) döndürür. Örneğin,
MyInfo = provider()
m = MyInfo(foo = 1)
m'un m.foo == 1 içeren bir MyInfo örneği olmasını sağlar.

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

  1. Geri çağırma işlevi init(*args, **kwargs) olarak çağrılır. Yani P'a iletilen konumsal ve anahtar kelime bağımsız değişkenleriyle aynı bağımsız değişkenler kullanılır.
  2. init işlevinin döndürdüğü değerin, anahtarları alan adı dizeleri olan bir sözlük (d) olması beklenir. Aksi takdirde hata oluşur.
  3. P sınıfının yeni bir örneği, c(**d)'de olduğu gibi d girişlerini anahtar kelime bağımsız değişkenleri olarak kullanarak varsayılan kurucuyu çağırmış gibi oluşturulur.

Not: Yukarıdaki adımlar, *args veya **kwargs'nin init'nin imzasıyla eşleşmemesi, init'nin gövdesinin değerlendirilmesinin başarısız olması (fail() çağrısı yoluyla kasıtlı olarak) veya init'nin döndürdüğü değerin beklenen şemaya sahip bir sözlük olmaması durumunda hata oluştuğunu belirtir.

Bu şekilde init geri çağırma işlevi, ön işleme ve doğrulama için konumsal bağımsız değişkenlere ve keyfi mantığa izin vererek normal sağlayıcı oluşumunu genelleştirir. İzin verilen fields listesinin etrafından dolanmayı etkinleştirmez.

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

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

aralık

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

step artışı kullanılarak öğelerin start ile stop arasında olduğu 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 required
durma sağlanırsa başlangıç öğesinin değeri, aksi takdirde durma değerinin değeri ve gerçek başlangıç 0 olur
stop_or_none int; or None; default = None
Sonuçta elde edilen listeye dahil edilmeyecek ilk öğenin isteğe bağlı dizini; liste oluşturma işlemi stop değerine ulaşılmadan durdurulur.
step default = 1
Artış (varsayılan değer 1). Olumsuz olabilir.

register_execution_platforms()

None register_execution_platforms(*platform_labels)

Bazel'in araç zinciri çözümü sırasında çalışma 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şlar). Daha fazla bilgi için araç zinciri çözünürlüğü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = False
Doğru ise geçerli 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 toolchain çözümü sırasında kullanabilmesi için önceden tanımlanmış bir toolchain'i kaydedin. Araç zincirlerini tanımlama ve kaydetme örneklerini inceleyin.

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şlar). Daha fazla bilgi için araç zinciri çözünürlüğü bölümüne bakın.

Parametreler

Parametre Açıklama
dev_dependency varsayılan = False
Doğru ise geçerli 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üklenmesi ve çağrılabilmesi için genel bir değerde depolayın.

Parametreler

Parametre Açıklama
implementation required
Bu kuralı uygulayan işlev. 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
kuralın tüm özelliklerini bildirmek için kullanılan sözlük. Bir özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir dosyaya etikete yönelik gizli bir bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı olarak eklenir ve belirtilmemelidir.
local default = False
Bu kuralın her şeyi yerel sistemden getirdiğini ve her getirme işleminde yeniden değerlendirilmesi gerektiğini belirtir.
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 denetlediğine dair işaret
remotable default = False
Deneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. ---experimental_repo_remote_exec
Uzaktan yürütme ile uyumlu olarak ayarlanarak deneme amaçlı olarak etkinleştirilebilir.
doc default = ''
Belge oluşturma araçları tarafından ayıklanabilen depolama alanı kuralının açıklaması.

repr

string repr(x)

Herhangi bir nesneyi dize temsiline 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 çevrildi

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
Tersine çevrilecek iterlenebilir 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ılabilecek yeni bir kural oluşturur.

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

Test kurallarının adının _test ile bitmesi gerekir. Diğer tüm kuralların adında bu son ek bulunmamalıdır. (Bu kısıtlama yalnızca kurallar için geçerli olup hedeflerinin kapsamına girmez.)

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 test kuralı olup olmadığı, yani bir blaze test komutunun konusu olup olamayacağı. Tüm test kuralları otomatik olarak yürütülebilir olarak kabul edilir. Test kuralları için executable = True değerini açıkça ayarlamak gerekmez (ve önerilmez). Daha fazla bilgi için Kurallar sayfasına bakın.
attrs dict; or None; default = None
kuralın tüm özelliklerini bildirmek için kullanılan sözlük. Bir özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir etikete dolaylı bağımlılık eklemek için kullanılabilir. name özelliği dolaylı olarak eklenir ve belirtilmemelidir. visibility, deprecation, tags, testonly ve features özellikleri dolaylı 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ırlamak için attrs boyutuna bir sınır uygular.
outputs dict; or None; or function; default = None
Desteği sonlandırıldı. Bu parametrenin desteği sonlandırıldı ve yakında kaldırılacak. Lütfen bu yönteme güvenmeyin. ---incompatible_no_rule_outputs_param ile devre dışı bırakılır. Kodunuzun yakında kaldırılacak olan özellikle uyumlu olup olmadığını doğrulamak için bu işareti kullanın.
Bu parametrenin desteği sonlandırılmıştır. Kuralları, OutputGroupInfo veya attr.output yerine kullanacak şekilde taşıyın.

Önceden beyan edilen çıkışları tanımlamak için kullanılan bir ş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 işlevi, hesaplanmış bağımlılık özelliklerine benzer şekilde çalışır: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin, outputs = _my_func parametresini def _my_func(srcs, deps): ... tanımı ile 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 bir tanımlayıcı ve değerin, çıktının etiketini belirleyen bir dize şablonu olduğu önceden bildirilmiş bir çıktı oluşturur. Kuralın uygulama işlevinde tanımlayıcı, ctx.outputs içindeki çıkışın File alanına erişmek için kullanılan alan adı olur. Çıktının etiketi, kuralla aynı pakete sahiptir ve paketten sonraki kısı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 olduğu gibi değiştirilir.
  • Etiket türündeki özellikler, paketten sonra dosya uzantısı çıkarılarak etiketin bir parçası olur. Örneğin, "//pkg:a/b.c" etiketi "a/b" olur.
  • Çıkış türündeki ö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 (örneğin, attr.label_list) tam olarak bir öğeye sahip olması gerekir. Dönüşümleri, liste dışı sürümleriyle (attr.label) aynıdır.
  • Diğer özellik türleri yer tutucularda görünmeyebilir.
  • Özel özellik olmayan yer tutucular %{dirname} ve %{basename}, paketi hariç olmak üzere kuralın etiketinin bu bölümlerini genişletir. Örneğin, "//pkg:a/b.c" dosyasında dirname a, basename ise b.c olur.

Uygulamada en yaygın yer tutucu "%{name}"'tür. Örneğin, "foo" adlı bir hedef için çıkışlar sözlüğü {"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 olarak kabul edilip edilmeyeceğini, yani bir blaze run komutunun konusu olup olamayacağını belirtir. Daha fazla bilgi için Kurallar sayfasına bakın.
output_to_genfiles varsayılan = False
Doğru ise dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için ihtiyacınız olmadığı sürece (ör. C++ için başlık dosyaları oluştururken) bu işareti ayarlamayınız.
fragments sequence of strings; default = []
Kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adları.
host_fragments sequence of strings; default = []
Kuralın ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adları.
_skylark_testable default = False
(Deneysel)

Doğru ise bu kural, işlemlerini bir Actions sağlayıcı aracılığıyla kendisine bağlı kurallar tarafından incelenmek üzere gösterir. Sağlayıcı, ctx.created_actions() çağrısı yapılarak kuralın kendisi tarafından da kullanılabilir.

Bu, yalnızca Starlark kurallarının analiz sırasındaki davranışını test etmek için kullanılmalıdır. Bu işaret gelecekte kaldırılabilir.
toolchains sequence; default = []
Ayarlanırsa bu kuralın gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. Araçlar zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla kural uygulamasına sağlanır.
incompatible_use_toolchain_transition default = False
Deprecated, this is no longer in use and should be removed.
doc default = ''
Belge oluşturma araçları tarafından ayıklanabilen kural 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. Bununla birlikte, eski bir sağlayıcı, dize adıyla temsil edilir.

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

Not: Analiz testi kuralları, 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 etkinleştirilir:

  • Bu kuralın hedefleri, sahip olabilecekleri geçişli bağımlılık sayısı açısından sınırlıdır.
  • Kural, test kuralı olarak kabul edilir (test=True ayarlanmış gibi). Bu, test değerinin yerini alır.
  • Kural uygulama işlevi işlemleri kaydedemeyebilir. 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 ayarlanırsa bu kurala, burada iletilen değere karşılık gelen bir türde "build_setting_default" adlı zorunlu bir özellik otomatik olarak eklenir.
cfg default = None
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_groups ile dizini. Ayarlanırsa kuralların tek bir hedef içinde birden fazla yürütme platformunda işlemler yapmasını sağlar. Daha fazla bilgi için yürütme grupları belgelerine bakın.
compile_one_filetype sequence of strings; or None; default = None
--compile_one_dependency tarafından kullanılır: Belirtilen dosyayı birden fazla kural kullanıyorsa diğer kurallar yerine bu kuralı seçmeli miyiz?
name string; or None; default = None
Desteği sonlandırıldı. Bu parametrenin desteği sonlandırıldı ve yakında kaldırılacak. Lütfen bu yönteme güvenmeyin. --+incompatible_remove_rule_name_parameter ile devre dışı bırakılır. Kodunuzun yakında kaldırılacak olan özellikle uyumlu olup olmadığını 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 raporlanan bu kuralın adı. Genellikle bu, bu kurala bağlanan Starlark tanımlayıcısıyla aynıdır. Örneğin, foo_library adlı bir kural genellikle foo_library = rule(...) olarak tanımlanır ve BUILD dosyasında foo_library(...) olarak örneklenir.

Bu parametre atlanırsa kuralın adı, tanımlayan .bzl modülü içinde bu kurala bağlanacak ilk Starlark genel değişkeninin adıyla ayarlanır. Bu nedenle, ad foo_library ise foo_library = rule(...)'nin bu parametreyi belirtmesi gerekmez.

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

seç

unknown select(x, no_match_error='')

select(), 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 required
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 etiketin ne zaman kullanılacağı hakkında bilgi edinmek için makrolarla ilgili dokümanlara bakın.
no_match_error default = ''
Hiçbir koşul eşleşmezse raporlanacak isteğe bağlı özel hata.

single_version_override

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

Bir bağımlılık yine de bir kayıt defteri tarafından sağlanmalıdır ancak sürümünün sabitlenmesi, kayıt defterinin geçersiz kılınması veya bir yamalar listesinin uygulanması gerekir. Bu yönerge yalnızca kök modülde geçerli olur. Diğer bir deyişle, bir modül başkaları tarafından bağımlılık olarak kullanılırsa kendi geçersiz kılma işlemleri yoksayılır.

Parametreler

Parametre Açıklama
module_name required
Bu geçersiz kılma işleminin uygulanacağı Bazel modülü bağımlılığının adı.
version default = ''
Bağımlılık grafiğinde bu modülün bildirilen sürümünü geçersiz kılar. Diğer bir deyişle, bu modül bu geçersiz kılma sürümüne "sabitlenir". Yalnızca kayıt otoritesini veya yamaları geçersiz kılmak istiyorsanız bu özellik atlanabilir.
registry default = ''
Bu modülün kayıt defterini geçersiz kılar; bu modül varsayılan kayıt defteri listesinden bulunmaz, belirtilen kayıt defteri kullanılır.
patches Iterable of strings; default = []
Bu modüle uygulanacak yamalar dosyalarını işaret eden etiketlerin listesi. Yama dosyaları, üst düzey projenin kaynak ağacında bulunmalıdır. Bunlar liste sırasına göre uygulanır.
patch_cmds Iterable of strings; default = []
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ıralanmış

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

Sağlanan iterlenebilir dizinin tüm öğelerini içeren yeni bir sıralanmış liste döndürür. x < y kullanılarak x, y öğe çifti karşılaştırılamazsa 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şken doğruysa sıralama azalan düzende olur. Sıralama sabit kalır: Eşit olarak karşılaştırılan öğeler orijinal göreceli sıralarını korur.
sorted([3, 5, 4]) == [3, 4, 5]

Parametreler

Parametre Açıklama
iterable required
Sırlanacak iterlenebilir sıra.
key default = None
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 etiket sınıfı için bir ö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 bildirmek için kullanılan bir sözlük. Bir özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın).
doc default = ''
Etiket sınıfının, doküman oluşturma araçları tarafından ayıklanabilen açıklaması.

tuple

tuple tuple(x=())

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

Parametreler

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

tür

string type(x)

Bağımsız değişkeninin tür adını döndürür. Bu, hata ayıklama ve tür kontrolü için kullanışlıdır. Örnekler:
type(2) == "int"
type([1]) == "list"
type(struct(a = 2)) == "struct"
Bu işlev gelecekte değişebilir. Python ile uyumlu kod yazmak ve gelecekte sorun yaşamamak için bu işlevi yalnızca döndürülen değerleri karşılaştırmak için kullanın:
if type(x) == type([]):  # if x is a list

Parametreler

Parametre Açıklama
x required
Kontrol edilecek nesnenin türü.

use_extension

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

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

Parametreler

Parametre Açıklama
extension_bzl_file required
Starlark dosyasında modül uzantısını tanımlayan bir etiket.
extension_name required
Kullanılacak modül uzantısının adı. Starlark dosyası bu ada sahip bir simge dışa aktarmalıdır.
dev_dependency varsayılan = False
Doğru ise 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 yönteme güvenmeyin. ---experimental_isolated_extension_usages
ayarlanarak deneysel olarak etkinleştirilebilir. Doğru ise modül uzantısının bu kullanımı hem bu modülde hem de diğer modüllerdeki 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ı olur.

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 deposu 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 modül uzantısı proxy nesnesi.
args required
İçe aktarılacak depoların adları.
kwargs required
Mevcut modülün kapsamına farklı adlarla içe aktarılacak belirli depoları belirtir. Anahtarlar, geçerli kapsamda kullanılacak ad, 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 yöneten 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ün yüklenmesi için yüklemeyi 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 paketinde yüklenebilir.

visibility(), .bzl dosyası başına yalnızca bir kez çağrılabilir ve işlev içinde değil, yalnızca üst düzeyde ç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ış değerine ayarlanırsa yük görünürlüğü ihlalleri uyarı verir ancak derleme başarısız olmaz.

Parametreler

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

Paket özellikleri, negatif paket özelliklerine izin verilmemesi dışında package_group ile aynı biçimi izler. Yani 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 hiçbir paket

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

value bir dize listesiyse bu modüle görünürlük verilen paket grubu, her spesifikasyonla temsil edilen paketlerin birleşimidir. (Boş liste, private ile aynı etkiye sahiptir.) value tek bir dize ise [value] tek öğeli liste gibi işlenir.

--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. "//..." ise her zaman "mevcut depoda bulunan 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ı belirler. Workspace adları, ayırıcı olarak alt çizgilerin kullanıldığı, projenin Java paketi tarzında bir açıklaması olmalıdır. Örneğin, github.com/bazelbuild/bazel için com_github_bazelbuild_bazel kullanılmalıdır.

Bu ad, deposunun çalışma 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ı workspace(name = 'baz') içeriyorsa çalıştırma dosyası mytarget.runfiles/baz/foo/bar altında kullanılabilir. Workspace adı belirtilmezse çalıştırma dosyası bar.runfiles/foo/bar ile sembolik bağlantı oluşturur.

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

Parametreler

Parametre Açıklama
name zorunlu
ç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)

i. tuplinin, bağımsız değişken dizilerinin veya yinelenebilir öğelerin her birinden i. öğeyi içerdiği bir tuple döndürür.list Liste, en kısa girişin boyutuna sahiptir. Tek bir iterlenebilir bağımsız değişkenle 1-tuple listesi döndürür. Bağımsız değişken olmadan çağrıldığında boş bir liste döndürür. Örnekler:
zip()  # == []
zip([1, 2])  # == [(1,), (2,)]
zip([1, 2], [3, 4])  # == [(1, 3), (2, 4)]
zip([1, 2], [3, 4, 5])  # == [(1, 3), (2, 4)]

Parametreler

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