{"library":"metaflow","title":"Metaflow","description":"Metaflow is a human-friendly Python library that helps scientists and engineers build and manage real-life data science projects. Originally developed at Netflix, it provides a unified API to the infrastructure stack required for data science projects, from prototype to production. It is actively maintained with frequent patch releases.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install metaflow"],"cli":{"name":"metaflow","version":"Usage: metaflow [OPTIONS] COMMAND [ARGS]..."}},"imports":["from metaflow import FlowSpec","from metaflow import step","from metaflow import Parameter","from metaflow import card","from metaflow import pypi","from metaflow import conda"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom metaflow import FlowSpec, step\n\nclass HelloFlow(FlowSpec):\n    \"\"\"A simple Metaflow that prints 'Hi'.\"\"\"\n\n    @step\n    def start(self):\n        \"\"\"This is the 'start' step. All flows must have a step named 'start'.\"\"\"\n        print(\"HelloFlow is starting.\")\n        self.message = \"Metaflow says: Hi!\"\n        self.next(self.hello)\n\n    @step\n    def hello(self):\n        \"\"\"A step for Metaflow to introduce itself.\"\"\"\n        print(self.message)\n        self.next(self.end)\n\n    @step\n    def end(self):\n        \"\"\"This is the 'end' step. All flows must have an 'end' step.\"\"\"\n        print(\"HelloFlow is all done.\")\n\nif __name__ == \"__main__\":\n    HelloFlow()","lang":"python","description":"This quickstart defines a basic Metaflow workflow. It consists of three sequential steps: `start`, `hello`, and `end`. The `start` step initializes a message, the `hello` step prints it, and the `end` step marks the completion of the flow. To run this, save it as a Python file (e.g., `hello_flow.py`) and execute `python hello_flow.py run` in your terminal.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.19.29","pypi_latest":"2.19.29","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":4.7,"avg_import_s":1.24,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.07,"mem_mb":18.9,"disk_size":"64.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.8,"import_time_s":0.75,"mem_mb":18.9,"disk_size":"65M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.45,"mem_mb":21.5,"disk_size":"69.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.7,"import_time_s":1.26,"mem_mb":21.5,"disk_size":"70M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.51,"mem_mb":23.2,"disk_size":"60.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.2,"import_time_s":1.46,"mem_mb":23.2,"disk_size":"61M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.5,"mem_mb":24.2,"disk_size":"60.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.9,"import_time_s":1.46,"mem_mb":24.2,"disk_size":"61M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.99,"mem_mb":18.7,"disk_size":"63.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"metaflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.7,"import_time_s":0.91,"mem_mb":18.6,"disk_size":"64M"}]}}