papermill es una herramienta para parametrizar, ejecutar y analizar Jupyter Notebooks.
Papermill le permite:
Esto abre nuevas oportunidades sobre cómo se pueden utilizar los portátiles. Por ejemplo:
Papermill adopta un enfoque obstinado para la parametrización y ejecución de portátiles basado en nuestras experiencias en el uso de portátiles a escala en canalizaciones de datos.
Desde la línea de comando:
pip install papermill
Para todas las dependencias de io opcionales, puede especificar paquetes individuales como s3
o azure
, o usar all
. Para usar negro para formatear parámetros, puede agregar como requisito adicional ['negro'].
pip install papermill[all]
Esta biblioteca actualmente admite versiones de Python 3.8+. A medida que las versiones menores de Python sean oficialmente canceladas por la organización Python, la fábrica de papel dejará de admitirlas en el futuro.
Para parametrizar su cuaderno, designe una celda con la etiqueta parameters
.
Papermill busca la celda parameters
y trata esta celda como predeterminada para los parámetros pasados en el momento de la ejecución. Papermill agregará una nueva celda etiquetada con injected-parameters
con parámetros de entrada para sobrescribir los valores en parameters
. Si ninguna celda está etiquetada con parameters
la celda inyectada se insertará en la parte superior del cuaderno.
Además, si vuelve a ejecutar los cuadernos a través de la fábrica de papel, reutilizará la celda de injected-parameters
de la ejecución anterior. En este caso, Papermill reemplazará la antigua celda injected-parameters
con las entradas de la nueva ejecución.
Las dos formas de ejecutar el cuaderno con parámetros son: (1) a través de la API de Python y (2) a través de la interfaz de línea de comandos.
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
A continuación se muestra un ejemplo de un cuaderno local que se ejecuta y se envía a una cuenta de Amazon S3:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
NOTA: Si utiliza varias cuentas de AWS y ha configurado correctamente sus credenciales de AWS, puede especificar qué cuenta usar configurando la variable de entorno AWS_PROFILE
en la línea de comandos. Por ejemplo:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
En el ejemplo anterior, se establecen dos parámetros: alpha
y l1_ratio
usando -p
( --parameters
también funciona). Los valores de parámetros que parecen booleanos o números se interpretarán como tales. Estas son las diferentes formas en que los usuarios pueden configurar los parámetros:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
Usando -r
o --parameters_raw
, los usuarios pueden configurar los parámetros uno por uno. Sin embargo, a diferencia de -p
, el parámetro seguirá siendo una cadena, incluso si puede interpretarse como un número o un valor booleano.
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
Usando -f
o --parameters_file
, los usuarios pueden proporcionar un archivo YAML desde el cual se deben leer los valores de los parámetros.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
Usando -y
o --parameters_yaml
, los usuarios pueden proporcionar directamente una cadena YAML que contenga valores de parámetros.
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
Usando -b
o --parameters_base64
, los usuarios pueden proporcionar una cadena YAML, codificada en base64, que contenga valores de parámetros.
Cuando se usa YAML para pasar argumentos, a través de -y
, -b
o -f
, los valores de los parámetros pueden ser matrices o diccionarios:
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
x:
- 0.0
- 1.0
- 2.0
- 3.0
linear_function:
slope: 3.0
intercept: 1.0"
Papermill admite los siguientes controladores de nombres para rutas de entrada y salida durante la ejecución:
Sistema de archivos local: local
HTTP, protocolo HTTPS: http://, https://
Servicios web de Amazon: AWS S3 s3://
Azure: Tienda Azure DataLake, Tienda Azure Blob adl://, abs://
Google Cloud: Almacenamiento en la nube de Google gs://
Lea CONTRIBUTING.md para obtener pautas sobre cómo configurar un entorno de desarrollo local y realizar cambios en el código de Papermill.
Para conocer las pautas de desarrollo, consulte el archivo DEVELOPMENT_GUIDE.md. Esto debería informarle sobre cómo realizar adiciones particulares al código base.
Alojamos la documentación de Papermill en ReadTheDocs.