Kurallar
py_binary
Kural kaynağını gösterpy_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, imports, legacy_create_init, licenses, main, output_licenses, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)
py_binary
, .py
kaynak dosyadan (muhtemelen diğer py_library
kurala ait olanlar) oluşan bir koleksiyon, çalıştırılma sırasında programın ihtiyaç duyduğu tüm kod ve verileri içeren bir *.runfiles
dizin ağacı ve programı doğru ilk ortam ve verilerle başlatan bir saplama komut dosyasından oluşan yürütülebilir bir Python programıdır.
Örnekler
py_binary( name = "foo", srcs = ["foo.py"], data = [":transform"], # a cc_binary which we invoke at run time deps = [ ":foolib", # a py_library ], )
Başka bir ikili program veya test içinden py_binary
çalıştırmak istiyorsanız (örneğin, java_test içinden bazı sahte kaynakları ayarlamak için python ikili programı çalıştırmak) doğru yaklaşım, diğer ikili programın veya testin veri bölümündeki py_binary
öğesine bağımlı olmasını sağlamaktır. Diğer ikili program daha sonra kaynak dizine göre py_binary
öğesini bulabilir.
py_binary( name = "test_main", srcs = ["test_main.py"], deps = [":testing"], ) java_library( name = "testing", srcs = glob(["*.java"]), data = [":test_main"] )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. main belirtilmemişse bu, uzantının ana giriş noktası olan uzantı dosyasının adıyla (uzantıdan hariç) aynı olmalıdır. Örneğin, giriş noktanız main.py olarak adlandırılırsa adınız main olmalıdır.
|
deps
|
deps ile ilgili genel yorumlara bakın.
Bunlar genellikle py_library kurallarıdır.
|
srcs
|
.py ) dosyalarının listesi.
Bu durum, tüm check-in kodunuzu ve oluşturulan kaynak dosyalarınızı içerir. Bunun yerine, kitaplık hedefleri deps öğesine, çalışma zamanında gereken diğer ikili dosyalar ise data öğesine aittir.
|
imports
|
PYTHONPATH listesine eklenecek içe aktarma dizinlerinin listesi.
"Değişken oluştur" değişikliğine tabidir. Bu içe aktarma dizinleri bu kurala ve ona bağlı tüm kurallara eklenir (Not: Bu kuralın bağlı olduğu kurallar değil. Her dizin, bu kurala bağlı olan
Mutlak yollara ( |
legacy_create_init
|
--incompatible_default_to_explicit_init_py kullanılmadığı sürece varsayılan, otomatik anlamına gelir. Yanlış değerine ayarlanırsa, __init__.py dosyalarını oluşturmak (muhtemelen boş) ve bunları gereken şekilde srcs Python hedeflerine eklemekten kullanıcı sorumludur.
|
main
|
srcs içinde de listelenmelidir. Belirtilmemesi durumunda name öğesi kullanılır (yukarıya bakın). name , srcs içindeki herhangi bir dosya adıyla eşleşmezse main belirtilmelidir.
|
python_version
|
deps ) oluşturup oluşturmayacağınız. Geçerli değerler "PY2" ve "PY3" değerleridir (varsayılan değer).
Python sürümü, komut satırında veya bu sürüme bağımlı diğer yüksek hedeflerde belirtilen sürümden bağımsız olarak her zaman bu özellik tarafından belirtilen sürüme sıfırlanır. Geçerli Python sürümünde Hata uyarısı: Bu özellik, Bazel'ın hedefinizi oluşturduğu sürümü belirler ancak #4815 nedeniyle, oluşturulan koçan komut dosyası, çalışma zamanında yanlış çevirmen sürümünü çağırabilir. Gerektiğinde Python sürümüne işaret eden bir |
srcs_version
|
srcs değerinin Python 2, Python 3 veya her ikisi ile uyumlu olduğunu bildirir. Python çalışma zamanı sürümünü gerçekten ayarlamak için, yürütülebilir bir Python kuralının (py_binary veya py_test ) python_version özelliğini kullanın.
İzin verilen değerler: Yalnızca yürütülebilir kuralların ( Hangi bağımlılıkların sürüm şartlarını karşıladığına ilişkin teşhis bilgilerini almak için hedefinizde bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoBu işlem, hedefinizin neden bir Python sürümünü veya başka bir sürümü gerektirdiği hakkında bilgi sağlayan -pyversioninfo.txt son ekine sahip bir dosya oluşturur. Belirtilen hedefin, sürüm çakışması nedeniyle oluşturulamadığı durumlarda bile çalıştığını unutmayın.
|
stamp
|
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz oluşturulmaz. |
py_kitaplığı
Kural kaynağını gösterpy_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, restricted_to, srcs_version, tags, target_compatible_with, testonly, visibility)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
deps ile ilgili genel yorumlara bakın.
Bunlar genellikle py_library kurallarıdır.
|
srcs
|
.py ) dosyalarının listesi.
Bu durum, tüm check-in kodunuzu ve oluşturulan kaynak dosyalarınızı içerir.
|
imports
|
PYTHONPATH listesine eklenecek içe aktarma dizinlerinin listesi.
"Değişken oluştur" değişikliğine tabidir. Bu içe aktarma dizinleri bu kurala ve ona bağlı tüm kurallara eklenir (Not: Bu kuralın bağlı olduğu kurallar değil. Her dizin, bu kurala bağlı olan
Mutlak yollara ( |
srcs_version
|
srcs değerinin Python 2, Python 3 veya her ikisi ile uyumlu olduğunu bildirir. Python çalışma zamanı sürümünü gerçekten ayarlamak için, yürütülebilir bir Python kuralının (py_binary veya py_test ) python_version özelliğini kullanın.
İzin verilen değerler: Yalnızca yürütülebilir kuralların ( Hangi bağımlılıkların sürüm şartlarını karşıladığına ilişkin teşhis bilgilerini almak için hedefinizde bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoBu işlem, hedefinizin neden bir Python sürümünü veya başka bir sürümü gerektirdiği hakkında bilgi sağlayan -pyversioninfo.txt son ekine sahip bir dosya oluşturur. Belirtilen hedefin, sürüm çakışması nedeniyle oluşturulamadığı durumlarda bile çalıştığını unutmayın.
|
py_test
Kural kaynağını gösterpy_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, imports, legacy_create_init, licenses, local, main, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
py_test()
kuralı bir test derler. Test, bazı test kodlarının etrafında ikili bir sarmalayıcıdır.
Örnekler
py_test( name = "runtest_test", srcs = ["runtest_test.py"], deps = [ "//path/to/a/py/library", ], )
Bir ana modül de belirtebilirsiniz:
py_test( name = "runtest_test", srcs = [ "runtest_main.py", "runtest_lib.py", ], main = "runtest_main.py", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
deps ile ilgili genel yorumlara bakın.
Bunlar genellikle py_library kurallarıdır.
|
srcs
|
.py ) dosyalarının listesi.
Bu durum, tüm check-in kodunuzu ve oluşturulan kaynak dosyalarınızı içerir. Bunun yerine, kitaplık hedefleri deps öğesine, çalışma zamanında gereken diğer ikili dosyalar ise data öğesine aittir.
|
imports
|
PYTHONPATH listesine eklenecek içe aktarma dizinlerinin listesi.
"Değişken oluştur" değişikliğine tabidir. Bu içe aktarma dizinleri bu kurala ve ona bağlı tüm kurallara eklenir (Not: Bu kuralın bağlı olduğu kurallar değil. Her dizin, bu kurala bağlı olan
Mutlak yollara ( |
legacy_create_init
|
--incompatible_default_to_explicit_init_py kullanılmadığı sürece varsayılan, otomatik anlamına gelir. Yanlış değerine ayarlanırsa, __init__.py dosyalarını oluşturmak (muhtemelen boş) ve bunları gereken şekilde srcs Python hedeflerine eklemekten kullanıcı sorumludur.
|
main
|
srcs içinde de listelenmelidir. Belirtilmemesi durumunda name öğesi kullanılır (yukarıya bakın). name , srcs içindeki herhangi bir dosya adıyla eşleşmezse main belirtilmelidir.
|
python_version
|
deps ) oluşturup oluşturmayacağınız. Geçerli değerler "PY2" ve "PY3" değerleridir (varsayılan değer).
Python sürümü, komut satırında veya bu sürüme bağımlı diğer yüksek hedeflerde belirtilen sürümden bağımsız olarak her zaman bu özellik tarafından belirtilen sürüme sıfırlanır. Geçerli Python sürümünde Hata uyarısı: Bu özellik, Bazel'ın hedefinizi oluşturduğu sürümü belirler ancak #4815 nedeniyle, oluşturulan koçan komut dosyası, çalışma zamanında yanlış çevirmen sürümünü çağırabilir. Gerektiğinde Python sürümüne işaret eden bir |
srcs_version
|
srcs değerinin Python 2, Python 3 veya her ikisi ile uyumlu olduğunu bildirir. Python çalışma zamanı sürümünü gerçekten ayarlamak için, yürütülebilir bir Python kuralının (py_binary veya py_test ) python_version özelliğini kullanın.
İzin verilen değerler: Yalnızca yürütülebilir kuralların ( Hangi bağımlılıkların sürüm şartlarını karşıladığına ilişkin teşhis bilgilerini almak için hedefinizde bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoBu işlem, hedefinizin neden bir Python sürümünü veya başka bir sürümü gerektirdiği hakkında bilgi sağlayan -pyversioninfo.txt son ekine sahip bir dosya oluşturur. Belirtilen hedefin, sürüm çakışması nedeniyle oluşturulamadığı durumlarda bile çalıştığını unutmayın.
|
stamp
|
|
py_çalışma zamanı
Kural kaynağını gösterpy_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, features, files, interpreter, interpreter_path, licenses, python_version, restricted_to, stub_shebang, tags, target_compatible_with, testonly, visibility)
Python kodunu çalıştırmak için kullanılan Python çalışma zamanını temsil eder.
py_runtime
hedefi, platform çalışma zamanını veya yerleşik çalışma zamanını temsil edebilir. Platformun çalışma zamanı, bilinen bir yolda sistem tarafından yüklenen yorumlayıcıya erişirken, dahili çalışma zamanı çevirmen olarak çalışan yürütülebilir bir hedefe işaret eder. Her iki durumda da "yorumcu", standart SQLython yorumcusuyla aynı kurallara göre komut satırında aktarılan bir Python komut dosyasını çalıştırabilen, yürütülebilir ikili dosyalar veya sarmalayıcı komut dosyaları anlamına gelir.
Platformun çalışma zamanı doğası gereği melodik değildir. Hedef platformda, bir çevirmenin belirli bir yolda bulunmasını zorunlu kılar. Dahili bir çalışma zamanı, check-in yapan bir çevirmene veya sistem çevirmene erişen bir sarmalayıcı komut dosyasına işaret edip etmediğine bağlı olarak hermetik olabilir veya olmayabilir.
Örnek:
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 |
Bu hedef için benzersiz bir ad. |
bootstrap_template
|
|
coverage_tool
|
py_binary ve py_test hedeflerinden kod kapsamı hakkında bilgi toplamak için kullanılır.
Ayarlanırsa 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ülebiliyorsa yürütülebilir dosya, python kapsam aracının giriş noktasını belirler. Kapsam etkinleştirildiğinde hedef ve bu dosyanın çalıştırma dosyaları Runfile'a eklenir. Aracın giriş noktası, bir python çevirmeni tarafından (ör. |
files
|
|
interpreter
|
|
interpreter_path
|
|
python_version
|
"PY2" ve "PY3" değerleridir.
Varsayılan değer, |
stub_shebang
|
py_binary hedefleri çalıştırılırken kullanılan önyükleme Python komut dosyasının başındaki "Shebang" ifadesi.
Motivasyon için 8685 sayısına bakın. Windows için geçerli değildir. |