Aturan Python

Laporkan masalah Lihat sumber Nightly · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Aturan

py_binary

Lihat sumber aturan
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 aturan
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 aturan
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 aturan
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`. :::