Ö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
- aspect_ids
- attr
- bin_dir
- build_file_path
- build_setting_value
- yapılandırması
- coverage_instrumented
- created_actions
- disabled_features
- exec_groups
- yürütülebilir
- expand_location
- expand_make_variables
- features
- file
- files
- fragments
- genfiles_dir
- info_file
- etiket
- outputs
- package_relative_label
- resolve_command
- resolve_tools
- kural
- runfiles
- split_attr
- super
- target_platform_has_constraint
- toolchains
- var
- version_file
- workspace_name
işlemler
actions ctx.actions
aspect_ids
list ctx.aspect_ids
attr
struct ctx.attr
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
build_file_path
string ctx.build_file_path
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
build_setting özelliğini ayarlayan bir kural örneğinin bağlamı değilse bunu okumak hatadır.
yapılandırma
configuration ctx.configuration
coverage_instrumented
bool ctx.coverage_instrumented(target=None)
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 NoneBir kural belirten hedef. Belirtilmezse varsayılan olarak geçerli kural kullanılır. |
created_actions
StarlarkValue ctx.created_actions()
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
exec_groups
ExecGroupCollection ctx.exec_groups
ctx.exec_groups[name_of_group] ile erişim
yürütülebilir
struct ctx.executable
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=[])
$(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.
|
None.
expand_make_variables
string ctx.expand_make_variables(attribute_name, command, additional_substitutions)
"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
file
struct ctx.file
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]
file to access the (singular) default output of a dependency. See example of use.
files
struct ctx.files
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]
files to access the default outputs of a dependency. See example of use.
fragments
fragments ctx.fragments
genfiles_dir
root ctx.genfiles_dir
info_file
File ctx.info_file
label
Label ctx.label
outputs
structure ctx.outputs
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
outputsdict, then for every entry in the dict, there is a field whose name is the key and whose value is the correspondingFile. - For every attribute of type
attr.outputthat 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 correspondingFile; otherwise the field value isNone. - For every attribute of type
attr.output_listthat the rule declares, there is a field whose name is the attribute's name. The field value is a list ofFileobjects 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
executableortest, 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 theexecutablearg ofDefaultInfo.
package_relative_label
Label ctx.package_relative_label(input)
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={})
(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 NoneHata 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 NoneGeniş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=[])
(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
runfiles
runfiles ctx.runfiles(files=[], transitive_files=None, collect_data=False, collect_default=False, symlinks={}, root_symlinks={})
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 FalseBu 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 FalseBu 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ğı. |
symlinks
|
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.
|
root_symlinks
|
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
super
unknown ctx.super()
target_platform_has_constraint
bool ctx.target_platform_has_constraint(constraintValue)
Parametreler
| Parametre | Açıklama |
|---|---|
constraintValue
|
ConstraintValueInfo;
required Hedef platformun kontrol edileceği kısıtlama değeri. |
araç zincirleri
ToolchainContext ctx.toolchains
var
dict ctx.var
version_file
File ctx.version_file
workspace_name
string ctx.workspace_name
--enable_bzlmod açıksa bu, sabit dizedir _main. Aksi takdirde, bu, WORKSPACE dosyasında tanımlanan çalışma alanı adıdır.