Es el contexto de la extensión del módulo que contiene funciones auxiliares y la información sobre las etiquetas pertinentes en el grafo de dependencias. Obtienes un objeto module_ctx como argumento de la función implementation
cuando creas una extensión de módulo.
Miembros
- descargar
- download_and_extract
- ejecutar
- extension_metadata
- extract
- archivo
- getenv
- is_dev_dependency
- modules
- os
- path
- leer
- report_progress
- root_module_has_non_dev_dependency
- watch
- cuál
descargar
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
, una marca que es true
si la descarga se completó correctamente y, si es así, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda configurar un canonical_id
explícito (p. ej., get_default_canonical_id
)
Parámetros
Parámetro | Descripción |
---|---|
url
|
string o iterable de string; obligatorio Lista de URLs duplicadas que hacen referencia al mismo archivo. |
output
|
cadena, etiqueta o ruta;
el valor predeterminado es '' ; ruta de acceso al archivo de salida, en relación con el directorio del repositorio. |
sha256
|
string; el valor predeterminado es '' El hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con el hash determinado. Solo se intentará una descarga si no se encuentra el archivo en la caché. Si la descarga se realiza correctamente, el archivo se agregará a la caché. |
executable
|
bool;
El valor predeterminado es False Establece la marca ejecutable en el archivo creado, que es falsa de forma predeterminada. |
allow_fail
|
bool;
El valor predeterminado es False Si se establece, indica el error en el valor que se muestra en lugar de generar un error para las descargas fallidas. |
canonical_id
|
cadena;
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a los casos en los que el archivo se agregó a la caché con el mismo ID canónico. De forma predeterminada, el almacenamiento en caché usa la suma de comprobación ( sha256 o integrity ).
|
auth
|
dict;
El valor predeterminado es {} . Es un diccionario opcional que especifica información de autenticación para algunas de las URLs. |
headers
|
dict;
El valor predeterminado es {} Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
cadena;
el valor predeterminado es '' Es la suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con la suma de comprobación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga correcta, el archivo se agregará a la caché. |
block
|
bool; el valor predeterminado es True Si se establece como falso, la llamada muestra inmediatamente y, en lugar del valor de retorno normal, muestra un token con un solo método, wait(), que se bloquea hasta que finaliza la descarga y muestra el valor de retorno habitual o arroja como de costumbre. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
, una marca que es true
si la descarga se completó correctamente y, si es así, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda configurar un canonical_id
explícito. p.ej., get_default_canonical_id
Parámetros
Parámetro | Descripción |
---|---|
url
|
cadena; o iterable de cadenas;
obligatorio Es una lista de URLs de espejo que hacen referencia al mismo archivo. |
output
|
string, Label o path; el valor predeterminado es '' Ruta al directorio donde se descomprimirá el archivo, en relación con el directorio del repositorio. |
sha256
|
cadena;
el valor predeterminado es '' Es el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con el hash determinado. Solo se intentará realizar una descarga si el archivo no se encuentra en la caché. Después de una descarga correcta, el archivo se agregará a la caché. |
type
|
string; el valor predeterminado es '' Corresponde al tipo de archivo del archivo descargado. De forma predeterminada, el tipo de archivo se determina a partir de la extensión de archivo de la URL. Si el archivo no tiene extensión, puedes especificar de forma explícita "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" o ".deb" aquí. |
strip_prefix
|
cadena;
el valor predeterminado es '' Es un prefijo de directorio que se quitará de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que contiene todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en build_file , este campo se puede
usar para quitarlo de los archivos extraídos.
Por compatibilidad, este parámetro también se puede usar con el nombre obsoleto |
allow_fail
|
bool;
El valor predeterminado es False Si se establece, indica el error en el valor que se muestra en lugar de generar un error para las descargas fallidas. |
canonical_id
|
cadena;
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a los casos en los que el archivo se agregó a la caché con el mismo ID canónico. De forma predeterminada, el almacenamiento en caché usa la suma de comprobación" ( sha256 o integrity ).
|
auth
|
dict; el valor predeterminado es {} Es un dict opcional que especifica la información de autenticación para algunas de las URLs. |
headers
|
dict;
El valor predeterminado es {} Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
cadena;
el valor predeterminado es '' Es la suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con la suma de comprobación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Si la descarga se realiza correctamente, el archivo se agregará a la caché. |
rename_files
|
dict:
El valor predeterminado es {} .Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Se cambiará el nombre de las entradas de archivo con nombres que coincidan exactamente con una clave por el valor, antes de cualquier ajuste del prefijo del directorio. Se puede usar para extraer archivos que contengan nombres de archivo que no sean Unicode o que tengan archivos que se extraigan en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas. |
ejecutar
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(en segundos, el valor predeterminado es de 600 segundos). Este método muestra una estructura exec_result
que contiene el resultado del comando. El mapa environment
se puede usar para anular algunas variables de entorno que se pasarán al proceso.
Parámetros
Parámetro | Descripción |
---|---|
arguments
|
secuencia; obligatorio Lista de argumentos. El primer elemento debe ser la ruta de acceso al programa que se ejecutará. |
timeout
|
int; el valor predeterminado es 600 La duración máxima del comando en segundos (el valor predeterminado es 600 segundos). |
environment
|
dict; el valor predeterminado es {} Fuerza el envío de algunas variables de entorno al proceso. El valor puede ser None para quitar la variable de entorno.
|
quiet
|
bool;
el valor predeterminado es True Indica si stdout y stderr se deben imprimir en la terminal. |
working_directory
|
cadena;
el valor predeterminado es "" Es el directorio de trabajo para la ejecución de comandos. Puede ser relativa a la raíz del repositorio o absoluta. La raíz del repositorio es la ubicación predeterminada. |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)
Parámetros
Parámetro | Descripción |
---|---|
root_module_direct_deps
|
secuencia de string, string o None ; el valor predeterminado es None . Son los nombres de los repositorios que la extensión considera dependencias directas del módulo raíz. Si el módulo raíz importa repositorios adicionales o no importa todos estos a través de use_repo , Bazel imprimirá una advertencia cuando se evalúe la extensión y le indicará al usuario que ejecute bazel mod tidy para corregir automáticamente las llamadas a use_repo . Si es uno de Si se especifica uno de Se puede establecer exactamente uno de |
root_module_direct_dev_deps
|
Secuencia de cadenas, cadenas o None .
El valor predeterminado es None . Son los nombres de los repositorios que la extensión considera dependencias de desarrollo directas del módulo raíz. Si el módulo raíz importa repositorios adicionales o no importa todos estos repositorios a través de use_repo en un proxy de extensión creado con use_extension(..., dev_dependency = True) , Bazel imprimirá una advertencia cuando se evalúe la extensión y le indicará al usuario que ejecute bazel mod tidy para corregir las llamadas a use_repo automáticamente. Si se especifica uno de Se puede establecer exactamente uno de |
reproducible
|
bool;
El valor predeterminado es False Indica que esta extensión de módulo garantiza la reproducibilidad completa, por lo que no se debe almacenar en el archivo de bloqueo. |
extract
None
module_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')
Parámetros
Parámetro | Descripción |
---|---|
archive
|
cadena, etiqueta o ruta de acceso;
obligatoria ruta de acceso al archivo que se descomprimirá, en relación con el directorio del repositorio |
output
|
cadena, etiqueta o ruta;
el valor predeterminado es '' ; es la ruta de acceso al directorio en el que se descomprimirá el archivo, en relación con el directorio del repositorio. |
strip_prefix
|
cadena;
el valor predeterminado es '' un prefijo de directorio para quitar de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que contiene todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en build_file , este campo se puede usar para quitarlo de los archivos extraídos.
Por compatibilidad, este parámetro también se puede usar con el nombre obsoleto |
rename_files
|
dict:
El valor predeterminado es {} .Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Se cambiará el nombre de las entradas de archivo con nombres que coincidan exactamente con una clave por el valor, antes de cualquier ajuste del prefijo del directorio. Se puede usar para extraer archivos que contengan nombres de archivo que no sean Unicode o que tengan archivos que se extraigan en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas. |
watch_archive
|
string; el valor predeterminado es 'auto' para mirar el archivo. Puede ser la cadena "yes", "no" o "auto". Pasar "sí" equivale a invocar inmediatamente el método watch() ; pasar "no" no intenta ver el archivo; pasar "auto" solo intentará ver el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
archivo
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
Parámetros
Parámetro | Descripción |
---|---|
path
|
string; Label; o path;
requerido Ruta del archivo que se creará, en relación con el directorio del repositorio. |
content
|
cadena;
el valor predeterminado es '' Es el contenido del archivo que se creará, vacío de forma predeterminada. |
executable
|
bool;
El valor predeterminado es True Establece la marca ejecutable en el archivo creado, que es verdadera de forma predeterminada. |
legacy_utf8
|
bool;
El valor predeterminado es True Especifica si el contenido del archivo se codifica en UTF-8, es verdadero de forma predeterminada. Las versiones futuras cambiarán el valor predeterminado y quitarán este parámetro. |
getenv
string module_ctx.getenv(name, default=None)
name
como una cadena si existe, o default
si no existe. Cuando compilas de forma incremental, cualquier cambio en el valor de la variable nombrada por name
hará que se vuelva a recuperar este repositorio.
Parámetros
Parámetro | Descripción |
---|---|
name
|
string; obligatorio Nombre de la variable de entorno deseada. |
default
|
cadena o None ;
el valor predeterminado es None Es el valor predeterminado que se muestra si no se encuentra name .
|
None
.
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)
devDependency = True
.
Parámetros
Parámetro | Descripción |
---|---|
tag
|
bazel_module_tag;
obligatorio Es una etiqueta obtenida de bazel_module.tags. |
modules
list module_ctx.modules
os
repository_os module_ctx.os
ruta de acceso
path module_ctx.path(path)
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatoriostring , Label o path a partir de los cuales se puede crear una ruta de acceso.
|
read
string module_ctx.read(path, *, watch='auto')
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso del archivo del que se leerá. |
watch
|
cadena;
el valor predeterminado es 'auto' Indica si se debe supervisar el archivo. Puede ser la cadena "yes", "no" o "auto". Pasar "yes" equivale a invocar inmediatamente el método watch() . Pasar "no" no intenta supervisar el archivo. Pasar "auto" solo intentará supervisar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
report_progress
None
module_ctx.report_progress(status='')
Parámetros
Parámetro | Descripción |
---|---|
status
|
cadena;
el valor predeterminado es '' string que describe el estado actual del progreso de recuperación.
|
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency
reloj
None
module_ctx.watch(path)
Los "Cambios" incluyen cambios en el contenido del archivo (si la ruta de acceso es un archivo), si la ruta de acceso era un archivo, pero ahora es un directorio, o viceversa, y si la ruta de acceso comienza o deja de existir. En particular, esto no incluye cambios en ningún archivo del directorio si la ruta de acceso es un directorio. Para ello, usa path.readdir()
.
Ten en cuenta que, si intentas supervisar las rutas de acceso dentro del repositorio que se está recuperando o dentro del directorio de trabajo de la extensión del módulo actual, se producirá un error. Una extensión de módulo que intente supervisar una ruta de acceso fuera del lugar de trabajo de Bazel actual también generará un error.
Parámetros
Parámetro | Descripción |
---|---|
path
|
string, Label o path obligatoria Ruta del archivo que se observará. |
cuál
path module_ctx.which(program)
path
del programa correspondiente o None
si no existe tal programa en la ruta de acceso.
Parámetros
Parámetro | Descripción |
---|---|
program
|
cadena;
obligatorio Es el programa que se debe encontrar en la ruta de acceso. |
None
.