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
- archivo
- is_dev_dependency
- modules
- os
- path
- leer
- report_progress
- root_module_has_non_dev_dependency
- que
descargar
struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')Descarga un archivo en la ruta de acceso de salida de la URL proporcionada y muestra una estructura que contiene
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
.
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 la ruta de acceso '' al archivo de salida, en relación con el directorio del repositorio. |
sha256
|
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 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 facilitar el desarrollo, pero se debe configurar antes del envío. |
executable
|
El valor predeterminado es False Establece la marca ejecutable en el archivo creado, que es falsa de forma predeterminada. |
allow_fail
|
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
|
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a aquellos casos en los que el archivo se haya agregado a la caché con el mismo ID canónico. |
auth
|
el valor predeterminado es {} Es un diccionario opcional que especifica la información de autenticación para algunas de las URLs. |
integrity
|
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. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})Descarga un archivo en la ruta de salida para la URL proporcionada, lo extrae y muestra un struct que contiene
success
, una marca true
si la descarga se completó correctamente y, si se realizó correctamente, un hash del archivo con los campos sha256
y integrity
.
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
|
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. |
sha256
|
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 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 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á una descarga si no se encuentra el archivo en la caché. Después de una descarga correcta, el archivo se agregará a la caché. |
type
|
El valor predeterminado es '' . Es el 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 explícitamente “zip”, “jar”, “war”, “aar”, “tar”, “tar.gz”, “tgz”, “tar.xz”, “txz”, “.tar.zst”, “.tzst”, “tar.bz2”, “.tbz”, “.ar” o “.deb” aquí. |
stripPrefix
|
El valor predeterminado es '' , un prefijo de directorio para quitar 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.
|
allow_fail
|
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
|
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a aquellos casos en los que el archivo se haya agregado a la caché con el mismo ID canónico. |
auth
|
el valor predeterminado es {} Es un diccionario opcional que especifica la información de autenticación para algunas de las URLs. |
integrity
|
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 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. |
rename_files
|
El valor predeterminado es {} Un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Los nombres de las entradas de archivo que coincidan exactamente con una clave se cambiarán al valor antes de cualquier ajuste de prefijo de 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="")Ejecuta el comando que se proporciona en la lista de argumentos. El tiempo de ejecución del comando está limitado por
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
|
obligatorio Es una lista de argumentos, el primer elemento debe ser la ruta de acceso al programa que se ejecutará. |
timeout
|
El valor predeterminado es 600 La duración máxima del comando en segundos (el valor predeterminado es de 600 segundos). |
environment
|
El valor predeterminado es {} fuerza la configuración de algunas variables de entorno para que se pasen al proceso. |
quiet
|
El valor predeterminado es True . Si stdout y stderr se deben imprimir en la terminal. |
working_directory
|
El valor predeterminado es "" Es el directorio de trabajo para la ejecución de comandos. Puede ser absoluta o relativa a la raíz del repositorio. |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)Construye un objeto opaco que se puede mostrar desde la función de implementación de la extensión del módulo para proporcionar metadatos sobre los repositorios generados por la extensión para Bazel.
Parámetros
Parámetro | Descripción |
---|---|
root_module_direct_deps
|
Secuencia de cadenas, cadenas 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 y un comando de corrección cuando se evalúe la extensión.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 y un comando de corrección cuando se evalúe la extensión.Si se especifica uno de Se puede establecer exactamente uno de |
archivo
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
Genera un archivo en el directorio del repositorio con el contenido proporcionado.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta de acceso;
obligatoria Es la ruta de acceso del archivo que se creará, en relación con el directorio del repositorio. |
content
|
El valor predeterminado es '' el contenido del archivo que se creará, vacío de forma predeterminada. |
executable
|
el valor predeterminado es True . Establece la marca ejecutable en el archivo creado. Este valor es verdadero de forma predeterminada. |
legacy_utf8
|
El valor predeterminado es True , que codifica el contenido del archivo en UTF-8, verdadero de forma predeterminada. Las versiones futuras cambiarán el valor predeterminado y quitarán este parámetro. |
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)Muestra si se especificó la etiqueta determinada en el resultado de una llamada use_extension con
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.modulesEs una lista de todos los módulos de Bazel en el gráfico de dependencias externo que usan esta extensión de módulo, cada uno de los cuales es un objeto bazel_module que expone todas las etiquetas que especificó para esta extensión. Se garantiza que el orden de iteración de este diccionario será el mismo que el de la búsqueda de amplitud a partir del módulo raíz.
os
repository_os module_ctx.osEs un struct para acceder a la información del sistema.
ruta de acceso
path module_ctx.path(path)Muestra una ruta de acceso de una cadena, etiqueta o ruta de acceso. Si la ruta de acceso es relativa, se resolverá en función del directorio del repositorio. Si la ruta es una etiqueta, se resolverá en la ruta del archivo correspondiente. Ten en cuenta que los repositorios remotos se ejecutan durante la fase de análisis y, por lo tanto, no pueden depender de un resultado objetivo (la etiqueta debe apuntar a un archivo no generado). Si path es una ruta de acceso, se mostrará tal como está.
Parámetros
Parámetro | Descripción |
---|---|
path
|
string; Label; o path;
obligatorio string, etiqueta o ruta desde la que se crea una ruta |
read
string module_ctx.read(path)Lee el contenido de un archivo en el sistema de archivos.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatoria ruta de acceso del archivo del que se leerá. |
report_progress
None
module_ctx.report_progress(status='')
Actualiza el estado de progreso para la recuperación de este repositorio o extensión de módulo.
Parámetros
Parámetro | Descripción |
---|---|
status
|
cadena;
el valor predeterminado es '' cadena que describe el estado actual del progreso de recuperación |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependencyIndica si el módulo raíz usa esta extensión como una dependencia no de desarrollador.
cuál
path module_ctx.which(program)Muestra la ruta de acceso del programa correspondiente o None si no existe tal programa en la ruta.
Parámetros
Parámetro | Descripción |
---|---|
program
|
requerido Programa para encontrar en la ruta. |
None
.