Laporkan masalahopen_in_new
Lihat sumberopen_in_new
Nightly
·
7.4
.
7.3
·
7.2
·
7.1
·
7.0
·
6.5
Aturan
py_binary
Melihat sumber aturanopen_in_new
py_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, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)
Argumen
Atribut |
name |
Nama; wajib
Nama unik untuk target ini.
|
deps
|
Daftar label; default-nya adalah []
Daftar library tambahan yang akan ditautkan ke target.
Lihat komentar tentang
atribut [`deps` yang biasanya ditentukan oleh
aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Ini biasanya adalah aturan `py_library`.
Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
|
srcs
|
Daftar label; wajib diisi
Daftar file sumber Python yang diproses untuk membuat target. Ini
menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File
`.py` berada di `srcs` dan target library berada di `deps`. File biner
lain yang mungkin diperlukan saat runtime berada di `data`.
|
data
|
Daftar label; default-nya adalah []
Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang
atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`.
Hal ini karena Python memiliki konsep resource runtime.
|
imports
|
Daftar string; default-nya adalah []
Daftar direktori impor yang akan ditambahkan ke PYTHONPATH.
Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan
untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi
aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root,
Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur
di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
|
legacy_create_init
|
Bilangan bulat; default-nya adalah -1
Apakah akan membuat file `__init__.py` kosong secara implisit di hierarki runfile.
File ini dibuat di setiap direktori yang berisi kode sumber Python atau library
bersama, dan setiap direktori induk dari direktori tersebut, tidak termasuk direktori
root repo. Default, `-1` (otomatis), berarti benar kecuali jika
`--incompatible_default_to_explicit_init_py` digunakan. Jika salah, pengguna
bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
|
main
|
Label; default-nya adalah None
Opsional; nama file sumber yang merupakan titik entri utama
aplikasi. File ini juga harus dicantumkan dalam `srcs`. Jika tidak ditentukan,
`name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan
nama file apa pun di `srcs`, `main` harus ditentukan.
|
precompile
|
String; default-nya adalah "inherit"
Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya.
Nilai:
* `inherit`: Menentukan nilai dari flag {flag}`--precompile`.
* `enabled`: Mengompilasi file sumber Python pada waktu build. Perhatikan bahwa
--precompile_add_to_runfiles memengaruhi cara file yang dikompilasi disertakan ke dalam
biner downstream.
* `disabled`: Jangan kompilasi file sumber Python pada waktu build.
* `if_generated_source`: Mengompilasi file sumber Python, tetapi hanya jika file tersebut
adalah file yang dihasilkan.
:::{seealso}
* Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus
dan akan memengaruhi semua target saat mem-build.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber
terkait. Nilai yang memungkinkan adalah:
* `auto`: Nilai efektif akan otomatis ditentukan oleh setelan
build lainnya.
* `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash
yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang
dapat Anda ubah.
* `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap
file sumber. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Bilangan bulat; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi
`compile()` di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter
yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada
runtime saat kode benar-benar berjalan.
|
precompile_source_retention
|
String; default-nya adalah "inherit"
Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan
dalam output yang dihasilkan atau tidak. Nilai yang valid adalah:
* `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`.
* `keep_source`: Menyertakan sumber Python asli.
* `omit_source`: Jangan sertakan sumber py asli.
* `omit_if_generated_source`: Mempertahankan sumber asli jika file sumber biasa, tetapi menghapusnya jika file yang dihasilkan.
|
pyc_collection
|
String; default-nya adalah "inherit"
Menentukan apakah file pyc dari dependensi harus disertakan secara manual.
CATATAN: Setelan ini hanya berguna dengan {flag}`--precompile_add_to_runfiles=decided_elsewhere`.
Nilai yang valid adalah:
* `inherit`: Mewarisi nilai dari {flag}`--pyc_collection`.
* `include_pyc`: Menambahkan file pyc dari dependensi dalam biner (dari
{obj}`PyInfo.transitive_pyc_files`.
* `disabled`: Tidak menambahkan file pyc secara eksplisit dari dependensi. Perhatikan bahwa
file pyc mungkin masih berasal dari dependensi jika target menyertakannya sebagai
bagian dari runfile-nya (seperti saat {obj}`--precompile_add_to_runfiles=always`
digunakan).
|
python_version
|
String; default-nya adalah "PY3"
Tidak digunakan lagi, tidak berfungsi.
|
srcs_version
|
String; default-nya adalah "PY2AND3"
Tidak digunakan lagi, tidak berfungsi.
|
stamp
|
Bilangan bulat; default-nya adalah -1
Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin:
* `stamp = 1`: Selalu stempel informasi build ke dalam biner, bahkan dalam
build `--nostamp`. **Setelan ini harus dihindari**, karena berpotensi menghentikan
penyimpanan dalam cache jarak jauh untuk biner dan tindakan downstream apa pun yang bergantung padanya.
* `stamp = 0`: Selalu ganti informasi build dengan nilai konstan. Hal ini memberikan
cache hasil build yang baik.
* `stamp = -1`: Penyematan informasi build dikontrol oleh
flag `--[no]stamp`.
Biner yang dicap tidak akan di-build ulang kecuali jika dependensinya berubah.
PERINGATAN: Stempel dapat membahayakan performa build dengan mengurangi hit cache dan harus
dihindari jika memungkinkan.
|
py_library
Melihat sumber aturanopen_in_new
py_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, restricted_to, srcs_version, tags, target_compatible_with, testonly, toolchains, visibility)
Library kode Python yang dapat diandalkan.
Output default:
* Sumber Python input
* Artefak yang dikompilasi sebelumnya dari sumber.
CATATAN: Prakompilasi memengaruhi output default mana yang disertakan dalam
runfile yang dihasilkan. Lihat atribut dan flag terkait prakompilasi untuk
mengetahui informasi selengkapnya.
Argumen
Atribut |
name |
Nama; wajib
Nama unik untuk target ini.
|
deps
|
Daftar label; default-nya adalah []
Daftar library tambahan yang akan ditautkan ke target.
Lihat komentar tentang
atribut [`deps` yang biasanya ditentukan oleh
aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Ini biasanya adalah aturan `py_library`.
Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
|
srcs
|
Daftar label; default-nya adalah []
Daftar file sumber Python yang diproses untuk membuat target. Ini
menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File
`.py` berada di `srcs` dan target library berada di `deps`. File biner
lain yang mungkin diperlukan saat runtime berada di `data`.
|
data
|
Daftar label; default-nya adalah []
Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang
atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`.
Hal ini karena Python memiliki konsep resource runtime.
|
imports
|
Daftar string; default-nya adalah []
Daftar direktori impor yang akan ditambahkan ke PYTHONPATH.
Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan
untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi
aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root,
Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur
di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
|
precompile
|
String; default-nya adalah "inherit"
Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya.
Nilai:
* `inherit`: Menentukan nilai dari flag {flag}`--precompile`.
* `enabled`: Mengompilasi file sumber Python pada waktu build. Perhatikan bahwa
--precompile_add_to_runfiles memengaruhi cara file yang dikompilasi disertakan ke dalam
biner downstream.
* `disabled`: Jangan kompilasi file sumber Python pada waktu build.
* `if_generated_source`: Mengompilasi file sumber Python, tetapi hanya jika file tersebut
adalah file yang dihasilkan.
:::{seealso}
* Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus
dan akan memengaruhi semua target saat mem-build.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber
terkait. Nilai yang memungkinkan adalah:
* `auto`: Nilai efektif akan otomatis ditentukan oleh setelan
build lainnya.
* `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash
yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang
dapat Anda ubah.
* `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap
file sumber. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Bilangan bulat; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi
`compile()` di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter
yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada
runtime saat kode benar-benar berjalan.
|
precompile_source_retention
|
String; default-nya adalah "inherit"
Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan
dalam output yang dihasilkan atau tidak. Nilai yang valid adalah:
* `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`.
* `keep_source`: Menyertakan sumber Python asli.
* `omit_source`: Jangan sertakan sumber py asli.
* `omit_if_generated_source`: Mempertahankan sumber asli jika file sumber biasa, tetapi menghapusnya jika file yang dihasilkan.
|
srcs_version
|
String; default-nya adalah "PY2AND3"
Tidak digunakan lagi, tidak berfungsi.
|
py_test
Melihat sumber aturanopen_in_new
py_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, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
Argumen
Atribut |
name |
Nama; wajib
Nama unik untuk target ini.
|
deps
|
Daftar label; default-nya adalah []
Daftar library tambahan yang akan ditautkan ke target.
Lihat komentar tentang
atribut [`deps` yang biasanya ditentukan oleh
aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Ini biasanya adalah aturan `py_library`.
Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
|
srcs
|
Daftar label; wajib diisi
Daftar file sumber Python yang diproses untuk membuat target. Ini
menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File
`.py` berada di `srcs` dan target library berada di `deps`. File biner
lain yang mungkin diperlukan saat runtime berada di `data`.
|
data
|
Daftar label; default-nya adalah []
Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang
atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes).
Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`.
Hal ini karena Python memiliki konsep resource runtime.
|
imports
|
Daftar string; default-nya adalah []
Daftar direktori impor yang akan ditambahkan ke PYTHONPATH.
Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan
untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi
aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root,
Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur
di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
|
legacy_create_init
|
Bilangan bulat; default-nya adalah -1
Apakah akan membuat file `__init__.py` kosong secara implisit di hierarki runfile.
File ini dibuat di setiap direktori yang berisi kode sumber Python atau library
bersama, dan setiap direktori induk dari direktori tersebut, tidak termasuk direktori
root repo. Default, `-1` (otomatis), berarti benar kecuali jika
`--incompatible_default_to_explicit_init_py` digunakan. Jika salah, pengguna
bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
|
main
|
Label; default-nya adalah None
Opsional; nama file sumber yang merupakan titik entri utama
aplikasi. File ini juga harus dicantumkan dalam `srcs`. Jika tidak ditentukan,
`name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan
nama file apa pun di `srcs`, `main` harus ditentukan.
|
precompile
|
String; default-nya adalah "inherit"
Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya.
Nilai:
* `inherit`: Menentukan nilai dari flag {flag}`--precompile`.
* `enabled`: Mengompilasi file sumber Python pada waktu build. Perhatikan bahwa
--precompile_add_to_runfiles memengaruhi cara file yang dikompilasi disertakan ke dalam
biner downstream.
* `disabled`: Jangan kompilasi file sumber Python pada waktu build.
* `if_generated_source`: Mengompilasi file sumber Python, tetapi hanya jika file tersebut
adalah file yang dihasilkan.
:::{seealso}
* Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus
dan akan memengaruhi semua target saat mem-build.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber
terkait. Nilai yang memungkinkan adalah:
* `auto`: Nilai efektif akan otomatis ditentukan oleh setelan
build lainnya.
* `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash
yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang
dapat Anda ubah.
* `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap
file sumber. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Bilangan bulat; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi
`compile()` di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter
yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada
runtime saat kode benar-benar berjalan.
|
precompile_source_retention
|
String; default-nya adalah "inherit"
Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan
dalam output yang dihasilkan atau tidak. Nilai yang valid adalah:
* `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`.
* `keep_source`: Menyertakan sumber Python asli.
* `omit_source`: Jangan sertakan sumber py asli.
* `omit_if_generated_source`: Mempertahankan sumber asli jika file sumber biasa, tetapi menghapusnya jika file yang dihasilkan.
|
pyc_collection
|
String; default-nya adalah "inherit"
Menentukan apakah file pyc dari dependensi harus disertakan secara manual.
CATATAN: Setelan ini hanya berguna dengan {flag}`--precompile_add_to_runfiles=decided_elsewhere`.
Nilai yang valid adalah:
* `inherit`: Mewarisi nilai dari {flag}`--pyc_collection`.
* `include_pyc`: Menambahkan file pyc dari dependensi dalam biner (dari
{obj}`PyInfo.transitive_pyc_files`.
* `disabled`: Tidak menambahkan file pyc secara eksplisit dari dependensi. Perhatikan bahwa
file pyc mungkin masih berasal dari dependensi jika target menyertakannya sebagai
bagian dari runfile-nya (seperti saat {obj}`--precompile_add_to_runfiles=always`
digunakan).
|
python_version
|
String; default-nya adalah "PY3"
Tidak digunakan lagi, tidak berfungsi.
|
srcs_version
|
String; default-nya adalah "PY2AND3"
Tidak digunakan lagi, tidak berfungsi.
|
stamp
|
Bilangan bulat; default-nya adalah 0
Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin:
* `stamp = 1`: Selalu stempel informasi build ke dalam biner, bahkan dalam
build `--nostamp`. **Setelan ini harus dihindari**, karena berpotensi menghentikan
penyimpanan dalam cache jarak jauh untuk biner dan tindakan downstream apa pun yang bergantung padanya.
* `stamp = 0`: Selalu ganti informasi build dengan nilai konstan. Hal ini memberikan
cache hasil build yang baik.
* `stamp = -1`: Penyematan informasi build dikontrol oleh
flag `--[no]stamp`.
Biner yang dicap tidak akan di-build ulang kecuali jika dependensinya berubah.
PERINGATAN: Stempel dapat membahayakan performa build dengan mengurangi hit cache dan harus
dihindari jika memungkinkan.
|
py_runtime
Melihat sumber aturanopen_in_new
py_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, exec_compatible_with, exec_properties, features, files, implementation_name, interpreter, interpreter_path, interpreter_version_info, pyc_tag, python_version, restricted_to, stage2_bootstrap_template, stub_shebang, tags, target_compatible_with, testonly, toolchains, visibility, zip_main_template)
Merepresentasikan runtime Python yang digunakan untuk menjalankan kode Python.
Target `py_runtime` dapat mewakili *runtime platform* atau *runtime
in-build*. Runtime platform mengakses penafsir yang diinstal sistem di jalur
yang diketahui, sedangkan runtime bawaan mengarah ke target yang dapat dieksekusi yang bertindak sebagai
penafsir. Dalam kedua kasus tersebut, "penafsir" berarti skrip biner atau wrapper yang dapat dieksekusi dan mampu menjalankan skrip Python yang diteruskan di command line, dengan mengikuti konvensi yang sama seperti penafsir CPython standar.
Runtime platform pada dasarnya bersifat non-hermetis. Hal ini memberlakukan persyaratan pada
platform target untuk memiliki penafsir yang terletak di jalur tertentu. Runtime
bawaan mungkin bersifat hermetis atau tidak, bergantung pada apakah runtime tersebut mengarah ke
interpreter yang diperiksa atau skrip wrapper yang mengakses interpretor
sistem.
Contoh
```
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",
)
```
Argumen
Atribut |
name |
Nama; wajib
Nama unik untuk target ini.
|
bootstrap_template
|
Label; default-nya adalah "@rules_python//python/private:bootstrap_template"
File template skrip bootstrap yang akan digunakan. Harus memiliki %python_binary%,
%workspace_name%, %main%, dan %imports%.
Template ini, setelah diperluas, menjadi file yang dapat dieksekusi yang digunakan untuk memulai
proses, sehingga bertanggung jawab atas tindakan bootstrap awal seperti menemukan interpretor
Python, runfile, dan membuat lingkungan untuk menjalankan
aplikasi Python yang diinginkan.
Meskipun saat ini bersifat opsional, atribut ini akan menjadi wajib saat
aturan Python dipindahkan dari Bazel itu sendiri.
Nama variabel yang diperluas adalah API yang tidak stabil dan dapat berubah sewaktu-waktu.
API akan menjadi lebih stabil saat aturan Python dipindahkan dari Bazel
itu sendiri.
Lihat @bazel_tools//tools/python:python_bootstrap_template.txt untuk variabel lainnya.
|
coverage_tool
|
Label; default-nya adalah None
Ini adalah target yang akan digunakan untuk mengumpulkan informasi cakupan kode dari
target {rule}`py_binary` dan {rule}`py_test`.
Jika ditetapkan, target harus menghasilkan satu file atau berupa target yang dapat dieksekusi.
Jalur ke satu file, atau file yang dapat dieksekusi jika target dapat dieksekusi,
menentukan titik entri untuk alat cakupan python. Target dan
runfile-nya akan ditambahkan ke runfile saat cakupan diaktifkan.
Titik entri untuk alat ini harus dapat dimuat oleh penafsir Python (misalnya,
file `.py` atau `.pyc`). Perintah ini harus menerima argumen command line
dari [`coverage.py`](https://coverage.readthedocs.io), setidaknya menyertakan
subperintah `run` dan `lcov`.
|
files
|
Daftar label; default-nya adalah []
Untuk runtime bawaan, ini adalah kumpulan file yang membentuk runtime ini.
File ini akan ditambahkan ke runfile biner Python yang menggunakan runtime ini. Untuk runtime platform, atribut ini tidak boleh ditetapkan.
|
implementation_name
|
String; default-nya adalah ""
Nama implementasi Python (`sys.implementation.name`)
|
interpreter
|
Label; default-nya adalah None
Untuk runtime bawaan, ini adalah target yang akan dipanggil sebagai penafsir. File ini
dapat berupa:
* Satu file, yang akan menjadi biner penafsir. Penafsir tersebut dianggap sebagai file tunggal yang dapat dieksekusi mandiri atau file pendukung apa pun yang ditentukan dalam `file`.
* Target yang dapat dieksekusi. File yang dapat dieksekusi target akan berupa biner penafsir.
Output default lainnya (`target.files`) dan runfile file biasa
(`runfiles.files`) akan otomatis disertakan seolah-olah ditentukan dalam
atribut `files`.
CATATAN: runfile target mungkin belum dihormati/disebarkan dengan benar
kepada konsumen toolchain/interpreter, lihat
bazelbuild/rules_python/issues/1612
Untuk runtime platform (yaitu `interpreter_path` yang ditetapkan), atribut ini tidak boleh
ditetapkan.
|
interpreter_path
|
String; default-nya adalah ""
Untuk runtime platform, ini adalah jalur absolut dari penafsir Python di
platform target. Untuk runtime bawaan, atribut ini tidak boleh ditetapkan.
|
interpreter_version_info
|
Kamus: String -> String; default-nya adalah {}
Informasi versi tentang penafsir yang disediakan runtime ini.
Jika tidak ditentukan, gunakan {obj}`--python_version`
Kunci yang didukung cocok dengan nama untuk `sys.version_info`. Meskipun nilai input
adalah string, sebagian besar dikonversi menjadi int. Kunci yang didukung adalah:
* major: int, nomor versi utama
* minor: int, nomor versi minor
* micro: int opsional, nomor versi mikro
* releaselevel: str opsional, level rilis
* serial: int opsional, nomor seri rilis
:::{versionchanged} 0.36.0
{obj}`--python_version` menentukan nilai default.
:::
|
pyc_tag
|
String; default-nya adalah ""
String opsional; bagian tag dari nama file pyc, misalnya infiks `cpython-39` dari `foo.cpython-39.pyc`. Lihat PEP 3147. Jika tidak ditentukan, nilai ini akan dihitung
dari `implementation_name` dan `interpreter_version_info`. Jika tidak ada pyc_tag
yang tersedia, hanya pembuatan pyc tanpa sumber yang akan berfungsi dengan benar.
|
python_version
|
String; default-nya adalah "PY3"
Apakah runtime ini untuk versi utama Python 2 atau 3. Nilai yang valid adalah `"PY2"`
dan `"PY3"`.
Nilai default dikontrol oleh tanda `--incompatible_py3_is_default`.
Namun, pada masa mendatang, atribut ini akan bersifat wajib dan tidak memiliki nilai
default.
|
stage2_bootstrap_template
|
Label; default-nya adalah "@rules_python//python/private:stage2_bootstrap_template"
Template yang akan digunakan saat bootstrap dua tahap diaktifkan
:::{seealso}
{obj}`PyRuntimeInfo.stage2_bootstrap_template` dan {obj}`--bootstrap_impl`
:::
|
stub_shebang
|
String; default-nya adalah "#!/usr/bin/env python3"
Ekspresi "Shebang" ditambahkan ke skrip stub Python bootstrap
yang digunakan saat menjalankan target {rule}`py_binary`.
Lihat https://github.com/bazelbuild/bazel/issues/8685 untuk mengetahui motivasinya.
Tidak berlaku untuk Windows.
|
zip_main_template
|
Label; default-nya adalah "@rules_python//python/private:zip_main_template"
Template yang akan digunakan untuk file `__main__.py` level teratas zip.
Ini menjadi titik entri yang dijalankan saat `python foo.zip` dijalankan.
:::{seealso}
Bidang {obj}`PyRuntimeInfo.zip_main_template`.
:::
|