yerel istatistik

Bir kural veya yön için uygulama işlevine iletilen bağlam nesnesi. Mevcut hedefi analiz etmek için gereken bilgilere ve yöntemlere erişim sağlar.

Özellikle, uygulama işlevinin mevcut hedefin etiketine, özelliklerine, yapılandırmasına ve bağımlılıklarının sağlayıcılarına erişmesine olanak tanır. Çıkış dosyalarını ve bunları üreten işlemleri bildirme yöntemleri vardır.

Bağlam nesneleri, uygulama işlevine yapılan çağrı süresince etkin kalır. Bu nesnelere ilişkili işlevlerinin dışında erişmek faydalı değildir. Daha fazla bilgi için Kurallar sayfası'na bakın.

Üyeler

işlemler

actions ctx.actions

Çıkış dosyalarını ve bunları üreten işlemleri bildirme yöntemlerini içerir.

aspect_ids

list ctx.aspect_ids

Hedefe uygulanan tüm yönlerin kimliklerinin listesi. Yalnızca yön uygulama işlevlerinde kullanılabilir.

attr

struct ctx.attr

Özelliklerin değerlerine erişmek için kullanılan bir yapı. Değerler kullanıcı tarafından sağlanır (sağlanmazsa varsayılan değer kullanılır). Yapının özellikleri ve değerlerinin türleri, rule işlevine sağlanan attrs dict öğesinin anahtarlarına ve değerlerine karşılık gelir. Kullanım örneğini inceleyin.

bin_dir

root ctx.bin_dir

Bin dizinine karşılık gelen kök.

build_file_path

string ctx.build_file_path

Desteği sonlandırıldı: ctx.label.package + '/BUILD' kullanın. Bu kuralın BUILD dosyasına giden yol (kaynak köküne göre).

build_setting_value

unknown ctx.build_setting_value

Geçerli hedef tarafından temsil edilen derleme ayarının değeri. Bu, build_setting özelliğini ayarlayan bir kural örneğinin bağlamı değilse bunu okumak hatadır.

yapılandırma

configuration ctx.configuration

Mevcut hedefin derleme yapılandırması. Daha fazla bilgi için Starlark yapılandırma türü ve yapılandırma belgelerine bakın.

coverage_instrumented

bool ctx.coverage_instrumented(target=None)

Bu kural için derleme işlemleri gerçekleştirilirken kod kapsamı araçlarının oluşturulup oluşturulmayacağını veya target sağlanırsa bu hedef tarafından belirtilen kuralı döndürür. (Kural olmayan veya Starlark kuralı hedefi sağlanırsa bu işlev False değerini döndürür.) Geçerli kuralın kaynaklarının (Hedef sağlanmamışsa) veya Hedef'in kaynaklarının --instrumentation_filter ve --instrument_test_targets yapılandırma ayarlarına göre enstrümanlaştırılıp enstrümanlaştırılmaması gerektiğini kontrol eder. Bu, yapılandırmadaki coverage_enabled değerinden farklıdır. coverage_enabled, kapsam verisi toplamanın tüm çalıştırma için etkin olup olmadığını belirtir ancak belirli bir hedefin izlenip izlenmeyeceğini belirtmez.

Parametreler

Parametre Açıklama
target Hedef; veya None; varsayılan değer None
Bir kural belirten hedef. Belirtilmezse varsayılan olarak geçerli kural kullanılır.

created_actions

StarlarkValue ctx.created_actions()

_skylark_testable değeri True olarak ayarlanmış kurallar için bu, mevcut kuralda şimdiye kadar oluşturulan tüm işlemleri temsil eden bir Actions sağlayıcısı döndürür. Diğer tüm kurallar için None değerini döndürür. Sağlayıcının, sonraki işlemler oluşturulduğunda güncellenmediğini unutmayın. Bu nedenle, bunları incelemek isterseniz bu işlevi tekrar çağırmanız gerekir.

Bu işlev, ctx nesnesi alıp üzerinde işlemler oluşturabilen kural uygulama yardımcı işlevleri için test yazmaya yardımcı olmayı amaçlar.

disabled_features

list ctx.disabled_features

Bu kural için kullanıcı tarafından açıkça devre dışı bırakılan özellikler grubu.

exec_groups

ExecGroupCollection ctx.exec_groups

Bu kural için kullanılabilen yürütme gruplarının ada göre dizine eklenmiş koleksiyonu. ctx.exec_groups[name_of_group] ile erişim

yürütülebilir

struct ctx.executable

Etiket türü özelliklerinde tanımlanan ve executable=True olarak işaretlenen yürütülebilir dosyaları içeren bir struct. Yapı alanları, özellik adlarına karşılık gelir. Yapıdaki her değer File veya None olmalıdır. Kuralda isteğe bağlı bir özellik belirtilmemişse ilgili yapı değeri None olur. Bir etiket türü executable=True olarak işaretlenmemişse karşılık gelen bir yapı alanı oluşturulmaz. Kullanım örneğini inceleyin.

expand_location

string ctx.expand_location(input, targets=[])

Verilen dizedeki tüm $(location ...) şablonlarını, $(location //x) yerine hedef //x'in çıkış dosyasının yolunu koyarak genişletir. Genişletme yalnızca bu kuralın doğrudan bağımlılıklarını gösteren veya isteğe bağlı bağımsız değişken targets içinde açıkça listelenen etiketler için çalışır.

$(location ...), referans verilen hedefte birden fazla çıkış varsa hataya neden olur. Bu durumda, lütfen $(locations ...) kullanın. Bu, boşlukla ayrılmış bir çıkış yolu listesi oluşturur. Tek bir çıkış dosyası için de güvenle kullanılabilir.

Bu işlev, kullanıcının bir BUILD dosyasında (ör. genrule için) komut belirtmesine olanak tanımak için kullanışlıdır. Diğer durumlarda ise etiketleri doğrudan değiştirmek genellikle daha iyidir.

Parametreler

Parametre Açıklama
input string; required
String to be expanded.
targets Hedeflerin sırası; varsayılan değer []
Ek arama bilgileri için hedef listesi. Bunlar aşağıdaki şekilde genişletilir: DefaultInfo.files içinde tek bir dosyası olan bir hedef, bu dosyaya genişletilir. Diğer hedefler, ayarlanmışsa ve --incompatible_locations_prefers_executable etkinse DefaultInfo.executable dosyasına, aksi takdirde DefaultInfo.files dosyasına genişler.
Dönüş None.

expand_make_variables

string ctx.expand_make_variables(attribute_name, command, additional_substitutions)

Kullanımdan kaldırıldı. Bunun yerine değişkenlere erişmek için ctx.var'ı kullanın.
"Değişken oluştur"a yapılan tüm referanslar genişletildikten sonra bir dize döndürür. Değişkenler şu biçimde olmalıdır: $(VAR_NAME). Ayrıca, $$VAR_NAME expands to $VAR_NAME. Examples:
ctx.expand_make_variables("cmd", "$(MY_VAR)", {"MY_VAR": "Hi"})  # == "Hi"
ctx.expand_make_variables("cmd", "$$PWD", {})  # == "$PWD"
Additional variables may come from other places, such as configurations. Note that this function is experimental.
                  
      

Parameters

Parameter Description
attribute_name string; required
The attribute name. Used for error reporting.
command string; required
The expression to expand. It can contain references to "Make variables".
additional_substitutions dict; required
Additional substitutions to make beyond the default make variables.

features

list ctx.features

The set of features that are explicitly enabled by the user for this rule. See example of use.

file

struct ctx.file

A struct containing files defined in label type attributes marked as allow_single_file. The struct fields correspond to the attribute names. The struct value is always a File or None. If an optional attribute is not specified in the rule then the corresponding struct value is None. If a label type is not marked as allow_single_file, no corresponding struct field is generated. It is a shortcut for:
list(ctx.attr.<ATTR>.files)[0]
In other words, use file to access the (singular) default output of a dependency. See example of use.

files

struct ctx.files

A struct containing files defined in label or label list type attributes. The struct fields correspond to the attribute names. The struct values are list of Files. It is a shortcut for:
[f for t in ctx.attr.<ATTR> for f in t.files]
In other words, use files to access the default outputs of a dependency. See example of use.

fragments

fragments ctx.fragments

Allows access to configuration fragments in target configuration.

genfiles_dir

root ctx.genfiles_dir

The root corresponding to genfiles directory.

info_file

File ctx.info_file

The file that is used to hold the non-volatile workspace status for the current build request. See documentation for --workspace_status_command for more information.

label

Label ctx.label

The label of the target currently being analyzed.

outputs

structure ctx.outputs

A pseudo-struct containing all the predeclared output files, represented by File objects. See the Rules page for more information and examples.

This field does not exist on aspect contexts, since aspects do not have predeclared outputs.

The fields of this object are defined as follows. It is an error if two outputs produce the same field name or have the same label.

  • If the rule declares an outputs dict, then for every entry in the dict, there is a field whose name is the key and whose value is the corresponding File.
  • For every attribute of type attr.output that the rule declares, there is a field whose name is the attribute's name. If the target specified a label for that attribute, then the field value is the corresponding File; otherwise the field value is None.
  • For every attribute of type attr.output_list that the rule declares, there is a field whose name is the attribute's name. The field value is a list of File objects corresponding to the labels given for that attribute in the target, or an empty list if the attribute was not specified in the target.
  • (Deprecated) If the rule is marked executable or test, there is a field named "executable", which is the default executable. It is recommended that instead of using this, you pass another file (either predeclared or not) to the executable arg of DefaultInfo.

package_relative_label

Label ctx.package_relative_label(input)

Converts the input string into a Label object, in the context of the package of the target currently being analyzed. If the input is already a Label, it is returned unchanged.

The result of this function is the same Label value as would be produced by passing the given string to a label-valued attribute of the rule and accessing the corresponding Label(), Label()'nin, şu anda analiz edilen hedef paketi değil, kendisini çağıran .bzl dosyasının bağlamını kullanmasıdır. Bu işlev, bir kuralda veya yön uygulama işlevinde kullanılamayan native.package_relative_label() ile aynı davranışa sahiptir.

Parametreler

Parametre Açıklama
input dize veya Etiket; zorunlu
Giriş etiketi dizesi veya Etiket nesnesi. Bir Label nesnesi iletilirse olduğu gibi döndürülür.

resolve_command

tuple ctx.resolve_command(*, command='', attribute=None, expand_locations=False, make_variables=None, tools=[], label_dict={}, execution_requirements={})

(Deneysel) Çözümlenen girişlerin listesi ve çözümlenen komutun argv listesi için bir demet (inputs, command, empty list) döndürür. Her ikisi de ctx.action yönteminin aynı adlı bağımsız değişkenleri olarak iletmeye uygundur.
Windows kullanıcıları için not: Bu yöntem için Bash (MSYS2) gerekir. İhtiyaçlarınıza uygunsa bunun yerine resolve_tools() kullanabilirsiniz. Boş liste, geriye dönük uyumluluk için tanımlama grubunun üçüncü üyesi olarak döndürülür.

Parametreler

Parametre Açıklama
command string; varsayılan değer ''
Çözülecek komut.
attribute string veya None; varsayılan değer None
Hata verilecek ilişkili özelliğin adı veya Yok.
expand_locations bool; varsayılan değer False
$(location) değişkenlerini genişletelim mi? Daha fazla bilgi için ctx.expand_location() bölümüne bakın.
make_variables dict; veya None; varsayılan değer None
Genişletilecek değişkenler veya Yok.
tools Hedefler sırası; varsayılan değer []
Araç listesi (hedef listesi).
label_dict dict; varsayılan değer {}
Çözümlenen etiketlerin ve karşılık gelen Dosya listesinin sözlüğü (Etiket : Dosya listesi sözlüğü).
execution_requirements dict; varsayılan değer {}
Bu komutu çözmek için işlemin planlanmasıyla ilgili bilgiler. Faydalı anahtarlar için etiketler bölümüne bakın.

resolve_tools

tuple ctx.resolve_tools(*, tools=[])

Araçları çalıştırmak için gereken çözümlenmiş girişlerin depset'ini içeren bir demet (inputs, empty list) döndürür. Bu demet, ctx.actions.run ve ctx.actions.run_shell yöntemlerinin aynı adlı bağımsız değişkeni olarak iletmeye uygundur.

ctx.resolve_command'ın aksine bu yöntemde makineye Bash'in yüklenmesi gerekmez. Bu nedenle, Windows'da oluşturulan kurallar için uygundur. Boş liste, geriye dönük uyumluluk için tanımlama grubunun bir parçası olarak döndürülür.

Parametreler

Parametre Açıklama
tools Hedefler sırası; varsayılan değer []
Araç listesi (hedef listesi).

kural

rule_attributes ctx.rule

Yönün uygulandığı kuralın kural özellikleri tanımlayıcısı. Yalnızca yön uygulama işlevlerinde kullanılabilir.

runfiles

runfiles ctx.runfiles(files=[], transitive_files=None, collect_data=False, collect_default=False, symlinks={}, root_symlinks={})

Çalıştırma dosyaları nesnesi oluşturur.

Parametreler

Parametre Açıklama
files Dosya'ların sırası; varsayılan değer []
Çalışma dosyalarına eklenecek dosyaların listesi.
transitive_files Dosya'ların depset'i veya None; varsayılan değer None
Çalışma dosyalarına eklenecek dosyaların (geçişli) kümesi. Depsset, default sırasını kullanmalıdır (adından da anlaşılacağı gibi bu, varsayılandır).
collect_data bool; varsayılan değer False
Bu parametrenin kullanılması önerilmez. runfiles kılavuzuna bakın.

Veri çalıştırma dosyalarının srcs, data ve deps özelliklerindeki bağımlılıklardan toplanıp toplanmayacağı.

collect_default bool; varsayılan değer False
Bu parametrenin kullanılması önerilmez. runfiles kılavuzuna bakın.

srcs, data ve deps özelliklerindeki bağımlılıklardan varsayılan çalışma dosyalarının toplanıp toplanmayacağı.

dict veya SymlinkEntry'lerin depset'i; varsayılan değer {}
Çalışma dosyalarına eklenecek sembolik bağlantıların haritası veya bir SymlinkEntry depset'i. Sembolik bağlantılar her zaman ana çalışma alanının runfiles dizini altına eklenir (ör. <runfiles_root>/_main/<symlink_path>, geçerli hedefin deposuna karşılık gelen dizin değil). Kurallar kılavuzundaki Runfiles symlinks (Çalıştırma dosyası sembolik bağlantıları) bölümüne bakın.
dict veya SymlinkEntry'lerin depset'i; varsayılan değer {}
Çalışma dosyalarına eklenecek bir SymlinkEntry depset'i veya sembolik bağlantı haritası. Kurallar kılavuzundaki Runfiles symlinks (Çalıştırma dosyası sembolik bağlantıları) bölümüne bakın.

split_attr

struct ctx.split_attr

Bölünmüş yapılandırmalara sahip özelliklerin değerlerine erişmek için kullanılan bir yapı. Özellik bir etiket listesiyse split_attr değeri, bölünmenin anahtarlarının (dize olarak) sözlüğüdür ve bölünmenin söz konusu dalındaki ConfiguredTarget listeleridir. Özellik bir etikettir. Bu durumda split_attr değeri, bölünmenin anahtarlarının (dize olarak) tek bir ConfiguredTarget'a bölünmesiyle ilgili bir sözlüktür. Bölünmüş yapılandırmalara sahip özellikler, attr yapısında görünmeye devam eder ancak değerleri, bölünmenin tüm dallarının birleştirildiği tek bir liste olur.

super

unknown ctx.super()

Deneysel: Ebeveynin uygulama işlevini çağırır ve sağlayıcılarını döndürür.

target_platform_has_constraint

bool ctx.target_platform_has_constraint(constraintValue)

Belirtilen kısıtlama değeri mevcut hedef platformun bir parçasıysa true değerini döndürür.

Parametreler

Parametre Açıklama
constraintValue ConstraintValueInfo; required
Hedef platformun kontrol edileceği kısıtlama değeri.

araç zincirleri

ToolchainContext ctx.toolchains

Bu kuralın varsayılan yürütme grubu için araç zincirleri.

var

dict ctx.var

Yapılandırma değişkenlerinin sözlüğü (dizeden dizeye).

version_file

File ctx.version_file

Mevcut derleme isteği için geçici çalışma alanı durumunu tutmak üzere kullanılan dosya. Daha fazla bilgi için --workspace_status_command ile ilgili dokümanlara bakın.

workspace_name

string ctx.workspace_name

Çalışma alanının adı. Bu ad, ana depo için yürütme kök adı ve runfiles ön eki olarak kullanılır. --enable_bzlmod açıksa bu, sabit dizedir _main. Aksi takdirde, bu, WORKSPACE dosyasında tanımlanan çalışma alanı adıdır.