pddl2hoa


Namepddl2hoa JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryConvert PDDL planning problems to HOA (Hanoi Omega Automata) format
upload_time2025-07-30 16:14:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords pddl planning automata hoa formal-methods
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pddl2hoa

**pddl2hoa** is a Python tool that converts PDDL (Planning Domain Definition Language) planning problems into [HOA (Hanoi Omega Automata)](https://adl.github.io/hoaf/) format. This enables downstream analysis with formal methods tools and automata-based verification frameworks.

---

## Features

- Parse and analyze PDDL domain and problem files
- Convert planning goals into equivalent HOA automata
- Generate [Strategy Templates](https://arxiv.org/abs/2305.14026) for PDDL domains and problems (must install [Pestel](https://github.com/satya2009rta/pestel) seperately)
- Compatible with tools that support HOA format (e.g., Spot, Pestel)
- Designed for integration into formal methods pipelines

---

## Installation

Install via [`uv`](https://github.com/astral-sh/uv) (recommended):

```bash
uv pip install pddl2hoa
```

Or from source:
```bash
git clone https://github.com/yourusername/pddl2hoa.git
cd pddl2hoa
uv pip install .
```

---

## Usage
After installation, use the CLI tool:
```bash
pddl2hoa domain.pddl problem.pddl > edge_labeled_HOA.hoa
```

Or use it as a Python library:
```python
from pddl2hoa import convert_pddl_to_hoa

convert_pddl_to_hoa("domain.pddl", "problem.pddl")
```

---


## Converting from other formats to HOA
This library is designed to be extensible. You can convert almost any domain with a graph-based structure into an HOA representation by subclassing the `TurnBasedGame` abstract base class in [game.py](./pddl2hoa/game.py). Once your game format is implemented, you can call the `format_hoa` method from [generate_hoa.py](./pddl2hoa/generate_hoa.py) to produce a corresponding HOA graph.

---

## Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you’d like to change.

---

## Links

- [Github](https://github.com/OzGitelson/pddl2hoa)
- [PyPi](https://pypi.org/project/pddl2hoa/)
- [PDDLGym](https://github.com/tomsilver/pddlgym), the PDDL utility that this package uses under the hood
- [HOA Format Spec](https://adl.github.io/hoaf/)




            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pddl2hoa",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "pddl, planning, automata, hoa, formal-methods",
    "author": null,
    "author_email": "Oz Gitelson <oz@ozgitelson.com>",
    "download_url": "https://files.pythonhosted.org/packages/60/fc/6a88e1fb69f2f6eff04e7220a8f7330ac3755548c77494db89c8418df630/pddl2hoa-0.1.4.tar.gz",
    "platform": null,
    "description": "# pddl2hoa\n\n**pddl2hoa** is a Python tool that converts PDDL (Planning Domain Definition Language) planning problems into [HOA (Hanoi Omega Automata)](https://adl.github.io/hoaf/) format. This enables downstream analysis with formal methods tools and automata-based verification frameworks.\n\n---\n\n## Features\n\n- Parse and analyze PDDL domain and problem files\n- Convert planning goals into equivalent HOA automata\n- Generate [Strategy Templates](https://arxiv.org/abs/2305.14026) for PDDL domains and problems (must install [Pestel](https://github.com/satya2009rta/pestel) seperately)\n- Compatible with tools that support HOA format (e.g., Spot, Pestel)\n- Designed for integration into formal methods pipelines\n\n---\n\n## Installation\n\nInstall via [`uv`](https://github.com/astral-sh/uv) (recommended):\n\n```bash\nuv pip install pddl2hoa\n```\n\nOr from source:\n```bash\ngit clone https://github.com/yourusername/pddl2hoa.git\ncd pddl2hoa\nuv pip install .\n```\n\n---\n\n## Usage\nAfter installation, use the CLI tool:\n```bash\npddl2hoa domain.pddl problem.pddl > edge_labeled_HOA.hoa\n```\n\nOr use it as a Python library:\n```python\nfrom pddl2hoa import convert_pddl_to_hoa\n\nconvert_pddl_to_hoa(\"domain.pddl\", \"problem.pddl\")\n```\n\n---\n\n\n## Converting from other formats to HOA\nThis library is designed to be extensible. You can convert almost any domain with a graph-based structure into an HOA representation by subclassing the `TurnBasedGame` abstract base class in [game.py](./pddl2hoa/game.py). Once your game format is implemented, you can call the `format_hoa` method from [generate_hoa.py](./pddl2hoa/generate_hoa.py) to produce a corresponding HOA graph.\n\n---\n\n## Contributing\nPull requests are welcome! For major changes, please open an issue first to discuss what you\u2019d like to change.\n\n---\n\n## Links\n\n- [Github](https://github.com/OzGitelson/pddl2hoa)\n- [PyPi](https://pypi.org/project/pddl2hoa/)\n- [PDDLGym](https://github.com/tomsilver/pddlgym), the PDDL utility that this package uses under the hood\n- [HOA Format Spec](https://adl.github.io/hoaf/)\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Convert PDDL planning problems to HOA (Hanoi Omega Automata) format",
    "version": "0.1.4",
    "project_urls": {
        "Homepage": "https://github.com/ozgitelson/pddl2hoa",
        "Issues": "https://github.com/ozgitelson/pddl2hoa/issues",
        "Repository": "https://github.com/ozgitelson/pddl2hoa"
    },
    "split_keywords": [
        "pddl",
        " planning",
        " automata",
        " hoa",
        " formal-methods"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bdfe7a3f8d267c919d9fa71cba530fd466ab1376776cd841bf4b40a196908fdc",
                "md5": "17f395a64566ab9ecfbc9d2545f265d8",
                "sha256": "1a8f6cb70b61433008ec98156a9bd959d1eb58a9bdf271d0b9bfdab0d2e6c4c6"
            },
            "downloads": -1,
            "filename": "pddl2hoa-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "17f395a64566ab9ecfbc9d2545f265d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7605,
            "upload_time": "2025-07-30T16:14:00",
            "upload_time_iso_8601": "2025-07-30T16:14:00.847538Z",
            "url": "https://files.pythonhosted.org/packages/bd/fe/7a3f8d267c919d9fa71cba530fd466ab1376776cd841bf4b40a196908fdc/pddl2hoa-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "60fc6a88e1fb69f2f6eff04e7220a8f7330ac3755548c77494db89c8418df630",
                "md5": "00d9a70aa5fd73dcff6051df13f0dba3",
                "sha256": "e6d98bd57460574c8b1f16c32ed58192ff11afa56da5710204604e0bb4c91ba6"
            },
            "downloads": -1,
            "filename": "pddl2hoa-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "00d9a70aa5fd73dcff6051df13f0dba3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 7007,
            "upload_time": "2025-07-30T16:14:01",
            "upload_time_iso_8601": "2025-07-30T16:14:01.812318Z",
            "url": "https://files.pythonhosted.org/packages/60/fc/6a88e1fb69f2f6eff04e7220a8f7330ac3755548c77494db89c8418df630/pddl2hoa-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 16:14:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ozgitelson",
    "github_project": "pddl2hoa",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pddl2hoa"
}
        
Elapsed time: 0.95894s