{"id":27131,"library":"mad-prefect","title":"Mad Prefect","description":"A collection of Prefect utilities and task libraries for building robust data pipelines. Current version 2.3.0, requires Python <3.13 and >=3.11. It provides custom blocks, flows, and integrations commonly used with Prefect.","status":"active","version":"2.3.0","language":"python","source_language":"en","source_url":"https://github.com/mad-lab/mad-prefect","tags":["prefect","data-pipelines","utils"],"install":[{"cmd":"pip install mad-prefect","lang":"bash","label":"Latest"}],"dependencies":[{"reason":"Required: mad-prefect is a wrapper/utility for Prefect.","package":"prefect","optional":false}],"imports":[{"note":"MadBlock is top-level exported; subpackage import breaks in v2.0+","wrong":"from mad_prefect.blocks import MadBlock","symbol":"MadBlock","correct":"from mad_prefect import MadBlock"},{"note":"MadTask is top-level exported; subpackage import changed in v2.0","wrong":"from mad_prefect.tasks import MadTask","symbol":"MadTask","correct":"from mad_prefect import MadTask"}],"quickstart":{"code":"from mad_prefect import MadFlow, MadBlock\nimport prefect\n\n@MadFlow\ndef my_flow():\n    block = MadBlock.load(\"my-block\")\n    return block.run()\n\nif __name__ == \"__main__\":\n    my_flow()","lang":"python","description":"Basic flow using MadBlock and MadFlow decorator."},"warnings":[{"fix":"Use `from mad_prefect import MadBlock, MadTask` instead.","message":"In v2.0.0, the package restructured exports: `MadBlock` and `MadTask` are no longer in subpackages. Old imports from `mad_prefect.blocks` and `mad_prefect.tasks` will break.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Check `mad-prefect`'s `install_requires` and match Prefect version exactly.","message":"MadPrefect requires Prefect >=2.0 but also has upper bounds on Prefect version. Mixing incompatible Prefect versions leads to cryptic import errors.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Change import to `from mad_prefect import MadBlock`.","cause":"In v2.0+, subpackages were removed; `MadBlock` and `MadTask` are now top-level.","error":"ModuleNotFoundError: No module named 'mad_prefect.blocks'"},{"fix":"Check changelog: MadFlow is deprecated; use `@prefect.flow` directly or from `mad_prefect import MadFlow` if available in your version.","cause":"MadFlow was renamed or removed in v2.0.0.","error":"ImportError: cannot import name 'MadFlow' from 'mad_prefect'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}