Laporkan masalahopen_in_new
Lihat sumberopen_in_new
Nightly
·
7.3
·
7.2
·
7.1
·
7.0
·
6.5
Aturan
py_binary
Lihat 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 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).
Hal tersebut biasanya merupakan aturan `py_library`.
Target yang hanya menyediakan file data yang digunakan saat runtime termasuk dalam `data`
.
|
srcs
|
Daftar label; wajib diisi
Daftar file sumber Python yang diproses untuk membuat target. Ini
menyertakan semua kode yang dilaporkan masuk dan dapat menyertakan file sumber yang dihasilkan. Tujuan
File `.py` berada dalam `srcs` dan target library termasuk dalam `deps`. Biner lainnya
file yang mungkin diperlukan pada saat
waktu proses termasuk dalam `data`.
|
data
|
Daftar label; default-nya adalah []
Daftar file yang dibutuhkan 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 {i>string<i}; default-nya adalah []
Daftar direktori impor yang akan ditambahkan ke PYTHONPATH.
Tunduk pada "Buat variabel" substitusi. Direktori impor ini akan ditambahkan
untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan pada aturan ini
bergantung padanya. 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 runfiles.
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 adalah None
Opsional; nama file sumber yang merupakan titik masuk utama ID
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 tanda {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.
* `dinonaktifkan`: Jangan mengompilasi 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 dalam beberapa kasus dapat mengganti atribut ini
dan akan memengaruhi semua target saat membangun.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang cara menggunakan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Bagaimana file yang telah dikompilasi sebelumnya harus diverifikasi agar memiliki informasi terkait
file sumber. 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 {i>hash <i}pyc terhadap
file sumbernya. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Integer; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat
Dokumen `optimize` arg di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "penafsir saat ini", yang akan menjadi penafsir
menggunakan _pada waktu build saat pycs dihasilkan_, bukan penafsir yang digunakan di
runtime ketika kode benar-benar dijalankan.
|
precompile_source_retention
|
String; default-nya adalah "inherit"
Menentukan kapan {i>file<i} sumber dikompilasi, apakah {i>file<i} sumber tersebut disimpan
dalam output yang dihasilkan. 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`: Menyimpan sumber asli jika merupakan sumber reguler
tetapi hilangkan file tersebut jika merupakan 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. Perlu diketahui bahwa
{i>file<i} pyc mungkin masih berasal dari dependensi
jika target menyertakannya sebagai
bagian dari runfile mereka (seperti ketika {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 berfungsi, tidak digunakan, tidak melakukan apa pun.
|
stamp
|
Bilangan bulat; default-nya adalah -1
Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin:
* `stamp = 1`: Selalu tambahkan informasi build ke dalam biner, bahkan
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 konstanta. Hal ini memberikan
cache hasil build yang baik.
* `stamp = -1`: Penyematan informasi build dikontrol oleh
flag `--[no]stamp`.
Biner yang distempel tidak dibangun ulang kecuali jika dependensinya berubah.
PERINGATAN: Stempel dapat mengganggu performa build dengan mengurangi cache ditemukan, dan seharusnya
sebaiknya dihindari jika memungkinkan.
|
py_library
Lihat 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:
* Input Python sumber
* Artefak yang telah 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).
Hal tersebut biasanya merupakan 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 pada waktu proses berada di `data`.
|
data
|
Daftar label; default-nya adalah []
Daftar file yang dibutuhkan 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 {i>string<i}; 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. {i>String<i} tersebut relatif terhadap {i>repo-runfiles-root<i},
Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang merujuk ke jalur
di atas root eksekusi tidak diizinkan dan akan mengakibatkan error.
|
precompile
|
String; default-nya adalah "inherit"
Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya.
Nilai:
* `Inherit`: Menentukan nilai dari tanda {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.
* `dinonaktifkan`: Jangan mengompilasi 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 dalam beberapa kasus dapat mengganti atribut ini
dan akan memengaruhi semua target saat membangun.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang cara menggunakan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Bagaimana file yang telah dikompilasi sebelumnya harus diverifikasi agar memiliki informasi terkait
file sumber. 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 {i>hash <i}pyc terhadap
file sumbernya. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Integer; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat
Dokumen `optimize` arg di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "penafsir saat ini", yang akan menjadi penafsir
menggunakan _pada waktu build saat pycs dihasilkan_, bukan penafsir yang digunakan di
runtime ketika kode benar-benar dijalankan.
|
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`: Wariskan nilai dari tanda {flag}`--precompile_source_retention`.
* `keep_source`: Menyertakan sumber Python asli.
* `omit_source`: Tidak menyertakan sumber py asli.
* `omit_if_generated_source`: Menyimpan sumber asli jika merupakan sumber reguler
tetapi hilangkan file tersebut jika merupakan file yang dihasilkan.
|
srcs_version
|
String; default-nya adalah "PY2AND3"
Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.
|
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 diisi
Nama unik untuk target ini.
|
deps
|
Daftar label; default adalah []
Daftar library tambahan yang akan ditautkan ke target.
Lihat komentar tentang
atribut [`deps`] biasanya ditentukan oleh
rules](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 termasuk dalam `data`
.
|
srcs
|
Daftar label; wajib diisi
Daftar file sumber Python yang diproses untuk membuat target. Ini
menyertakan semua kode yang dilaporkan masuk dan dapat menyertakan file sumber yang dihasilkan. File
`.py` berada di `srcs` dan target library berada di `deps`. File biner
lain yang mungkin diperlukan pada waktu proses berada di `data`.
|
data
|
Daftar label; default 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 {i>string<i}; default-nya adalah []
Daftar direktori impor yang akan ditambahkan ke PYTHONPATH.
Tunduk pada "Buat variabel" substitusi. Direktori impor ini akan ditambahkan
untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan pada aturan ini
bergantung padanya. 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 runfiles.
Ini dibuat di setiap direktori yang berisi kode sumber Python atau dibagikan
library, dan setiap direktori induk dari direktori tersebut, kecuali repositori
direktori {i>root<i}. Default, `-1` (otomatis), berarti benar kecuali jika
`--incompatible_default_to_explicit_init_py` digunakan. Jika salah, pengguna
bertanggung jawab untuk membuat (mungkin kosong) file `__init__.py` 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 tercantum dalam `srcs`. Jika tidak ditentukan,
Sebagai gantinya, gunakan `name`, dengan `.py` yang ditambahkan. Jika `name` tidak cocok dengan
nama file dalam `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 tanda {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.
* `dinonaktifkan`: Jangan mengompilasi 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 dalam beberapa kasus dapat mengganti atribut ini
dan akan memengaruhi semua target saat membangun.
* Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif
per target.
* Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang cara menggunakan prakompilasi.
:::
|
precompile_invalidation_mode
|
String; default-nya adalah "auto"
Bagaimana file yang telah dikompilasi sebelumnya harus diverifikasi agar memiliki informasi terkait
file sumber. 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 {i>hash <i}pyc terhadap
file sumbernya. Hal ini paling berguna jika kode tidak akan diubah.
Untuk informasi selengkapnya tentang mode pembatalan pyc, lihat
https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
|
precompile_optimize_level
|
Integer; default-nya adalah 0
Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya.
Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat
Dokumen `optimize` arg di https://docs.python.org/3/library/functions.html#compile
CATATAN: Nilai `-1` berarti "penafsir saat ini", yang akan menjadi penafsir
menggunakan _pada waktu build saat pycs dihasilkan_, bukan penafsir yang digunakan di
runtime ketika kode benar-benar dijalankan.
|
precompile_source_retention
|
String; default-nya adalah "inherit"
Menentukan kapan {i>file<i} sumber dikompilasi, apakah {i>file<i} sumber tersebut disimpan
dalam output yang dihasilkan. 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`: Menyimpan sumber asli jika merupakan sumber reguler
tetapi hilangkan file tersebut jika merupakan 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. Perlu diketahui bahwa
{i>file<i} pyc mungkin masih berasal dari dependensi
jika target menyertakannya sebagai
bagian dari runfile mereka (seperti ketika {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 berfungsi, tidak digunakan, tidak melakukan apa pun.
|
stamp
|
Integer; 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 konstanta. 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
Lihat 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, "penerjemah" berarti semua biner
yang dapat dieksekusi atau
yang mampu menjalankan skrip Python
yang diteruskan pada perintah
standar, dengan mengikuti konvensi yang sama dengan penafsir CPython standar.
Runtime platform pada dasarnya bersifat non-hermetis. Persyaratan ini memberlakukan persyaratan
platform target memiliki penerjemah
yang terletak di jalur tertentu. Channel
runtime in-build mungkin bersifat hermetik atau tidak, tergantung pada apakah itu mengarah ke
penerjemah yang {i>check-in<i} atau skrip wrapper yang mengakses sistem
penerjemahan mesin.
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 diisi
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 diperlukan saat
Aturan Python dipindahkan dari Bazel itu sendiri.
Nama variabel persis yang diperluas merupakan 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 mengetahui variabel lainnya.
|
coverage_tool
|
Label; default 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 file tunggal atau menjadi 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 harus dapat dimuat oleh penafsir Python (mis.
file `.py` atau `.pyc`). Aplikasi harus menerima argumen command line
dari [`coverage.py berhubungan https://coverage.readthedocs.io), setidaknya menyertakan
subperintah `run` dan `lcov`.
|
files
|
Daftar label; default adalah []
Untuk runtime dalam build, ini adalah kumpulan file yang terdiri dari 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 dalam build, ini adalah target yang akan dipanggil sebagai penafsir. Ini
dapat berupa salah satu dari:
* Satu file, yang akan menjadi biner penerjemah. Diasumsikan seperti
penerjemah berupa file tunggal
yang dapat dieksekusi atau {i>executable<i}
file pendukung 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 diterapkan/disebarkan dengan benar
kepada konsumen toolchain/penafsir, lihat
bazelbuild/rules_python/issues/1612
Untuk runtime platform (yaitu `Interpreter_path` yang sedang ditetapkan), atribut ini harus
tidak ditetapkan.
|
interpreter_path
|
String; default-nya adalah ""
Untuk runtime platform, ini adalah jalur absolut dari penafsir Python di
platform target. Untuk runtime dalam build, 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:
* main: int, nomor versi utama
* minor: int, nomor versi minor
* micro: int opsional, nomor versi mikro
* releaselevel: str opsional, level rilis
* seri: 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, maka akan dihitung
dari `implementation_name` dan `Interpreter_version_info`. Jika tidak ada pyc_tag yang
maka 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 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` tingkat teratas zip.
Ini menjadi titik entri yang dieksekusi saat `python foo.zip` dijalankan.
:::{seealso}
Kolom {obj}`PyRuntimeInfo.zip_main_template`.
:::
|