Skip to main content

Schedule parameterized notebooks programmatically using cli or a REST API

Project description

LabFunctions

labfunctions readthedocs PyPI - Version PyPI - Format PyPI - Status Docker last codecov

Description

LabFunctions is a library and a service that allows you to run parametrized notebooks on demand.

It was thought to empower different data roles to put notebooks into production whatever they do, this notebooks could be models, ETL process, crawlers, etc. This way of working should allow going backward and foreward in the process of building data products.

Although this tool allow different workflows in a data project, we propose this one as an example: Workflow

Philosophy

LabFunctions isn't a complete MLOps solution.

We try hard to expose the right APIs to the user for the part of scheduling notebooks with reproducibility in mind.

Whenever possible we try to use well established open source tools, projects and libraries to resolve common problems. Moreover we force some good practices like code versioning, and the use of containers to run wokrloads

The idea comes from a Netflix post which suggest using notebooks like an interface or a some kind of DSL to orchestrate different workloads like Spark and so on. But it also could be used to run entire process as we said before.

The benefits of this approach is that notebooks runned could be stored and inspected for good or for bad executions. If something fails, is easy to run in a classical way: cell by cell in a local pc or in a remote server.

Status

⚠️ Although the project is considered stable please keep in mind that LabFunctions is still under active development and therefore full backward compatibility is not guaranteed before reaching v1.0.0., APIS could change.

Features

Some features can be used standalone, and others depend on each other.

Feature Status Note
Notebook execution Stable -
Workflow scheduling Beta This allow to schedule: every hour, every day, etc
Build Runtimes Beta Build OCI compliance continers (Docker) and store it.
Runtimes templates Stable Genereate Dockerfile based on templates
Create and destroy servers Alpha Create and delete Machines in different cloud providers
GPU Support Beta Allows to run workloads that requires GPU
Execution History Alpha Track notebooks & workflows executions
Google Cloud support Beta Support google store and google cloud as provider
Secrets managment Alpha Encrypt and manager private data in a project
Project Managment Alpha Match each git repostiroy to a project

Cluster options

It is possible to run different cluster configurations with custom auto scalling policies

GPU CLUSTER DEMO

Instances inside a cluster could be created manually or automatically

See a simple demo of a gpu cluster creation

https://www.youtube.com/watch?v=-R7lJ4dGI9s

:earth_americas: Roadmap

See Roadmap draft

:post_office: Architecture

labfunctions architecture

:bookmark_tabs: References & inspirations

Contributing

Bug reports and pull requests are welcome on GitHub at the issues page. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

This project is licensed under Apache 2.0. Refer to LICENSE.txt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

labfunctions-0.9.0.tar.gz (131.2 kB view details)

Uploaded Source

Built Distribution

labfunctions-0.9.0-py3-none-any.whl (186.0 kB view details)

Uploaded Python 3

File details

Details for the file labfunctions-0.9.0.tar.gz.

File metadata

  • Download URL: labfunctions-0.9.0.tar.gz
  • Upload date:
  • Size: 131.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.10 Linux/5.15.47_1

File hashes

Hashes for labfunctions-0.9.0.tar.gz
Algorithm Hash digest
SHA256 25316607071d9e48c31dfc05fdef60ced8ca8accb50a36f06a0f541a3b616157
MD5 228ccc1c58f47ec0f0e9d87e7fa26366
BLAKE2b-256 a00f419cfd100462efae7d5efb5f67eba9771456bd41037c9a45f978c0529b1b

See more details on using hashes here.

File details

Details for the file labfunctions-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: labfunctions-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 186.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.10 Linux/5.15.47_1

File hashes

Hashes for labfunctions-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75ab2db04b1c550d64a525a33c6d11f0263a5bb2c0905bab6db1f748596568da
MD5 987222bd4fb2a576fbda5224de9deb0a
BLAKE2b-256 4c698e07309ec8ace28b56baa2721da8384412a5e5c2fa37ba1d08423b96167d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page