{"id":28433,"library":"unified-planning","title":"Unified Planning","description":"Unified Planning is a Python framework for AI planning that provides a common API for modeling planning problems and using different planning engines. It supports PDDL, STRIPS, temporal and numeric planning, and integrates multiple solvers (e.g., Fast Downward, ENHSP). Current version is 1.3.0, with regular releases.","status":"active","version":"1.3.0","language":"python","source_language":"en","source_url":"https://github.com/aiplan4eu/unified-planning","tags":["planning","AI","PDDL","scheduling","automated planning"],"install":[{"cmd":"pip install unified-planning","lang":"bash","label":"Basic install"}],"dependencies":[{"reason":"Required for engine testing","package":"pytest","optional":true}],"imports":[{"note":"Correct import in v1.x","symbol":"Problem","correct":"from unified_planning.shortcuts import Problem"},{"note":"UPEngine was renamed to Engine in v1.0","wrong":"from unified_planning.engines import UPEngine","symbol":"UPEngine","correct":"from unified_planning.engines import Engine"},{"note":"Use unified_planning.model, not unified_planning.operators","symbol":"OperatorKind","correct":"from unified_planning.model import OperatorKind"}],"quickstart":{"code":"from unified_planning.shortcuts import *\n\nproblem = Problem('quickstart')\nproblem.add_fluent('x', IntType())\n\naction = InstantaneousAction('a')\naction.add_precondition(Equals(problem.fluent('x'), 0))\naction.add_effect(problem.fluent('x'), Plus(problem.fluent('x'), 1))\nproblem.add_action(action)\n\nproblem.set_initial_value(problem.fluent('x'), 0)\nproblem.add_goal(Equals(problem.fluent('x'), 1))\n\nwith OneshotPlanner(problem_kind=problem.kind) as planner:\n    plan = planner.solve(problem)\n    if plan:\n        print('%s plan found: %s' % (planner.name, plan))\n    else:\n        print('No plan found.')","lang":"python","description":"Creates a simple planning problem with one action and solves it using a oneshot planner."},"warnings":[{"fix":"Replace 'from unified_planning.engines import UPEngine' with 'from unified_planning.engines import Engine'","message":"In v1.0, UPEngine was renamed to Engine. Code using UPEngine will break.","severity":"breaking","affected_versions":"<1.0"},{"fix":"Use 'from unified_planning.shortcuts import Problem, ...' or import from submodules directly.","message":"The unified_planning.shortcuts module is designed for interactive use; for production, import specific classes.","severity":"gotcha","affected_versions":"all"},{"fix":"Check available planners with engine_selector().engines","message":"Engine names are case-sensitive and depend on solver installation (e.g., 'fast_downward' vs 'pyperplan').","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Run 'pip install unified-planning' and ensure correct package name (with hyphen).","cause":"Package not installed or installed under different name.","error":"ModuleNotFoundError: No module named 'unified_planning'"},{"fix":"Upgrade to latest version: 'pip install --upgrade unified-planning'","cause":"Incorrect import or old version without shortcuts.","error":"AttributeError: module 'unified_planning' has no attribute 'shortcuts'"},{"fix":"Change to 'from unified_planning.engines import Engine'","cause":"Using old import path for engine.","error":"NameError: name 'Engine' is not defined"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}