Python Kuralları

Sorun bildir Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Kurallar

py_binary

Kural kaynağını görüntüleme
py_binary(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_group_compatible_with, exec_properties, features, imports, interpreter_args, legacy_create_init, licenses, main, main_module, output_licenses, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, pyi_deps, pyi_srcs, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiket listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. [`deps` özelliğiyle ilgili yorumları inceleyin](https://bazel.build/reference/be/common-definitions#typical-attributes). Bu özellik genellikle kurallarla tanımlanır. Bunlar genellikle `py_library` kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler, `data` özelliğinde yer alır.
srcs

Etiket listesi; zorunlu

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, kontrol edilmiş tüm kodunuzu ve oluşturulmuş kaynak dosyaları içerebilir. `.py` dosyaları `srcs` içinde, kitaplık hedefleri ise `deps` içinde yer alır. Çalışma zamanında gerekebilecek diğer ikili dosyalar `data` içinde yer alır.
data

Etiket listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. [`data` özelliğiyle ilgili yorumları](https://bazel.build/reference/be/common-definitions#typical-attributes) inceleyin. Bu özellik genellikle kurallarla tanımlanır. "cc_embed_data" ve "go_embed_data" gibi "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
distribs

Dizelerin listesi; varsayılan değer []'dır.

imports

Dizelerin listesi; varsayılan değer []'dır.

PYTHONPATH'e eklenecek içe aktarma dizinlerinin listesi. "Değişken yap" yerine geçirme işlemine tabidir. Bu kural ve bu kurala bağlı olan tüm kurallar için bu içe aktarma dizinleri eklenecektir (Not: Bu kuralın bağlı olduğu kurallar değil). Her dizin, bu kurala bağlı olan `py_binary` kuralları tarafından `PYTHONPATH` değişkenine eklenir. Dizeler, depo-runfiles-root görecelidir. Mutlak yollara (yolu "/" ile başlayan) ve yürütme kökünün üzerindeki bir yolu referans veren yollara izin verilmez ve bu durum hataya neden olur.
interpreter_args

Dizelerin listesi; varsayılan değer []'dır.

Yalnızca yorumlayıcı için geçerli olan bağımsız değişkenler. Bir yorumlayıcının desteklediği args, yorumlayıcıya özgüdür. CPython için https://docs.python.org/3/using/cmdline.html adresini ziyaret edin. ::{note} Yalnızca {obj}`--bootstrap_impl=script` için desteklenir. Aksi takdirde yoksayılır. :: :::{seealso} {obj}`RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGS` ortam değişkeni ::: :::{versionadded} 1.3.0 :::
legacy_create_init

Tam sayı; varsayılan değer -1

Çalıştırma dosyaları ağacında boş "__init__.py" dosyalarının örtülü olarak oluşturulup oluşturulmayacağı. Bunlar, Python kaynak kodu veya paylaşılan kitaplıklar içeren her dizinde ve bu dizinlerin her üst dizininde (depo kök dizini hariç) oluşturulur. Varsayılan değer olan `-1` (otomatik), `--incompatible_default_to_explicit_init_py` kullanılmadığı sürece true (doğru) anlamına gelir. Yanlışsa kullanıcı, `__init__.py` dosyaları oluşturmaktan (muhtemelen boş) ve bunları gerektiği şekilde Python hedeflerinin `srcs` öğesine eklemekten sorumludur.
main

Etiket; varsayılan değer None'dir.

İsteğe bağlıdır. Uygulamanın ana giriş noktası olan kaynak dosyanın adıdır. Bu dosya, "srcs" içinde de listelenmelidir. Belirtilmezse bunun yerine `.py` eklenmiş `name` kullanılır. "name", "srcs" içindeki herhangi bir dosya adıyla eşleşmiyorsa "main" belirtilmelidir. Bu, {obj}`main_module` ile karşılıklı olarak hariç tutulur.
main_module

Dize; varsayılan değer ""

Ana program olarak yürütülecek modül adı. Ayarlanırsa `srcs` gerekli değildir ve modülün bir bağımlılık tarafından sağlandığı varsayılır. Modülleri ana program olarak çalıştırma hakkında daha fazla bilgi için https://docs.python.org/3/using/cmdline.html#cmdoption-m adresine bakın. Bu, {obj}`main` ile karşılıklı olarak hariç tutulur. :::{versionadded} 1.3.0 :::
precompile

Dize; varsayılan değer "inherit"

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Derleme sırasında Python kaynak dosyalarını derleyin. * `disabled`: Derleme sırasında Python kaynak dosyalarını derlemeyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işareti. * Hedef bazında ön derlemeyi dolaylı olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * [Önceden derleme](precompiling) ile ilgili kılavuzun dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olduğunun nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarları tarafından otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kayıtlı karmayla eşleşiyorsa pyc dosyasını kullanın. Bu özellik, değiştirebileceğiniz kodlarla çalışırken en kullanışlı olanıdır. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karmasını kaynak dosyayla karşılaştırmayın. Bu yöntem, kod değiştirilmeyecekse en kullanışlı yöntemdir. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki `compile()` işlevinin `optimize` argüman belgelerine bakın. NOT: `-1` değeri, "mevcut yorumlayıcı " anlamına gelir. Bu, kod gerçekten çalışırken kullanılan yorumlayıcı değil, _pyc'ler oluşturulurken derleme zamanında kullanılan_ yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"

Bir kaynak dosya derlendiğinde, kaynak dosyanın sonuçtaki çıktıda saklanıp saklanmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralır. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
pyc_collection

Dize; varsayılan değer "inherit"

Bağımlılıklardan gelen pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile`dan devralır. * `include_pyc`: Bağımlılıklardan dolaylı olarak oluşturulan pyc dosyalarını ekler. Örneğin, {attr}`precompile="inherit"` değerini belirten hedeflere ait pyc dosyaları. * `disabled`: Dolaylı olarak oluşturulan pyc dosyalarını eklemez. Hedef düzeyde ön derlemeyi etkinleştiren bağımlılıklardan pyc dosyaları gelebileceğini unutmayın.
pyi_deps

Etiket listesi; varsayılan değer []'dir.

Kitaplığın ihtiyaç duyduğu tür tanımlarını sağlayan bağımlılıklar. Bunlar, "typing.TYPE_CHECKING" ile korunan içe aktarmaları karşılayan bağımlılıklardır. Bunlar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
pyi_srcs

Etiket listesi; varsayılan değer []'dir.

Kitaplığın tür tanımı dosyaları. Bunlar genellikle `.pyi` dosyalarıdır ancak tür denetleyiciye özgü biçimler için diğer dosya türlerine de izin verilir. Bu dosyalar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
python_version

Dize; varsayılan değer ""

Bu hedefin kullanması gereken Python sürümü. Değer, "X.Y" veya "X.Y.Z" (ya da uyumlu) biçiminde olmalıdır. Boşsa veya belirtilmemişse gelen yapılandırmanın {obj}`--python_version` işareti devralınır. Geriye dönük uyumluluk için "PY2" ve "PY3" değerleri kabul edilir ancak boş/belirtilmemiş değer olarak değerlendirilir. ::{note} İstenen sürümün kullanılabilmesi için Python sürümüne uygun bir araç zinciri yapılandırılmış olmalıdır. Yoksa araç zinciri yapılandırmasına bağlı olarak sessizce yoksayılabilir veya hata oluşabilir. ::: :::{versionchanged} 1.1.0 Bu özellik, yalnızca "PY2" ve "PY3" değerlerini kabul ederken artık rastgele Python sürümlerini kabul edecek şekilde değiştirildi. :::
srcs_version

Dize; varsayılan değer ""

Kullanılmayan, işlevi olmayan bir yöntemdir.
stamp

Tam sayı; varsayılan değer -1

Derleme bilgilerinin ikili dosyaya kodlanıp kodlanmayacağı. Olası değerler: * `stamp = 1`: `--nostamp` derlemelerinde bile derleme bilgilerini her zaman ikiliye damgalayın. **Bu ayardan kaçınılmalıdır.** Çünkü bu ayar, ikili dosya ve buna bağlı tüm aşağı akış işlemlerinde uzaktan önbelleğe almayı olumsuz etkileyebilir. * `stamp = 0`: Derleme bilgilerini her zaman sabit değerlerle değiştirin. Bu, iyi bir derleme sonucu önbelleğe alma sağlar. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretiyle kontrol edilir. Damgalı ikili dosyalar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansına zarar verebilir ve mümkünse kaçınılmalıdır.

py_library

Kural kaynağını görüntüleme
py_library(name, deps, srcs, data, aspect_hints, compatible_with, deprecation, distribs, exec_compatible_with, exec_group_compatible_with, exec_properties, features, imports, licenses, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyi_deps, pyi_srcs, restricted_to, srcs_version, tags, target_compatible_with, testonly, toolchains, visibility)
Güvenilebilecek bir Python kodu kitaplığı. Varsayılan çıkışlar: * Giriş Python kaynakları * Kaynaklardan önceden derlenmiş yapılar. NOT: Ön derleme, varsayılan çıkışlardan hangilerinin sonuçtaki runfile'lara dahil edileceğini etkiler. Daha fazla bilgi için önceden derlemeyle ilgili özelliklere ve işaretlere bakın. ::{versionchanged} 0.37.0 Kaynak dosyalar artık doğrudan runfiles'a eklenmiyor. :::

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiket listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. [`deps` özelliğiyle ilgili yorumları inceleyin](https://bazel.build/reference/be/common-definitions#typical-attributes). Bu özellik genellikle kurallarla tanımlanır. Bunlar genellikle `py_library` kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler, `data` özelliğinde yer alır.
srcs

Etiket listesi; varsayılan değer []'dir.

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, kontrol edilmiş tüm kodunuzu ve oluşturulmuş kaynak dosyaları içerebilir. `.py` dosyaları `srcs` içinde, kitaplık hedefleri ise `deps` içinde yer alır. Çalışma zamanında gerekebilecek diğer ikili dosyalar `data` içinde yer alır.
data

Etiket listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. [`data` özelliğiyle ilgili yorumları](https://bazel.build/reference/be/common-definitions#typical-attributes) inceleyin. Bu özellik genellikle kurallarla tanımlanır. "cc_embed_data" ve "go_embed_data" gibi "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
distribs

Dizelerin listesi; varsayılan değer []'dır.

imports

Dizelerin listesi; varsayılan değer []'dır.

PYTHONPATH'e eklenecek içe aktarma dizinlerinin listesi. "Değişken yap" yerine geçirme işlemine tabidir. Bu kural ve bu kurala bağlı olan tüm kurallar için bu içe aktarma dizinleri eklenecektir (Not: Bu kuralın bağlı olduğu kurallar değil). Her dizin, bu kurala bağlı olan `py_binary` kuralları tarafından `PYTHONPATH` değişkenine eklenir. Dizeler, depo-runfiles-root görecelidir. Mutlak yollara (yolu "/" ile başlayan) ve yürütme kökünün üzerindeki bir yolu referans veren yollara izin verilmez ve bu durum hataya neden olur.
precompile

Dize; varsayılan değer "inherit"

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Derleme sırasında Python kaynak dosyalarını derleyin. * `disabled`: Derleme sırasında Python kaynak dosyalarını derlemeyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işareti. * Hedef bazında ön derlemeyi dolaylı olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * [Önceden derleme](precompiling) ile ilgili kılavuzun dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olduğunun nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarları tarafından otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kayıtlı karmayla eşleşiyorsa pyc dosyasını kullanın. Bu özellik, değiştirebileceğiniz kodlarla çalışırken en kullanışlı olanıdır. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karmasını kaynak dosyayla karşılaştırmayın. Bu yöntem, kod değiştirilmeyecekse en kullanışlı yöntemdir. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki `compile()` işlevinin `optimize` argüman belgelerine bakın. NOT: `-1` değeri, "mevcut yorumlayıcı " anlamına gelir. Bu, kod gerçekten çalışırken kullanılan yorumlayıcı değil, _pyc'ler oluşturulurken derleme zamanında kullanılan_ yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"

Bir kaynak dosya derlendiğinde, kaynak dosyanın sonuçtaki çıktıda saklanıp saklanmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralır. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
pyi_deps

Etiket listesi; varsayılan değer []'dir.

Kitaplığın ihtiyaç duyduğu tür tanımlarını sağlayan bağımlılıklar. Bunlar, "typing.TYPE_CHECKING" ile korunan içe aktarmaları karşılayan bağımlılıklardır. Bunlar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
pyi_srcs

Etiket listesi; varsayılan değer []'dir.

Kitaplığın tür tanımı dosyaları. Bunlar genellikle `.pyi` dosyalarıdır ancak tür denetleyiciye özgü biçimler için diğer dosya türlerine de izin verilir. Bu dosyalar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
srcs_version

Dize; varsayılan değer ""

Kullanılmayan, işlevi olmayan bir yöntemdir.

py_test

Kural kaynağını görüntüleme
py_test(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, imports, interpreter_args, legacy_create_init, licenses, local, main, main_module, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, pyi_deps, pyi_srcs, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiket listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. [`deps` özelliğiyle ilgili yorumları inceleyin](https://bazel.build/reference/be/common-definitions#typical-attributes). Bu özellik genellikle kurallarla tanımlanır. Bunlar genellikle `py_library` kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler, `data` özelliğinde yer alır.
srcs

Etiket listesi; zorunlu

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, kontrol edilmiş tüm kodunuzu ve oluşturulmuş kaynak dosyaları içerebilir. `.py` dosyaları `srcs` içinde, kitaplık hedefleri ise `deps` içinde yer alır. Çalışma zamanında gerekebilecek diğer ikili dosyalar `data` içinde yer alır.
data

Etiket listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. [`data` özelliğiyle ilgili yorumları](https://bazel.build/reference/be/common-definitions#typical-attributes) inceleyin. Bu özellik genellikle kurallarla tanımlanır. "cc_embed_data" ve "go_embed_data" gibi "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
distribs

Dizelerin listesi; varsayılan değer []'dır.

imports

Dizelerin listesi; varsayılan değer []'dır.

PYTHONPATH'e eklenecek içe aktarma dizinlerinin listesi. "Değişken yap" yerine geçirme işlemine tabidir. Bu kural ve bu kurala bağlı olan tüm kurallar için bu içe aktarma dizinleri eklenecektir (Not: Bu kuralın bağlı olduğu kurallar değil). Her dizin, bu kurala bağlı olan `py_binary` kuralları tarafından `PYTHONPATH` değişkenine eklenir. Dizeler, depo-runfiles-root görecelidir. Mutlak yollara (yolu "/" ile başlayan) ve yürütme kökünün üzerindeki bir yolu referans veren yollara izin verilmez ve bu durum hataya neden olur.
interpreter_args

Dizelerin listesi; varsayılan değer []'dır.

Yalnızca yorumlayıcı için geçerli olan bağımsız değişkenler. Bir yorumlayıcının desteklediği args, yorumlayıcıya özgüdür. CPython için https://docs.python.org/3/using/cmdline.html adresini ziyaret edin. ::{note} Yalnızca {obj}`--bootstrap_impl=script` için desteklenir. Aksi takdirde yoksayılır. :: :::{seealso} {obj}`RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGS` ortam değişkeni ::: :::{versionadded} 1.3.0 :::
legacy_create_init

Tam sayı; varsayılan değer -1

Çalıştırma dosyaları ağacında boş "__init__.py" dosyalarının örtülü olarak oluşturulup oluşturulmayacağı. Bunlar, Python kaynak kodu veya paylaşılan kitaplıklar içeren her dizinde ve bu dizinlerin her üst dizininde (depo kök dizini hariç) oluşturulur. Varsayılan değer olan `-1` (otomatik), `--incompatible_default_to_explicit_init_py` kullanılmadığı sürece true (doğru) anlamına gelir. Yanlışsa kullanıcı, `__init__.py` dosyaları oluşturmaktan (muhtemelen boş) ve bunları gerektiği şekilde Python hedeflerinin `srcs` öğesine eklemekten sorumludur.
main

Etiket; varsayılan değer None'dir.

İsteğe bağlıdır. Uygulamanın ana giriş noktası olan kaynak dosyanın adıdır. Bu dosya, "srcs" içinde de listelenmelidir. Belirtilmezse bunun yerine `.py` eklenmiş `name` kullanılır. "name", "srcs" içindeki herhangi bir dosya adıyla eşleşmiyorsa "main" belirtilmelidir. Bu, {obj}`main_module` ile karşılıklı olarak hariç tutulur.
main_module

Dize; varsayılan değer ""

Ana program olarak yürütülecek modül adı. Ayarlanırsa `srcs` gerekli değildir ve modülün bir bağımlılık tarafından sağlandığı varsayılır. Modülleri ana program olarak çalıştırma hakkında daha fazla bilgi için https://docs.python.org/3/using/cmdline.html#cmdoption-m adresine bakın. Bu, {obj}`main` ile karşılıklı olarak hariç tutulur. :::{versionadded} 1.3.0 :::
precompile

Dize; varsayılan değer "inherit"

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Derleme sırasında Python kaynak dosyalarını derleyin. * `disabled`: Derleme sırasında Python kaynak dosyalarını derlemeyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işareti. * Hedef bazında ön derlemeyi dolaylı olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * [Önceden derleme](precompiling) ile ilgili kılavuzun dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olduğunun nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarları tarafından otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kayıtlı karmayla eşleşiyorsa pyc dosyasını kullanın. Bu özellik, değiştirebileceğiniz kodlarla çalışırken en kullanışlı olanıdır. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karmasını kaynak dosyayla karşılaştırmayın. Bu yöntem, kod değiştirilmeyecekse en kullanışlı yöntemdir. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki `compile()` işlevinin `optimize` argüman belgelerine bakın. NOT: `-1` değeri, "mevcut yorumlayıcı " anlamına gelir. Bu, kod gerçekten çalışırken kullanılan yorumlayıcı değil, _pyc'ler oluşturulurken derleme zamanında kullanılan_ yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"

Bir kaynak dosya derlendiğinde, kaynak dosyanın sonuçtaki çıktıda saklanıp saklanmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralır. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
pyc_collection

Dize; varsayılan değer "inherit"

Bağımlılıklardan gelen pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile`dan devralır. * `include_pyc`: Bağımlılıklardan dolaylı olarak oluşturulan pyc dosyalarını ekler. Örneğin, {attr}`precompile="inherit"` değerini belirten hedeflere ait pyc dosyaları. * `disabled`: Dolaylı olarak oluşturulan pyc dosyalarını eklemez. Hedef düzeyde ön derlemeyi etkinleştiren bağımlılıklardan pyc dosyaları gelebileceğini unutmayın.
pyi_deps

Etiket listesi; varsayılan değer []'dir.

Kitaplığın ihtiyaç duyduğu tür tanımlarını sağlayan bağımlılıklar. Bunlar, "typing.TYPE_CHECKING" ile korunan içe aktarmaları karşılayan bağımlılıklardır. Bunlar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
pyi_srcs

Etiket listesi; varsayılan değer []'dir.

Kitaplığın tür tanımı dosyaları. Bunlar genellikle `.pyi` dosyalarıdır ancak tür denetleyiciye özgü biçimler için diğer dosya türlerine de izin verilir. Bu dosyalar yalnızca derleme zamanı bağımlılıklarıdır ve çalıştırılabilir bir programın parçası olarak dahil edilmez (ancak paketleme kuralları bunları içerebilir). :::{versionadded} 1.1.0 :::
python_version

Dize; varsayılan değer ""

Bu hedefin kullanması gereken Python sürümü. Değer, "X.Y" veya "X.Y.Z" (ya da uyumlu) biçiminde olmalıdır. Boşsa veya belirtilmemişse gelen yapılandırmanın {obj}`--python_version` işareti devralınır. Geriye dönük uyumluluk için "PY2" ve "PY3" değerleri kabul edilir ancak boş/belirtilmemiş değer olarak değerlendirilir. ::{note} İstenen sürümün kullanılabilmesi için Python sürümüne uygun bir araç zinciri yapılandırılmış olmalıdır. Yoksa araç zinciri yapılandırmasına bağlı olarak sessizce yoksayılabilir veya hata oluşabilir. ::: :::{versionchanged} 1.1.0 Bu özellik, yalnızca "PY2" ve "PY3" değerlerini kabul ederken artık rastgele Python sürümlerini kabul edecek şekilde değiştirildi. :::
srcs_version

Dize; varsayılan değer ""

Kullanılmayan, işlevi olmayan bir yöntemdir.
stamp

Tam sayı; varsayılan değer 0

Derleme bilgilerinin ikili dosyaya kodlanıp kodlanmayacağı. Olası değerler: * `stamp = 1`: `--nostamp` derlemelerinde bile derleme bilgilerini her zaman ikiliye damgalayın. **Bu ayardan kaçınılmalıdır.** Çünkü bu ayar, ikili dosya ve buna bağlı tüm aşağı akış işlemlerinde uzaktan önbelleğe almayı olumsuz etkileyebilir. * `stamp = 0`: Derleme bilgilerini her zaman sabit değerlerle değiştirin. Bu, iyi bir derleme sonucu önbelleğe alma sağlar. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretiyle kontrol edilir. Damgalı ikili dosyalar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansına zarar verebilir ve mümkünse kaçınılmalıdır.

py_runtime

Kural kaynağını görüntüleme
py_runtime(name, abi_flags, aspect_hints, bootstrap_template, compatible_with, coverage_tool, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, files, implementation_name, interpreter, interpreter_path, interpreter_version_info, package_metadata, pyc_tag, python_version, restricted_to, site_init_template, stage2_bootstrap_template, stub_shebang, tags, target_compatible_with, testonly, toolchains, visibility, zip_main_template)
Python kodunu yürütmek için kullanılan bir Python çalışma zamanını temsil eder. Bir `py_runtime` hedefi, *platform çalışma zamanını* veya *derleme içi çalışma zamanını* temsil edebilir. Platform çalışma zamanı, bilinen bir yoldaki sisteme yüklenmiş yorumlayıcıya erişirken yerleşik çalışma zamanı, yorumlayıcı görevi gören yürütülebilir bir hedefi işaret eder. Her iki durumda da "yorumlayıcı", komut satırında iletilen bir Python komut dosyasını standart CPython yorumlayıcısıyla aynı kurallara uyarak çalıştırabilen herhangi bir yürütülebilir ikili veya sarmalayıcı komut dosyası anlamına gelir. Platform çalışma zamanı, doğası gereği hermetik değildir. Hedef platformun belirli bir yolda yorumlayıcı bulundurmasını zorunlu kılar. Yerleşik bir çalışma zamanı, sisteme erişen bir yorumlayıcıya veya sarmalayıcı komut dosyasına işaret edip etmediğine bağlı olarak hermetik olabilir veya olmayabilir. Örnek ``` load("@rules_python//python:py_runtime.bzl", "py_runtime") py_runtime( name = "python-2.7.12", files = glob(["python-2.7.12/**"]), interpreter = "python-2.7.12/bin/python", ) py_runtime( name = "python-3.6.0", interpreter_path = "/opt/pyenv/versions/3.6.0/bin/python", ) ```

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

abi_flags

Dize; varsayılan değer ""

Çalışma zamanının ABI işaretleri, yani "sys.abiflags". Ayarlanmamışsa işaretlere göre ayarlanır.
bootstrap_template

Etiket; varsayılan değer "@rules_python//python/private:bootstrap_template"'dir.

Kullanılacak bootstrap komut dosyası şablonu dosyası. %python_binary%, %workspace_name%, %main% ve %imports% değerlerini içermelidir. Bu şablon, genişletildikten sonra işlemi başlatmak için kullanılan yürütülebilir dosya haline gelir. Bu nedenle, Python yorumlayıcısını ve runfile'ları bulma, amaçlanan Python uygulamasını çalıştırmak için bir ortam oluşturma gibi ilk önyükleme işlemlerinden sorumludur. Bu özellik şu anda isteğe bağlı olsa da Python kuralları Bazel'den çıkarıldığında zorunlu hale gelecektir. Genişletilen tam değişken adları, kararsız bir API'dir ve değişikliğe tabidir. Python kuralları Bazel'in dışına taşındığında API daha kararlı hale gelecektir. Daha fazla değişken için @bazel_tools//tools/python:python_bootstrap_template.txt adresine bakın.
coverage_tool

Etiket; varsayılan değer None'dir.

Bu, {rule}`py_binary` ve {rule}`py_test` hedeflerinden kod kapsamı bilgilerini toplamak için kullanılacak bir hedeftir. Ayarlanmışsa hedef, tek bir dosya oluşturmalı veya yürütülebilir bir hedef olmalıdır. Tek dosyanın yolu veya hedef yürütülebilir ise yürütülebilir dosya, Python kapsam aracının giriş noktasını belirler. Kapsam etkinleştirildiğinde hedef ve hedefle ilişkili çalışma dosyaları, çalışma dosyalarına eklenir. Aracın giriş noktası, bir Python yorumlayıcısı tarafından yüklenebilir olmalıdır (ör. `.py` veya `.pyc` dosyası). [`coverage.py`](https://coverage.readthedocs.io) komut satırı bağımsız değişkenlerini kabul etmelidir. En azından `run` ve `lcov` alt komutları kabul edilmelidir.
files

Etiket listesi; varsayılan değer []'dir.

Yerleşik bir çalışma zamanı için bu, çalışma zamanını oluşturan dosya grubudur. Bu dosyalar, bu çalışma zamanını kullanan Python ikililerinin çalışma dosyalarına eklenir. Bu özellik, platform çalışma zamanı için ayarlanmamalıdır.
implementation_name

Dize; varsayılan değer "cpython"

Python uygulamasının adı (`sys.implementation.name`)
interpreter

Etiket; varsayılan değer None'dir.

Yerleşik bir çalışma zamanı için bu, yorumlayıcı olarak çağrılacak hedeftir. Aşağıdakilerden biri olabilir: * Yorumlayıcı ikilisi olacak tek bir dosya. Bu tür yorumlayıcıların bağımsız tek dosya yürütülebilir dosyaları olduğu veya destekleyici dosyaların "files" içinde belirtildiği varsayılır. * Yürütülebilir bir hedef. Hedefin yürütülebilir dosyası, yorumlayıcı ikili dosyası olacaktır. Diğer tüm varsayılan çıkışlar (`target.files`) ve düz dosya çalıştırılabilir dosyaları (`runfiles.files`), `files` özelliğinde belirtilmiş gibi otomatik olarak dahil edilir. NOT: Hedefin runfiles'ları henüz araç zinciri/yorumlayıcı tüketicilerine düzgün şekilde aktarılmamış olabilir.Bazel-contrib/rules_python/issues/1612 adresini inceleyin. Platform çalışma zamanı için (yani "interpreter_path" ayarlanmışsa) bu özellik ayarlanmamalıdır.
interpreter_path

Dize; varsayılan değer ""

Platform çalışma zamanı için bu, hedef platformdaki bir Python yorumlayıcısının mutlak yoludur. Yerleşik bir çalışma zamanı için bu özellik ayarlanmamalıdır.
interpreter_version_info

Sözlük: Dize -> Dize; varsayılan değer {}'dır.

Bu çalışma zamanının sağladığı yorumlayıcıyla ilgili sürüm bilgileri. Belirtilmemişse {obj}`--python_version` kullanılır. Desteklenen anahtarlar, `sys.version_info` adlarıyla eşleşir. Giriş değerleri dize olsa da çoğu tam sayıya dönüştürülür. Desteklenen anahtarlar şunlardır: * major: int, ana sürüm numarası * minor: int, alt sürüm numarası * micro: isteğe bağlı int, mikro sürüm numarası * releaselevel: isteğe bağlı str, yayın düzeyi * serial: isteğe bağlı int, yayının seri numarası :::{versionchanged} 0.36.0 {obj}`--python_version` varsayılan değeri belirler. :::
pyc_tag

Dize; varsayılan değer ""

İsteğe bağlı dize; bir pyc dosya adının etiket kısmı (ör. "foo.cpython-39.pyc" dosyasının "cpython-39" eki). PEP 3147'ye bakın. Belirtilmemişse `implementation_name` ve `interpreter_version_info` değerlerinden hesaplanır. pyc_tag yoksa yalnızca kaynak içermeyen pyc oluşturma işlemi doğru şekilde çalışır.
python_version

Dize; varsayılan değer "PY3"

Bu çalışma zamanının Python'ın 2. ana sürümü mü yoksa 3. ana sürümü için mi olduğu. Geçerli değerler "PY2" ve "PY3" değerleridir. Varsayılan değer, "--incompatible_py3_is_default" işaretiyle kontrol edilir. Ancak gelecekte bu özellik zorunlu olacak ve varsayılan değeri olmayacak.
site_init_template

Etiket; varsayılan değer "@rules_python//python/private:site_init_template"'dir.

Başlangıçta yorumlayıcı tarafından çalıştırılan, ikiliye özgü site başlatma kancası için kullanılacak şablon. :::{versionadded} 0.41.0 :::
stage2_bootstrap_template

Etiket; varsayılan değer "@rules_python//python/private:stage2_bootstrap_template"'dir.

İki aşamalı başlatma etkinleştirildiğinde kullanılacak şablon :::{seealso} {obj}`PyRuntimeInfo.stage2_bootstrap_template` ve {obj}`--bootstrap_impl` :::
stub_shebang

Dize; varsayılan değer "#!/usr/bin/env python3"

{rule}`py_binary` hedefleri yürütülürken kullanılan, önyükleme Python saplama komut dosyasına eklenen "Shebang" ifadesi. Gerekçe için https://github.com/bazelbuild/bazel/issues/8685 adresine bakın. Windows için geçerli değildir.
zip_main_template

Etiket; varsayılan değer "@rules_python//python/private:zip_main_template"'dir.

Bir zip dosyasının üst düzey `__main__.py` dosyası için kullanılacak şablon. Bu, `python foo.zip` çalıştırıldığında yürütülen giriş noktası olur. :::{seealso} {obj}`PyRuntimeInfo.zip_main_template` alanı. :::