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 işlevleri sınırlıdır (örneğin, bağımlılık ağacının boyutu sınırlıdır). Bu nedenle, bu işlev kullanılarak oluşturulan geçişler, geçiş kullanılarak oluşturulan geçişlere kıyasla potansiyel kapsam açısından sınırlıdır.

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

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 de 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; varsayılan = []
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi.
patch_strip varsayılan = 0
Unix yamasının --strip bağımsız değişkeniyle aynıdır.

ilişkili program

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

Yeni bir unsur yaratır. Bu işlevin sonucu 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 özelliklerine ctx.rule alanı aracılığıyla erişilebilir. Bu işlev, analiz aşamasında bir özelliğin hedefe her uygulanması için değerlendirilir.
attr_aspects sequence of strings; varsayılan = []
Ö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 arasında deps ve exports bulunur. Liste, bir hedefin tüm bağımlılıkları boyunca yayılacak tek bir "*" dizesi de içerebilir.
attrs dict; or None; default = None
Özelliğin 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 örtülü ö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ı zorunlu sağlayıcıların reklamını yapan hedeflerle sınırlandırmasına olanak tanır. Değer, ya tek tek sağlayıcılar ya da sağlayıcı listeleri içeren (ikisini birden değil) bir liste olmalıdır. Ö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]] biçimine dönüştürülecek.

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

required_aspect_providers default = []
Bu özellik, bu özelliğin diğer unsurları incelemesine olanak tanır. Değer, ya tek tek sağlayıcılar ya da sağlayıcı listeleri içeren (ikisini birden değil) bir liste olmalıdır. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerken [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.

İç içe yerleştirilmemiş sağlayıcılar listesi, otomatik olarak bir sağlayıcı listesi içeren bir listeye dönüştürülecektir. Yani [FooInfo, BarInfo], otomatik olarak [[FooInfo, BarInfo]]'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 nesnesi olsa da eski sağlayıcılar dize adları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 = []
Ana makine yapılandırmasında detayın gerektirdiği yapılandırma parçalarının adlarının listesi.
toolchains sequence; default = []
Ayarlanırsa bu kuralın gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi 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 çıkarılabilecek özelliğin açıklaması.
apply_to_generating_rules varsayılan = Yanlış
Doğru ise bir çıkış dosyasına uygulanan 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 = Yok
Yürütme grubu adı (dize) ile exec_group arasındakiler. 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 bir 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 verir. 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 uygulaması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)

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, 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 depsetin sırası, transitive depsetlerinin sırası ile 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 = []
Öğelerinin her biri uzunluk olarak 2 (anahtar, değer) olan bir dikte veya yineleme.
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.

numaralandırmak

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ş sırası.
start varsayılan = 0
başlangıç dizini.

exec_group

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

Kural uygulama sırasında belirli bir yürütme platformu için iş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 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, 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, gizli 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, str ile biçimlendirilmiş ve boşluklarla birleştirilmiş değerlerin listesi.

kayan noktalı

float float(x=unbound)

Kayan noktalı değer olarak x'i döndürür.
  • x zaten kayan noktalı bir değerse float, değeri değiştirmeden döndürür.
  • x bir bool ise float, Doğru için 1,0, Yanlış için 0,0 döndürür.
  • x bir 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 ekleyebilirsiniz.
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 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 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. Liste sırasına göre uygulanırlar.
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 değer döndürür. 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 bir tam sayı ise int bunu değiştirmeden 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 dizeyse <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 durumda dize, kullanılan ön eke bağlı olarak 2/8/10/16 tabanlarından birinin seçilmesi anlamında tam sayı sabit değeri olarak yorumlanır. base değeri 0 ise, herhangi bir ön ek kullanılmaz ve birden fazla basamak varsa baştaki basamak 0 olamaz. Bunun amacı, sekizlik ve ondalık arasında karışıklık olmasını önlemektir. 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 noktalı sayıysa int, sıfıra yuvarlanarak kayan noktalı değerin tam sayı değerini döndürür. x sonlu değilse (NaN veya sonsuzluk) bir hatadır.
x 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 ve dize bağımsız değişkenlerinde 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)

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

Parametreler

Parametre Açıklama
x gerekli
Uzunluğu bildirilecek 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ırsa kendi geçersiz kılmaları yok sayı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. tam sayı 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 gerekli
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. tam sayı 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 aranmalı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 (başka bir modüle bağımlı olmayacaksa olduğu gibi) atlanabilir. Geçerli bir modül adı: 1) yalnızca küçük harf (a-z), rakam (0-9), nokta (.), 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, modül adından farklı bir depo adı kullanan projeler için taşımayı kolaylaştırmak amacıyla belirtilebilir.
bazel_compatibility Iterable of strings; 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 tarihinden sonra kullanılabilen bazı özelliklere ihtiyacınız olduğunda kullanılır. -X.X.X: Bazel sürümü X.X.X uyumlu değildir. X.X.X'te sizi bozan, ancak sonraki sürümlerde düzeltilen bir hata olduğunda kullanılır.

module_extension

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

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

Parametreler

Parametre Açıklama
implementation required
Bu modül uzantısını uygulayan işlev. Tek bir parametre olmalıdır: module_ctx. 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 nesnesiyle eşlenir.
doc default = ''
Doküman oluşturma araçları tarafından ayıklanabilen modül uzantısının açıklaması.

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. Ön ek, "DEBUG" dizesi ve bu çağrının konumuyla (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 öğe döndürür: bir Provider çağrılabilir değer ve ham oluşturucu çağrılabilir değer. Ayrıntılar için Kurallar (Özel sağlayıcıların özel başlatılması) bölümüne ve init parametresiyle ilgili açıklamaya bakın.

Parametreler

Parametre Açıklama
doc 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 grubunu kısıtlar.
Olası değerler:
  • alan listesi:
    provider(fields = ['a', 'b'])

  • sözlük alan adı -> dokümanlar:
    provider(
           fields = { 'a' : 'Documentation for a', 'b' : 'Documentation for b' })
Tüm alanlar isteğe bağlıdır.
init callable; or None; default = None
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ıyla 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 durumlarda, 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) değerini 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 değerinin belirtildiği durumda P(*args, **kwargs) çağrısı, aşağıdaki adımları uygular:

  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ürülen değerinin, anahtarları alan adı dizeleri olan bir sözlük (d) olması beklenir. Aksi takdirde hata oluşur.
  3. c(**d)'de olduğu gibi, varsayılan yapıcıyı d'un girişlerini anahtar kelime bağımsız değişkenleri olarak çağırarak P sınıfının yeni bir örneği oluşturulur.

Not: Yukarıdaki adımlar, *args veya **kwargs, init'nin imzasıyla eşleşmezse, init'nin gövdesinin değerlendirilmesi başarısız olursa (belki de fail() çağrısı yoluyla kasıtlı olarak) veya init'nin döndürdüğü değer beklenen şemaya sahip bir sözlük değilse bir hata oluştuğunu gösterir.

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 atlatılmasına olanak sağlamaz.

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 tamamen 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; varsayılan = 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; zorunlu
Kaydedilecek platformların etiketleri.

register_execution_platforms(dev_dependency)

None register_execution_platforms(dev_dependency=False, *platform_labels)

Bu modül seçildiğinde kaydedilecek önceden tanımlanmış yürütme platformlarını belirtir. Mutlak hedef kalıpları olmalıdır (ör. @ veya // ile baş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 mevcut modül kök modül değilse veya `--ignore_dev_dependency` etkinse yürütme platformları kaydedilmez.
platform_labels sequence of strings; zorunlu
Kaydedilecek platformların etiketleri.

register_toolchains()

None register_toolchains(*toolchain_labels)

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

Parametreler

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

register_toolchains(dev_dependency)

None register_toolchains(dev_dependency=False, *toolchain_labels)

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

Parametreler

Parametre Açıklama
dev_dependency default = False
Geçerli modül kök modül değilse veya "--ignore_dev_dependency" etkinse araç zincirleri True (doğru) değerine ayarlanırsa kaydedilmez.
toolchain_labels sequence of strings; required
Kaydedilecek araç zincirlerinin etiketleri.

repository_rule(implementation, attrs, local, environ, configure, remotable, doc)

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. Özellik adı, özellik nesnesiyle eşlenir (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ütmeyle uyumlu olarak ayarlanarak deneysel olarak etkinleştirilebilir
doc default = ''
Belge oluşturma araçları tarafından ayıklanabilen depolama alanı kuralının açıklaması.

repository_rule(implementation, attrs, local, environ, configure, remotable, doc)

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 gerekli
bu kuralı uygulayan işlevin gerçekleştirilmesi gerekir. 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 etiket için örtülü bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı olarak eklenir ve belirtilmemelidir.
local default = False
Bu kuralın, yerel sistemdeki her şeyi aldığını ve her getirmede 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 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ütmeyle uyumlu olarak ayarlanarak deneysel olarak etkinleştirilebilir
doc default = ''
Belge oluşturma araçları tarafından ayıklanabilecek depo kuralının açıklaması.

yir

string repr(x)

Herhangi bir nesneyi dize gösterimine dönüştürür. Bu, hata ayıklama 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)

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

Parametreler

Parametre Açıklama
sequence gerekli
Tersine çevrilecek yinelenebilir adım sırası (ör. liste).

kural

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

Hedef oluşturmak için DERLE dosyası 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ının sağladığı ö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 kabul edilir; bir test kuralı için executable = True değerinin açıkça ayarlanması gerekmez (ve önerilmez). Daha fazla bilgi için Kurallar sayfasına göz atın.
attrs dict; or None; default = 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 özeldir 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 = Yok
Kullanımdan kaldırıldı. Bu parametrenin desteği sonlandırılmıştır ve yakında kaldırılacaktır. Lütfen bu yönteme güvenmeyin. ---incompatible_no_rule_outputs_param ile devre dışı bırakıldı. Kodunuzun yakında kaldırılacak olan işlevlerle 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 beyan edilmiş çıkışlar hakkında daha fazla bilgi için Kurallar sayfasını inceleyin.

Bu bağımsız değişkenin değeri bir sözlük veya sözlük oluşturan bir geri çağırma işlevidir. Geri çağırma işlevi, 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. Çıkışın etiketi, kuralla aynı pakete sahiptir ve "%{ATTR}" biçiminin her bir yer tutucusunun, ATTR özelliğinin değerinden oluşturulan bir dizeyle değiştirilmesiyle paketin oluşturulmasından sonraki bölüm:

  • Dize türündeki özellikler 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. Satıcının dönüşümü, liste dışı sürümüyle (attr.label) aynı.
  • Diğer özellik türleri yer tutucularda görünmeyebilir.
  • Özellik olmayan özel yer tutucular %{dirname} ve %{basename}, paketi hariç tutarak kural etiketinin bu kısımlarına genişler. Örneğin, "//pkg:a/b.c" 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 {"bin": "%{name}.exe"} komutu, 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 olmayacağını belirtir. Daha fazla bilgi için Kurallar sayfasına bakın.
output_to_genfiles default = False
True (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ı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ı.
_skylark_testable default = False
(Deneysel)

True (doğru) değerine ayarlanırsa bu kural, işlemlerini bir Actions sağlayıcısı aracılığıyla ona bağlı kurallar tarafından incelenmek üzere kullanıma sunar. 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 nesnesi olmasına rağmen 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 olabileceği geçişli bağımlılıkların sayısı açısından sınırlıdır.
  • Kural, test kuralı olarak kabul edilir (test=True ayarlanmış gibi). Bu, test değerinin yerini alır.
  • Kural uygulama işlevi işlemleri 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 ayar belirlenirse 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ı (dize) ile exec_groups arasındaki sözlük. Ayarlanırsa kuralların tek bir hedef içinde birden fazla yürütme platformunda işlem çalıştırmasına izin verir. Daha fazla bilgi için yürütme grupları belgelerine 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 işlevlerle 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 DERLEME 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 ansiklopedi oluşturma bölümüne bakın.

Parametreler

Parametre Açıklama
x gerekli
Yapılandırma koşullarını değerlerle eşleyen bir diktedir. 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 düzeltme listesi 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ül için uygulanacak yama 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şken Doğru değerine sahip olmadığı sürece öğeler artan düzende sıralanır. True olarak ayarlanmış bu durumda, sıra azalan düzendedir. Sıralama 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 konusunda faydalı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 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ı öğelere sahip bir demet döndürür.
tuple([1, 2]) == (1, 2)
tuple((2, 3, 2)) == (2, 3, 2)
tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)

Parametreler

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

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
Starlark dosyasında modül uzantısını tanımlayan bir etiket.
extension_name required
Kullanılacak modül uzantısının adı. Bu ada sahip bir simge, Starlark dosyası tarafından dışa aktarılmalı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 varsayılan = Yanlış
Doğru ise modül uzantısının bu kullanımı hem bu modüldeki hem de diğer modüllerdeki diğer tüm 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.

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 gerekli
use_extension çağrısı tarafından döndürülen bir modül uzantısı proxy nesnesi.
args gerekli
İçe aktarılacak depoların adları.
kwargs 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ük 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ü yüklemek için yüklemeyi yapan dosya, modüle görünürlüğü verilen bir pakette bulunmalıdır. Bir modül, görünürlüğünden bağımsız olarak her zaman kendi paketi içinde 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.

Negatif paket özelliklerine izin verilmemesi dışında paket spesifikasyonları package_group ile aynı biçime sahiptir. Diğer bir deyişle, bir spesifikasyon şu biçimlerde olabilir:

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

"@" söz dizimine izin verilmiyor. Tüm özellikler mevcut 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 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ı 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, deponun ç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ı 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)

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