Metadata-Version: 2.4
Name: nb2workflow
Version: 1.3.118
Summary: convert notebook to workflow
Author-email: Volodymyr Savchenko <contact@volodymyrsavchenko.com>
License: GPLv3
Project-URL: Homepage, https://github.com/volodymyrss/nb2workflow
Keywords: jupyter,docker
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: papermill
Requires-Dist: ipykernel
Requires-Dist: nbconvert>7.0.0
Requires-Dist: psutil
Requires-Dist: diskcache
Requires-Dist: requests
Requires-Dist: pyyaml
Requires-Dist: scrapbook
Requires-Dist: validators>=0.35.0
Requires-Dist: sentry_sdk
Requires-Dist: rdflib
Requires-Dist: GitPython
Requires-Dist: typeguard; python_version > "3.9"
Requires-Dist: typeguard<4.4.3; python_version == "3.9"
Provides-Extra: service
Requires-Dist: flask>=3.1.2; extra == "service"
Requires-Dist: pytest-flask; extra == "service"
Requires-Dist: flask-caching; extra == "service"
Requires-Dist: flask-cors; extra == "service"
Requires-Dist: flasgger; extra == "service"
Requires-Dist: apscheduler; extra == "service"
Requires-Dist: beautifulsoup4; extra == "service"
Provides-Extra: consul
Requires-Dist: python-consul; extra == "consul"
Provides-Extra: owlready
Requires-Dist: owlready2==0.11; extra == "owlready"
Provides-Extra: cwl
Requires-Dist: cwlgen; extra == "cwl"
Provides-Extra: docker
Requires-Dist: docker; extra == "docker"
Requires-Dist: checksumdir; extra == "docker"
Requires-Dist: Jinja2; extra == "docker"
Provides-Extra: domains
Requires-Dist: numpy; extra == "domains"
Requires-Dist: astropy; extra == "domains"
Requires-Dist: pandas; extra == "domains"
Requires-Dist: matplotlib; extra == "domains"
Provides-Extra: k8s
Requires-Dist: kubernetes; extra == "k8s"
Requires-Dist: Jinja2; extra == "k8s"
Provides-Extra: galaxy
Requires-Dist: oda_api; extra == "galaxy"
Requires-Dist: bibtexparser>=2.0.0b3; extra == "galaxy"
Requires-Dist: pypandoc_binary; extra == "galaxy"
Requires-Dist: black; extra == "galaxy"
Requires-Dist: isort; extra == "galaxy"
Requires-Dist: autoflake; extra == "galaxy"
Provides-Extra: mmoda
Requires-Dist: oda_api; extra == "mmoda"
Requires-Dist: oda-knowledge-base; extra == "mmoda"
Dynamic: license-file

[![PyPI version](https://badge.fury.io/py/nb2workflow.svg)](https://badge.fury.io/py/nb2workflow)
[![codebeat badge](https://codebeat.co/badges/79285797-5d5b-4770-87dd-35e5dad68729)](https://codebeat.co/projects/github-com-volodymyrss-nb2workflow-master)
[![Python package](https://github.com/volodymyrss/nb2workflow/actions/workflows/python-package.yml/badge.svg)](https://github.com/volodymyrss/nb2workflow/actions/workflows/python-package.yml)
[![codecov](https://codecov.io/gh/volodymyrss/nb2workflow/branch/master/graph/badge.svg)](https://codecov.io/gh/volodymyrss/nb2workflow)

This repository helps to use notebook as a workflow.

## Starts service without container:
```bash
nb2service tests/testrepo/workflow-notebook.ipynb
```

## Builds service container and starts it:
```bash
nb2worker tests/testrepo/
```

## Builds one-shot container and cwl:

```bash
nb2worker tests/testrepo/ --build --job
```

## Generates cwl:
```bash
nb2cwl tests/testrepo/
```

## Deploys a service

Building and deploying RESTful (Swagger) service:

```bash
$ nb2deploy https://renkulab.io/gitlab/vladimir.savchenko/oda-sdss legacysurvey
```

Alternatively, using `kaniko`:

```bash
$ nb2deploy https://renkulab.io/gitlab/astronomy/mmoda/fermi fermi-an-test --build-engine kaniko
```

## Motivation

See development guide for details https://odahub.io/docs/guide-development/

## Why run notebooks?

### Why convert notebook as a service?

