Aturan Python

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; defaultnya 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). Biasanya berupa aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime termasuk dalam atribut `data`.
srcs

Daftar label; wajib diisi

Daftar file sumber Python yang diproses untuk membuat target. Hal ini mencakup semua kode yang Anda check in dan dapat mencakup 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; defaultnya 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; defaultnya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada substitusi "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang bergantung pada aturan ini). Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String bersifat 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; defaultnya 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, kecuali direktori root repo. Default, `-1` (otomatis), berarti benar kecuali jika `--incompatible_default_to_explicit_init_py` digunakan. Jika salah (false), pengguna bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
main

Label; defaultnya adalah None

Opsional; nama file sumber yang merupakan titik entri utama aplikasi. File ini juga harus tercantum di `srcs`. Jika tidak ditentukan, `name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan nama file mana pun di `srcs`, `main` harus ditentukan.
precompile

String; default-nya adalah "inherit"

Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya. Nilai: * `inherit`: Izinkan biner hilir memutuskan apakah file yang telah dikompilasi sebelumnya digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. ::{seealso} * Flag {flag}`--precompile`, yang dapat menggantikan atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat membangun. * Atribut {obj}`pyc_collection` untuk mengaktifkan pra-kompilasi secara transitif berdasarkan per target. * Dokumen [Precompiling](precompiling) untuk panduan tentang penggunaan precompiling. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara memverifikasi apakah file yang telah dikompilasi sebelumnya sudah terbaru dengan file sumber terkaitnya. Nilai yang mungkin adalah: * `auto`: Nilai efektif akan ditentukan secara otomatis 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 bekerja dengan kode yang mungkin Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna saat kode tidak akan diubah. Untuk mengetahui informasi selengkapnya tentang mode pembatalan pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; defaultnya adalah 0

Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya. Untuk mengetahui informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen argumen `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 pyc dibuat_, bukan interpreter yang digunakan pada waktu 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.
pyc_collection

String; default-nya adalah "inherit"

Menentukan apakah file pyc dari dependensi harus disertakan secara manual. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari {flag}`--precompile`. * `include_pyc`: Menambahkan file pyc yang dibuat secara implisit dari dependensi. Artinya, file pyc untuk target yang menentukan {attr}`precompile="inherit"`. * `disabled`: Jangan menambahkan file pyc yang dibuat secara implisit. Perhatikan bahwa file pyc masih dapat berasal dari dependensi yang memungkinkan pra-kompilasi di tingkat target.
python_version

String; default-nya adalah "PY3"

Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.
stamp

Bilangan bulat; defaultnya adalah -1

Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin: * `stamp = 1`: Selalu mencap 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 hilir yang bergantung padanya. * `stamp = 0`: Selalu ganti informasi build dengan nilai konstanta. Hal ini memberikan penyimpanan cache hasil build yang baik. * `stamp = -1`: Penyematan informasi build dikontrol oleh flag `--[no]stamp`. Biner yang diberi stempel tidak dibangun ulang kecuali jika dependensinya berubah. PERINGATAN: Pemberian stempel dapat merusak performa build dengan mengurangi hit cache dan harus 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: * Sumber Python input * Artefak yang telah dikompilasi sebelumnya dari sumber. CATATAN: Pra-kompilasi memengaruhi output default mana yang disertakan dalam runfile yang dihasilkan. Lihat atribut dan flag terkait pra-kompilasi untuk mengetahui informasi selengkapnya. ::{versionchanged} 0.37.0 File sumber tidak lagi ditambahkan langsung ke runfile. :::

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; defaultnya 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). Biasanya berupa aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime termasuk dalam atribut `data`.
srcs

Daftar label; defaultnya adalah []

Daftar file sumber Python yang diproses untuk membuat target. Hal ini mencakup semua kode yang Anda check in dan dapat mencakup 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; defaultnya 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; defaultnya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada substitusi "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang bergantung pada aturan ini). Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String bersifat 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`: Izinkan biner hilir memutuskan apakah file yang telah dikompilasi sebelumnya digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. ::{seealso} * Flag {flag}`--precompile`, yang dapat menggantikan atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat membangun. * Atribut {obj}`pyc_collection` untuk mengaktifkan pra-kompilasi secara transitif berdasarkan per target. * Dokumen [Precompiling](precompiling) untuk panduan tentang penggunaan precompiling. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara memverifikasi apakah file yang telah dikompilasi sebelumnya sudah terbaru dengan file sumber terkaitnya. Nilai yang mungkin adalah: * `auto`: Nilai efektif akan ditentukan secara otomatis 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 bekerja dengan kode yang mungkin Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna saat kode tidak akan diubah. Untuk mengetahui informasi selengkapnya tentang mode pembatalan pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; defaultnya adalah 0

Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya. Untuk mengetahui informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen argumen `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 pyc dibuat_, bukan interpreter yang digunakan pada waktu 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.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.

py_test

Lihat 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

Nama unik untuk target ini.

deps

Daftar label; defaultnya 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). Biasanya berupa aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime termasuk dalam atribut `data`.
srcs

Daftar label; wajib diisi

Daftar file sumber Python yang diproses untuk membuat target. Hal ini mencakup semua kode yang Anda check in dan dapat mencakup 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; defaultnya 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; defaultnya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada substitusi "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang bergantung pada aturan ini). Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String bersifat 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; defaultnya 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, kecuali direktori root repo. Default, `-1` (otomatis), berarti benar kecuali jika `--incompatible_default_to_explicit_init_py` digunakan. Jika salah (false), pengguna bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
main

Label; defaultnya adalah None

Opsional; nama file sumber yang merupakan titik entri utama aplikasi. File ini juga harus tercantum di `srcs`. Jika tidak ditentukan, `name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan nama file mana pun di `srcs`, `main` harus ditentukan.
precompile

String; default-nya adalah "inherit"

Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya. Nilai: * `inherit`: Izinkan biner hilir memutuskan apakah file yang telah dikompilasi sebelumnya digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. ::{seealso} * Flag {flag}`--precompile`, yang dapat menggantikan atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat membangun. * Atribut {obj}`pyc_collection` untuk mengaktifkan pra-kompilasi secara transitif berdasarkan per target. * Dokumen [Precompiling](precompiling) untuk panduan tentang penggunaan precompiling. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara memverifikasi apakah file yang telah dikompilasi sebelumnya sudah terbaru dengan file sumber terkaitnya. Nilai yang mungkin adalah: * `auto`: Nilai efektif akan ditentukan secara otomatis 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 bekerja dengan kode yang mungkin Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna saat kode tidak akan diubah. Untuk mengetahui informasi selengkapnya tentang mode pembatalan pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; defaultnya adalah 0

Tingkat pengoptimalan untuk file yang telah dikompilasi sebelumnya. Untuk mengetahui informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen argumen `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 pyc dibuat_, bukan interpreter yang digunakan pada waktu 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.
pyc_collection

String; default-nya adalah "inherit"

Menentukan apakah file pyc dari dependensi harus disertakan secara manual. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari {flag}`--precompile`. * `include_pyc`: Menambahkan file pyc yang dibuat secara implisit dari dependensi. Artinya, file pyc untuk target yang menentukan {attr}`precompile="inherit"`. * `disabled`: Jangan menambahkan file pyc yang dibuat secara implisit. Perhatikan bahwa file pyc masih dapat berasal dari dependensi yang memungkinkan pra-kompilasi di tingkat target.
python_version

String; default-nya adalah "PY3"

Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak berfungsi, tidak digunakan, tidak melakukan apa pun.
stamp

Bilangan bulat; defaultnya adalah 0

Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin: * `stamp = 1`: Selalu mencap 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 hilir yang bergantung padanya. * `stamp = 0`: Selalu ganti informasi build dengan nilai konstanta. Hal ini memberikan penyimpanan cache hasil build yang baik. * `stamp = -1`: Penyematan informasi build dikontrol oleh flag `--[no]stamp`. Biner yang diberi stempel tidak dibangun ulang kecuali jika dependensinya berubah. PERINGATAN: Pemberian stempel dapat merusak performa build dengan mengurangi hit cache dan harus dihindari jika memungkinkan.

py_runtime

Lihat sumber aturan
py_runtime(name, abi_flags, 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)
Mewakili runtime Python yang digunakan untuk mengeksekusi kode Python. Target `py_runtime` dapat merepresentasikan *runtime platform* atau *runtime dalam build*. Runtime platform mengakses interpreter yang diinstal sistem di jalur yang diketahui, sedangkan runtime dalam build mengarah ke target yang dapat dieksekusi yang bertindak sebagai interpreter. Dalam kedua kasus tersebut, "interpreter" berarti biner yang dapat dieksekusi atau skrip wrapper yang mampu menjalankan skrip Python yang diteruskan di command line, mengikuti konvensi yang sama dengan interpreter CPython standar. Runtime platform pada dasarnya bersifat non-hermetik. Hal ini memaksakan persyaratan pada platform target untuk memiliki interpreter yang berada di jalur tertentu. Runtime bawaan mungkin hermetik atau tidak, bergantung pada apakah runtime tersebut mengarah ke interpreter yang di-check-in atau skrip wrapper yang mengakses interpreter 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.

abi_flags

String; default-nya adalah ""

Flag ABI runtime, yaitu `sys.abiflags`. Jika tidak ditetapkan, maka akan ditetapkan berdasarkan flag.
bootstrap_template

Label; defaultnya 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 diekspansi, akan menjadi file yang dapat dieksekusi yang digunakan untuk memulai proses, sehingga bertanggung jawab atas tindakan bootstrapping awal seperti menemukan interpreter Python, runfile, dan membuat lingkungan untuk menjalankan aplikasi Python yang dimaksud. Meskipun saat ini atribut ini bersifat opsional, atribut ini akan menjadi wajib saat aturan Python dipindahkan dari Bazel itu sendiri. Nama variabel yang tepat yang diperluas adalah API yang tidak stabil dan dapat berubah. 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; defaultnya adalah None

Ini adalah target yang akan digunakan untuk mengumpulkan informasi cakupan kode dari target {rule}`py_binary` dan {rule}`py_test`. Jika disetel, target harus menghasilkan satu file atau menjadi target yang dapat dieksekusi. Jalur ke satu file, atau file yang dapat dieksekusi jika targetnya dapat dieksekusi, menentukan titik entri untuk alat cakupan python. Target dan file run-nya akan ditambahkan ke file run saat cakupan diaktifkan. Titik entri untuk alat harus dapat dimuat oleh interpreter Python (misalnya, file `.py` atau `.pyc`). Skrip ini harus menerima argumen command line dari [`coverage.py`](https://coverage.readthedocs.io), setidaknya termasuk subperintah `run` dan `lcov`.
files

Daftar label; defaultnya adalah []

Untuk runtime dalam build, ini adalah kumpulan file yang membentuk runtime ini. File ini akan ditambahkan ke file run dari biner Python yang menggunakan runtime ini. Untuk runtime platform, atribut ini tidak boleh ditetapkan.
implementation_name

String; default-nya adalah "cpython"

Nama implementasi Python (`sys.implementation.name`)
interpreter

Label; defaultnya adalah None

Untuk runtime dalam build, ini adalah target yang akan dipanggil sebagai interpreter. Dapat berupa: * Satu file, yang akan menjadi biner interpreter. Diasumsikan bahwa interpreter tersebut adalah file tunggal yang dapat dieksekusi atau file pendukung apa pun ditentukan dalam `files`. * Target yang dapat dieksekusi. File yang dapat dieksekusi target akan menjadi biner interpreter. Output default lainnya (`target.files`) dan runfile file biasa (`runfiles.files`) akan otomatis disertakan seolah-olah ditentukan dalam atribut `files`. CATATAN: file yang dapat dieksekusi target mungkin belum diterapkan/diteruskan dengan benar ke konsumen toolchain/interpreter, lihat bazelbuild/rules_python/issues/1612 Untuk runtime platform (yaitu, `interpreter_path` disetel), atribut ini tidak boleh disetel.
interpreter_path

String; default-nya adalah ""

Untuk runtime platform, ini adalah jalur absolut interpreter Python di platform target. Untuk runtime bawaan, atribut ini tidak boleh ditetapkan.
interpreter_version_info

Dictionary: String -> String; default-nya adalah {}

Informasi versi tentang interpreter 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 bilangan bulat. Kunci yang didukung adalah: * major: int, nomor versi utama * minor: int, nomor versi minor * micro: opsional int, nomor versi mikro * releaselevel: opsional str, tingkat rilis * serial: opsional int, 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, 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 menjadi wajib dan tidak memiliki nilai default.
stage2_bootstrap_template

Label; defaultnya adalah "@rules_python//python/private:stage2_bootstrap_template"

Template yang akan digunakan saat bootstrapping 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" yang ditambahkan ke skrip stub Python bootstrapping yang digunakan saat mengeksekusi target {rule}`py_binary`. Lihat https://github.com/bazelbuild/bazel/issues/8685 untuk mengetahui motivasinya. Tidak berlaku untuk Windows.
zip_main_template

Label; defaultnya adalah "@rules_python//python/private:zip_main_template"

Template yang akan digunakan untuk file `__main__.py` level teratas zip. File ini menjadi titik entri yang dijalankan saat `python foo.zip` dijalankan. ::{seealso} Kolom {obj}`PyRuntimeInfo.zip_main_template`. :::