papermill — это инструмент для параметризации, выполнения и анализа Jupyter Notebooks.
Бумажная фабрика позволяет:
Это открывает новые возможности использования ноутбуков. Например:
Papermill использует самоуверенный подход к параметризации и исполнению блокнотов, основываясь на нашем опыте масштабного использования блокнотов в конвейерах данных.
Из командной строки:
pip install papermill
Для всех необязательных зависимостей io вы можете указать отдельные пакеты, такие как s3
или azure
, или использовать all
. Чтобы использовать черный цвет для форматирования параметров, которые вы можете добавить в качестве дополнительного, требуется ['black'].
pip install papermill[all]
Эта библиотека в настоящее время поддерживает версии Python 3.8+. Поскольку второстепенные версии Python официально прекращены бумажной фабрикой Python, поддержка в будущем также прекратится.
Для параметризации вашего блокнота назначьте ячейку с тегом parameters
.
Papermill ищет ячейку parameters
и рассматривает эту ячейку как значения по умолчанию для параметров, передаваемых во время выполнения. Papermill добавит новую ячейку, помеченную injected-parameters
с входными параметрами, чтобы перезаписать значения в parameters
. Если ни одна ячейка не помечена parameters
введенная ячейка будет вставлена в верхнюю часть блокнота.
Кроме того, если вы повторно запустите блокноты через бумажную фабрику, она будет повторно использовать ячейку injected-parameters
из предыдущего запуска. В этом случае Papermill заменит старую ячейку с injected-parameters
входными данными нового прогона.
Два способа запустить блокнот с параметрами: (1) через API Python и (2) через интерфейс командной строки.
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
Вот пример локального блокнота, который выполняется и выводится в учетную запись Amazon S3:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
ПРИМЕЧАНИЕ. Если вы используете несколько учетных записей AWS и правильно настроили свои учетные данные AWS, вы можете указать, какую учетную запись использовать, задав переменную среды AWS_PROFILE
в командной строке. Например:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
В приведенном выше примере устанавливаются два параметра: alpha
и l1_ratio
с помощью -p
( --parameters
также работает). Значения параметров, которые выглядят как логические значения или числа, будут интерпретироваться как таковые. Вот различные способы, которыми пользователи могут устанавливать параметры:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
Используя -r
или --parameters_raw
, пользователи могут устанавливать параметры один за другим. Однако, в отличие от -p
, параметр останется строкой, даже если его можно интерпретировать как число или логическое значение.
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
Используя -f
или --parameters_file
, пользователи могут предоставить файл YAML, из которого следует считывать значения параметров.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
Используя -y
или --parameters_yaml
, пользователи могут напрямую предоставить строку YAML, содержащую значения параметров.
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
Используя -b
или --parameters_base64
, пользователи могут предоставить строку YAML в кодировке Base64, содержащую значения параметров.
При использовании YAML для передачи аргументов через -y
, -b
или -f
значения параметров могут быть массивами или словарями:
$ 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 поддерживает следующие обработчики имен для путей ввода и вывода во время выполнения:
Локальная файловая система: local
HTTP, протокол HTTPS: http://, https://
Веб-сервисы Amazon: AWS S3 s3://
Azure: Azure DataLake Store, Azure Blob Store adl://, abs://
Google Cloud: Облачное хранилище Google gs://
Прочтите CONTRIBUTING.md, чтобы узнать, как настроить локальную среду разработки и внести изменения в код обратно в Papermill.
Рекомендации по разработке см. в файле DEVELOPMENT_GUIDE.md. Это должно информировать вас о том, как внести определенные дополнения в базу кода.
Мы размещаем документацию Papermill на ReadTheDocs.