forbiditerative


Nameforbiditerative JSON
Version 1.0.13 PyPI version JSON
download
home_pageNone
SummaryForbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks.
upload_time2024-04-30 23:32:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseForbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks. Copyright (C) 2019 Michael Katz, IBM Research, USA. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
keywords planning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Forbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks.

## The codebase consists of multiple planners, for multiple computational problems, roughly divided into three categories:

1. Top-k planning
2. Top-quality planning  
    2.1. Top-quality planning  
    2.2. Unordered top-quality planning  
    2.3. Sub(multi)set top-quality planning  
3. Diverse planning  
    3.1. Satisficing/Agile diverse planning  

## The planners are based on the idea of obtaining multiple solutions by iteratively reformulating planning tasks to restrict the set of valid plans, forbidding previously found ones. Thus, the planners can be referred to as FI-top-k, FI-top-quality, FI-unordered-top-quality, FI-diverse-agl.


# Installation
```
pip install forbiditerative 
```

# Running
```python

from forbiditerative import planners
from pathlib import Path

domain_file = Path("your/path/domain.pddl")
problem_file = Path("your/path/problem.pddl")

# Example: FI-unordered-top-quality
plans = planners.plan_unordered_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=100, timeout=20)
print(plans)

# Example: FI-submultisets-top-quality
plans = planners.plan_submultisets_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=None)
print(plans)

# Example: FI-subsets-top-quality
plans = planners.plan_subsets_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=None)
print(plans)

# Example: FI-topk
plans = planners.plan_topk(domain_file=domain_file, problem_file=problem_file, number_of_plans_bound=100)
print(plans)

# Example: FI-diverse-agl
plans = planners.plan_diverse_agl(domain_file=domain_file, problem_file=problem_file, number_of_plans_bound=100)
print(plans)

# Example: getting landmarks (default method 'rhw')
landmarks = planners.get_landmarks(domain_file=domain_file, problem_file=problem_file)
print(landmarks)

# Example: getting exhaustive landmarks (https://www.fast-downward.org/Doc/LandmarkFactory) 
landmarks = planners.get_landmarks(domain_file=domain_file, problem_file=problem_file, method = 'exhaust')
print(landmarks)

# Example: create a dot graph 
import graphviz
dot_txt = planners.get_dot(domain_file=domain_file, problem_file=problem_file, plans = plans)
src = graphviz.Source(dot_txt)
src.render('plans.gv', view=True)

```



## Citing

### Top-k planning
```
@InProceedings{katz-et-al-icaps2018,
  title =        "A Novel Iterative Approach to Top-k Planning",
  author =       "Michael Katz and Shirin Sohrabi and Octavian Udrea and Dominik Winterer",
  booktitle =    "Proceedings of the Twenty-Eighth International Conference on
                  Automated Planning and Scheduling (ICAPS 2018)",
  publisher =    "{AAAI} Press",
  pages =        "132--140",
  year =         "2018"
}
```

### Top-quality planning
```
@InProceedings{katz-et-al-aaai2020,
  author =       "Michael Katz and Shirin Sohrabi and Octavian Udrea",
  title =        "Top-Quality Planning: Finding Practically Useful Sets of Best Plans",
  booktitle =    "Proceedings of the Thirty-Fourth {AAAI} Conference on
                  Artificial Intelligence ({AAAI} 2020)",
  publisher =    "{AAAI} Press",
  pages =        "9900--9907",
  year =         "2020"
}

@InProceedings{katz-sohrabi-icaps2022,
  author =       "Michael Katz and Shirin Sohrabi",
  title =        "Who Needs These Operators Anyway: Top Quality Planning with Operator Subset Criteria",
  booktitle =    "Proceedings of the Thirty-Second International Conference on
                  Automated Planning and Scheduling (ICAPS 2022)",
  publisher =    "{AAAI} Press",
  year =         "2022"
}
```

### Diverse planning
```
@InProceedings{katz-sohrabi-aaai2020,
  title =        "Reshaping diverse planning",
  author =       "Michael Katz and Shirin Sohrabi",
  booktitle =    "Proceedings of the Thirty-Fourth {AAAI} Conference on
                  Artificial Intelligence ({AAAI} 2020)",
  publisher =    "{AAAI} Press",
  pages =        "9892--9899",
  year =         "2020"
}
```

## Licensing

Forbid-Iterative (FI) Planner is an Automated PDDL based planner that
includes planners for top-k, top-quality, and diverse computational
tasks. Copyright (C) 2019  Michael Katz, IBM Research, USA.
The code extends the Fast Downward planning system. The license for the
extension is specified in the LICENSE file.

## Fast Downward
<img src="misc/images/fast-downward.svg" width="800" alt="Fast Downward">

Fast Downward is a domain-independent classical planning system.

Copyright 2003-2022 Fast Downward contributors (see below).

For further information:
- Fast Downward website: <https://www.fast-downward.org>
- Report a bug or file an issue: <https://issues.fast-downward.org>
- Fast Downward mailing list: <https://groups.google.com/forum/#!forum/fast-downward>
- Fast Downward main repository: <https://github.com/aibasel/downward>


## Tested software versions

This version of Fast Downward has been tested with the following software versions:

| OS           | Python | C++ compiler                                                     | CMake |
| ------------ | ------ | ---------------------------------------------------------------- | ----- |
| Ubuntu 20.04 | 3.8    | GCC 9, GCC 10, Clang 10, Clang 11                                | 3.16  |
| Ubuntu 18.04 | 3.6    | GCC 7, Clang 6                                                   | 3.10  |
| macOS 10.15  | 3.6    | AppleClang 12                                                    | 3.19  |
| Windows 10   | 3.6    | Visual Studio Enterprise 2017 (MSVC 19.16) and 2019 (MSVC 19.28) | 3.19  |

We test LP support with CPLEX 12.9, SoPlex 3.1.1 and Osi 0.107.9.
On Ubuntu, we test both CPLEX and SoPlex. On Windows, we currently
only test CPLEX, and on macOS, we do not test LP solvers (yet).


## Contributors

The following list includes all people that actively contributed to
Fast Downward, i.e. all people that appear in some commits in Fast
Downward's history (see below for a history on how Fast Downward
emerged) or people that influenced the development of such commits.
Currently, this list is sorted by the last year the person has been
active, and in case of ties, by the earliest year the person started
contributing, and finally by last name.

- 2003-2022 Malte Helmert
- 2008-2016, 2018-2022 Gabriele Roeger
- 2010-2022 Jendrik Seipp
- 2010-2011, 2013-2022 Silvan Sievers
- 2012-2022 Florian Pommerening
- 2013, 2015-2022 Salomé Eriksson
- 2018-2022 Patrick Ferber
- 2021-2022 Clemens Büchner
- 2021-2022 Dominik Drexler
- 2022 Remo Christen
- 2015, 2021 Thomas Keller
- 2016-2020 Cedric Geissmann
- 2017-2020 Guillem Francès
- 2018-2020 Augusto B. Corrêa
- 2020 Rik de Graaff
- 2015-2019 Manuel Heusner
- 2017 Daniel Killenberger
- 2016 Yusra Alkhazraji
- 2016 Martin Wehrle
- 2014-2015 Patrick von Reth
- 2009-2014 Erez Karpas
- 2014 Robert P. Goldman
- 2010-2012 Andrew Coles
- 2010, 2012 Patrik Haslum
- 2003-2011 Silvia Richter
- 2009-2011 Emil Keyder
- 2010-2011 Moritz Gronbach
- 2010-2011 Manuela Ortlieb
- 2011 Vidal Alcázar Saiz
- 2011 Michael Katz
- 2011 Raz Nissim
- 2010 Moritz Goebelbecker
- 2007-2009 Matthias Westphal
- 2009 Christian Muise


## History

The current version of Fast Downward is the merger of three different
projects:

- the original version of Fast Downward developed by Malte Helmert
  and Silvia Richter
- LAMA, developed by Silvia Richter and Matthias Westphal based on
  the original Fast Downward
- FD-Tech, a modified version of Fast Downward developed by Erez
  Karpas and Michael Katz based on the original code

In addition to these three main sources, the codebase incorporates
code and features from numerous branches of the Fast Downward codebase
developed for various research papers. The main contributors to these
branches are Malte Helmert, Gabi Röger and Silvia Richter.


## License

The following directory is not part of Fast Downward as covered by
this license:

- ./src/search/ext

For the rest, the following license applies:

```
Fast Downward is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.

Fast Downward is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "forbiditerative",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "planning",
    "author": null,
    "author_email": "Michael Katz <michael.katz1@ibm.com>",
    "download_url": null,
    "platform": null,
    "description": "# Forbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks.\n\n## The codebase consists of multiple planners, for multiple computational problems, roughly divided into three categories:\n\n1. Top-k planning\n2. Top-quality planning  \n    2.1. Top-quality planning  \n    2.2. Unordered top-quality planning  \n    2.3. Sub(multi)set top-quality planning  \n3. Diverse planning  \n    3.1. Satisficing/Agile diverse planning  \n\n## The planners are based on the idea of obtaining multiple solutions by iteratively reformulating planning tasks to restrict the set of valid plans, forbidding previously found ones. Thus, the planners can be referred to as FI-top-k, FI-top-quality, FI-unordered-top-quality, FI-diverse-agl.\n\n\n# Installation\n```\npip install forbiditerative \n```\n\n# Running\n```python\n\nfrom forbiditerative import planners\nfrom pathlib import Path\n\ndomain_file = Path(\"your/path/domain.pddl\")\nproblem_file = Path(\"your/path/problem.pddl\")\n\n# Example: FI-unordered-top-quality\nplans = planners.plan_unordered_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=100, timeout=20)\nprint(plans)\n\n# Example: FI-submultisets-top-quality\nplans = planners.plan_submultisets_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=None)\nprint(plans)\n\n# Example: FI-subsets-top-quality\nplans = planners.plan_subsets_topq(domain_file=domain_file, problem_file=problem_file, quality_bound=1.0, number_of_plans_bound=None)\nprint(plans)\n\n# Example: FI-topk\nplans = planners.plan_topk(domain_file=domain_file, problem_file=problem_file, number_of_plans_bound=100)\nprint(plans)\n\n# Example: FI-diverse-agl\nplans = planners.plan_diverse_agl(domain_file=domain_file, problem_file=problem_file, number_of_plans_bound=100)\nprint(plans)\n\n# Example: getting landmarks (default method 'rhw')\nlandmarks = planners.get_landmarks(domain_file=domain_file, problem_file=problem_file)\nprint(landmarks)\n\n# Example: getting exhaustive landmarks (https://www.fast-downward.org/Doc/LandmarkFactory) \nlandmarks = planners.get_landmarks(domain_file=domain_file, problem_file=problem_file, method = 'exhaust')\nprint(landmarks)\n\n# Example: create a dot graph \nimport graphviz\ndot_txt = planners.get_dot(domain_file=domain_file, problem_file=problem_file, plans = plans)\nsrc = graphviz.Source(dot_txt)\nsrc.render('plans.gv', view=True)\n\n```\n\n\n\n## Citing\n\n### Top-k planning\n```\n@InProceedings{katz-et-al-icaps2018,\n  title =        \"A Novel Iterative Approach to Top-k Planning\",\n  author =       \"Michael Katz and Shirin Sohrabi and Octavian Udrea and Dominik Winterer\",\n  booktitle =    \"Proceedings of the Twenty-Eighth International Conference on\n                  Automated Planning and Scheduling (ICAPS 2018)\",\n  publisher =    \"{AAAI} Press\",\n  pages =        \"132--140\",\n  year =         \"2018\"\n}\n```\n\n### Top-quality planning\n```\n@InProceedings{katz-et-al-aaai2020,\n  author =       \"Michael Katz and Shirin Sohrabi and Octavian Udrea\",\n  title =        \"Top-Quality Planning: Finding Practically Useful Sets of Best Plans\",\n  booktitle =    \"Proceedings of the Thirty-Fourth {AAAI} Conference on\n                  Artificial Intelligence ({AAAI} 2020)\",\n  publisher =    \"{AAAI} Press\",\n  pages =        \"9900--9907\",\n  year =         \"2020\"\n}\n\n@InProceedings{katz-sohrabi-icaps2022,\n  author =       \"Michael Katz and Shirin Sohrabi\",\n  title =        \"Who Needs These Operators Anyway: Top Quality Planning with Operator Subset Criteria\",\n  booktitle =    \"Proceedings of the Thirty-Second International Conference on\n                  Automated Planning and Scheduling (ICAPS 2022)\",\n  publisher =    \"{AAAI} Press\",\n  year =         \"2022\"\n}\n```\n\n### Diverse planning\n```\n@InProceedings{katz-sohrabi-aaai2020,\n  title =        \"Reshaping diverse planning\",\n  author =       \"Michael Katz and Shirin Sohrabi\",\n  booktitle =    \"Proceedings of the Thirty-Fourth {AAAI} Conference on\n                  Artificial Intelligence ({AAAI} 2020)\",\n  publisher =    \"{AAAI} Press\",\n  pages =        \"9892--9899\",\n  year =         \"2020\"\n}\n```\n\n## Licensing\n\nForbid-Iterative (FI) Planner is an Automated PDDL based planner that\nincludes planners for top-k, top-quality, and diverse computational\ntasks. Copyright (C) 2019  Michael Katz, IBM Research, USA.\nThe code extends the Fast Downward planning system. The license for the\nextension is specified in the LICENSE file.\n\n## Fast Downward\n<img src=\"misc/images/fast-downward.svg\" width=\"800\" alt=\"Fast Downward\">\n\nFast Downward is a domain-independent classical planning system.\n\nCopyright 2003-2022 Fast Downward contributors (see below).\n\nFor further information:\n- Fast Downward website: <https://www.fast-downward.org>\n- Report a bug or file an issue: <https://issues.fast-downward.org>\n- Fast Downward mailing list: <https://groups.google.com/forum/#!forum/fast-downward>\n- Fast Downward main repository: <https://github.com/aibasel/downward>\n\n\n## Tested software versions\n\nThis version of Fast Downward has been tested with the following software versions:\n\n| OS           | Python | C++ compiler                                                     | CMake |\n| ------------ | ------ | ---------------------------------------------------------------- | ----- |\n| Ubuntu 20.04 | 3.8    | GCC 9, GCC 10, Clang 10, Clang 11                                | 3.16  |\n| Ubuntu 18.04 | 3.6    | GCC 7, Clang 6                                                   | 3.10  |\n| macOS 10.15  | 3.6    | AppleClang 12                                                    | 3.19  |\n| Windows 10   | 3.6    | Visual Studio Enterprise 2017 (MSVC 19.16) and 2019 (MSVC 19.28) | 3.19  |\n\nWe test LP support with CPLEX 12.9, SoPlex 3.1.1 and Osi 0.107.9.\nOn Ubuntu, we test both CPLEX and SoPlex. On Windows, we currently\nonly test CPLEX, and on macOS, we do not test LP solvers (yet).\n\n\n## Contributors\n\nThe following list includes all people that actively contributed to\nFast Downward, i.e. all people that appear in some commits in Fast\nDownward's history (see below for a history on how Fast Downward\nemerged) or people that influenced the development of such commits.\nCurrently, this list is sorted by the last year the person has been\nactive, and in case of ties, by the earliest year the person started\ncontributing, and finally by last name.\n\n- 2003-2022 Malte Helmert\n- 2008-2016, 2018-2022 Gabriele Roeger\n- 2010-2022 Jendrik Seipp\n- 2010-2011, 2013-2022 Silvan Sievers\n- 2012-2022 Florian Pommerening\n- 2013, 2015-2022 Salom\u00e9 Eriksson\n- 2018-2022 Patrick Ferber\n- 2021-2022 Clemens B\u00fcchner\n- 2021-2022 Dominik Drexler\n- 2022 Remo Christen\n- 2015, 2021 Thomas Keller\n- 2016-2020 Cedric Geissmann\n- 2017-2020 Guillem Franc\u00e8s\n- 2018-2020 Augusto B. Corr\u00eaa\n- 2020 Rik de Graaff\n- 2015-2019 Manuel Heusner\n- 2017 Daniel Killenberger\n- 2016 Yusra Alkhazraji\n- 2016 Martin Wehrle\n- 2014-2015 Patrick von Reth\n- 2009-2014 Erez Karpas\n- 2014 Robert P. Goldman\n- 2010-2012 Andrew Coles\n- 2010, 2012 Patrik Haslum\n- 2003-2011 Silvia Richter\n- 2009-2011 Emil Keyder\n- 2010-2011 Moritz Gronbach\n- 2010-2011 Manuela Ortlieb\n- 2011 Vidal Alc\u00e1zar Saiz\n- 2011 Michael Katz\n- 2011 Raz Nissim\n- 2010 Moritz Goebelbecker\n- 2007-2009 Matthias Westphal\n- 2009 Christian Muise\n\n\n## History\n\nThe current version of Fast Downward is the merger of three different\nprojects:\n\n- the original version of Fast Downward developed by Malte Helmert\n  and Silvia Richter\n- LAMA, developed by Silvia Richter and Matthias Westphal based on\n  the original Fast Downward\n- FD-Tech, a modified version of Fast Downward developed by Erez\n  Karpas and Michael Katz based on the original code\n\nIn addition to these three main sources, the codebase incorporates\ncode and features from numerous branches of the Fast Downward codebase\ndeveloped for various research papers. The main contributors to these\nbranches are Malte Helmert, Gabi R\u00f6ger and Silvia Richter.\n\n\n## License\n\nThe following directory is not part of Fast Downward as covered by\nthis license:\n\n- ./src/search/ext\n\nFor the rest, the following license applies:\n\n```\nFast Downward is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at\nyour option) any later version.\n\nFast Downward is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <https://www.gnu.org/licenses/>.\n```\n",
    "bugtrack_url": null,
    "license": "Forbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks. Copyright (C) 2019  Michael Katz, IBM Research, USA.  This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.  You should have received a copy of the GNU General Public License along with this program.  If not, see <https://www.gnu.org/licenses/>.",
    "summary": "Forbid-Iterative (FI) Planner is an Automated PDDL based planner that includes planners for top-k, top-quality, and diverse computational tasks.",
    "version": "1.0.13",
    "project_urls": {
        "Homepage": "https://github.com/IBM/forbiditerative"
    },
    "split_keywords": [
        "planning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31d0d6234cca5764d698b21490412bce84b443594882f6897c2948654c056161",
                "md5": "9cd0b6392cb11517bc754e79e6d23207",
                "sha256": "7a1e68e32e279733b392837f0490ebd9bae9907c4edadbba7b4b09f6f2f1eb4c"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9cd0b6392cb11517bc754e79e6d23207",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2043788,
            "upload_time": "2024-04-30T23:32:00",
            "upload_time_iso_8601": "2024-04-30T23:32:00.480458Z",
            "url": "https://files.pythonhosted.org/packages/31/d0/d6234cca5764d698b21490412bce84b443594882f6897c2948654c056161/forbiditerative-1.0.13-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8cfde20b6e3e9fff5d6d36fb1dd9dbde5acb7e24eece5208c3cc97df69999c2d",
                "md5": "964071d28610fc9344ef2567781b7f81",
                "sha256": "6691fb7027c54a00b699de05fc039f27c7556900d8bafa1dca6aa8ca680d81d1"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "964071d28610fc9344ef2567781b7f81",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2042787,
            "upload_time": "2024-04-30T23:32:02",
            "upload_time_iso_8601": "2024-04-30T23:32:02.199331Z",
            "url": "https://files.pythonhosted.org/packages/8c/fd/e20b6e3e9fff5d6d36fb1dd9dbde5acb7e24eece5208c3cc97df69999c2d/forbiditerative-1.0.13-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7ea41d55b5d6d37d54e77d2f8888185ce83c5a4489f7dc639a4fb966cdc6ccbc",
                "md5": "1334b76beb2e8a75db5f7b34f45efc9a",
                "sha256": "538a2445cf610c71144aa954f0f9a8152b226875115a1704498401be8b8c2df1"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1334b76beb2e8a75db5f7b34f45efc9a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 64425610,
            "upload_time": "2024-04-30T23:45:09",
            "upload_time_iso_8601": "2024-04-30T23:45:09.532222Z",
            "url": "https://files.pythonhosted.org/packages/7e/a4/1d55b5d6d37d54e77d2f8888185ce83c5a4489f7dc639a4fb966cdc6ccbc/forbiditerative-1.0.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89c7f45d17e289a743a3decdbd78ca73fb13a4b7b448e1fe57f4c5cb993f74b1",
                "md5": "911bb3863bb161ffc242ef4b9d3a2b41",
                "sha256": "6f3290994642c38dc02bde877e7e0377e9d80c1f0ffe9941275de6e7af3c8a00"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "911bb3863bb161ffc242ef4b9d3a2b41",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 64816014,
            "upload_time": "2024-04-30T23:06:18",
            "upload_time_iso_8601": "2024-04-30T23:06:18.692449Z",
            "url": "https://files.pythonhosted.org/packages/89/c7/f45d17e289a743a3decdbd78ca73fb13a4b7b448e1fe57f4c5cb993f74b1/forbiditerative-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4ff5192a15fed45c5551821e5f0c32012b7b8e59f56e20e5992214bb6dc9ae0",
                "md5": "0a1788d36d0ced99258cb9755a73e35f",
                "sha256": "2e6fdc6640e167da4ab47fb8e6c03ad01d285fa8a3d71e9cfe971335d81cc4ed"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0a1788d36d0ced99258cb9755a73e35f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2043794,
            "upload_time": "2024-04-30T23:32:04",
            "upload_time_iso_8601": "2024-04-30T23:32:04.439322Z",
            "url": "https://files.pythonhosted.org/packages/f4/ff/5192a15fed45c5551821e5f0c32012b7b8e59f56e20e5992214bb6dc9ae0/forbiditerative-1.0.13-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2c7ca1a800505c7aa64c3f016bab2478ae11ed5f82eeeaaa5c642a6be4cc00b",
                "md5": "5b40d6affdc392a31cdbb9d3003cbfc7",
                "sha256": "74bdfb821ebd414e76f32f9f31ace677fe3c0f7d5718dcd4d8b4286001e16d32"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5b40d6affdc392a31cdbb9d3003cbfc7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2042787,
            "upload_time": "2024-04-30T23:32:06",
            "upload_time_iso_8601": "2024-04-30T23:32:06.656245Z",
            "url": "https://files.pythonhosted.org/packages/d2/c7/ca1a800505c7aa64c3f016bab2478ae11ed5f82eeeaaa5c642a6be4cc00b/forbiditerative-1.0.13-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6565cfddb5b37466a2c4341ab2c4c7f751afc419cae07ea23dbb2767e38aee53",
                "md5": "a409a80f7158411e25d400afbc05dabe",
                "sha256": "ebcb7dcd74607d4149e3ac591163a60c039a48514860d4bbbcd2f9fd79c97daa"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a409a80f7158411e25d400afbc05dabe",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 64425548,
            "upload_time": "2024-04-30T23:44:22",
            "upload_time_iso_8601": "2024-04-30T23:44:22.562823Z",
            "url": "https://files.pythonhosted.org/packages/65/65/cfddb5b37466a2c4341ab2c4c7f751afc419cae07ea23dbb2767e38aee53/forbiditerative-1.0.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e5305928a4306f46b60ffd863d6b545d8b5b4ded611bb73811809eecfd55e2d5",
                "md5": "4b93892f98127b417c6a58c2c38f8ccf",
                "sha256": "abd1a5a48fbfb6d695bb2d7f74e3e361572bfd4069acfcb3a5870008c15e2ba9"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4b93892f98127b417c6a58c2c38f8ccf",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 64817164,
            "upload_time": "2024-04-30T23:06:28",
            "upload_time_iso_8601": "2024-04-30T23:06:28.072100Z",
            "url": "https://files.pythonhosted.org/packages/e5/30/5928a4306f46b60ffd863d6b545d8b5b4ded611bb73811809eecfd55e2d5/forbiditerative-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1063d43441a5d0942b2319aea67e13a97e85d0557cf31f647f75d5575f34d2ab",
                "md5": "51a5b7cfe19f29e2e4d164b3271f57c5",
                "sha256": "8297039081a77a19655828f462ce56d61441105343574296f8fa4771837bd44f"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "51a5b7cfe19f29e2e4d164b3271f57c5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2043794,
            "upload_time": "2024-04-30T23:32:08",
            "upload_time_iso_8601": "2024-04-30T23:32:08.734139Z",
            "url": "https://files.pythonhosted.org/packages/10/63/d43441a5d0942b2319aea67e13a97e85d0557cf31f647f75d5575f34d2ab/forbiditerative-1.0.13-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "662bc88bf3b84ac4a33c3c60bdd7fb09621374cc0e8f40f2ced9789d9c6fdf63",
                "md5": "029a8179af3bd581a1a87c023fd49d96",
                "sha256": "e17427b3ee48e46518327059858db948b916b35a64c16b1c0cb37c20819619dd"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "029a8179af3bd581a1a87c023fd49d96",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2042780,
            "upload_time": "2024-04-30T23:32:10",
            "upload_time_iso_8601": "2024-04-30T23:32:10.686218Z",
            "url": "https://files.pythonhosted.org/packages/66/2b/c88bf3b84ac4a33c3c60bdd7fb09621374cc0e8f40f2ced9789d9c6fdf63/forbiditerative-1.0.13-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "984c2b70922aaad126e3126ea814d481fa8ed9b4976046503cc5868f795b416a",
                "md5": "eb48886c88ac50efb264cf7257c3f4cc",
                "sha256": "cda7510ad94837e6baa6eebe1e09d82b48bb2a6e3772f8fb81f9b295cb160569"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "eb48886c88ac50efb264cf7257c3f4cc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 64424975,
            "upload_time": "2024-04-30T23:45:16",
            "upload_time_iso_8601": "2024-04-30T23:45:16.681132Z",
            "url": "https://files.pythonhosted.org/packages/98/4c/2b70922aaad126e3126ea814d481fa8ed9b4976046503cc5868f795b416a/forbiditerative-1.0.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d15d5ba7c50b1a080225eb2558d0a4050a61b5191b93d2421582f118fb7d1b0",
                "md5": "a07e58dfd10982f637677da460fb1df2",
                "sha256": "d0b1be223a7d0a2c918dade52766e50f55a834217b3940b8c07d93c085d7c723"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a07e58dfd10982f637677da460fb1df2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 64817051,
            "upload_time": "2024-04-30T23:06:23",
            "upload_time_iso_8601": "2024-04-30T23:06:23.738698Z",
            "url": "https://files.pythonhosted.org/packages/8d/15/d5ba7c50b1a080225eb2558d0a4050a61b5191b93d2421582f118fb7d1b0/forbiditerative-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "79912468b61f985dc63b9e4b10f2c652e890f306663ddc18e79e1e0be039d59e",
                "md5": "8b81c4f1b9f32a009ef760f9c9ab2558",
                "sha256": "d370087d3e82845ea06e1fa8ab3891a9f658bb0b59abd6a9c0a9fc6a85248355"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b81c4f1b9f32a009ef760f9c9ab2558",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2043826,
            "upload_time": "2024-04-30T23:32:12",
            "upload_time_iso_8601": "2024-04-30T23:32:12.768760Z",
            "url": "https://files.pythonhosted.org/packages/79/91/2468b61f985dc63b9e4b10f2c652e890f306663ddc18e79e1e0be039d59e/forbiditerative-1.0.13-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d08370b0e1f545a5fbc47bd706a08ca62c008be1d00e201c62806879f367cd7",
                "md5": "dfb213068217f0f81be1a13c4e280ddc",
                "sha256": "c0289e430c9fba8d20fee68531540d5fba4ebf11de5579167eb9bcca5348779b"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "dfb213068217f0f81be1a13c4e280ddc",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2042810,
            "upload_time": "2024-04-30T23:32:14",
            "upload_time_iso_8601": "2024-04-30T23:32:14.447577Z",
            "url": "https://files.pythonhosted.org/packages/8d/08/370b0e1f545a5fbc47bd706a08ca62c008be1d00e201c62806879f367cd7/forbiditerative-1.0.13-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e8011ad92e6a7872c398dfdf94305a0514c95a9204cc32b4630332501e8ea2b",
                "md5": "0f7aa7a20c508ba8e63b1f25437feb6f",
                "sha256": "557abeb982d335a2a94e6367a3855a6062d4ccc5778cbe7daad6d4050c26eb75"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0f7aa7a20c508ba8e63b1f25437feb6f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 64428143,
            "upload_time": "2024-04-30T23:43:03",
            "upload_time_iso_8601": "2024-04-30T23:43:03.757392Z",
            "url": "https://files.pythonhosted.org/packages/7e/80/11ad92e6a7872c398dfdf94305a0514c95a9204cc32b4630332501e8ea2b/forbiditerative-1.0.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "001ce08672d54413a47d568f426000dea87707516289767420ac54148c72206a",
                "md5": "5cf39f84449d111480788a8d8bab65d4",
                "sha256": "15444a5c3fb12123963104e8f65c3108ba54ba22be84f575003ad9d2b3e2f8c9"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5cf39f84449d111480788a8d8bab65d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 64814716,
            "upload_time": "2024-04-30T23:06:28",
            "upload_time_iso_8601": "2024-04-30T23:06:28.787693Z",
            "url": "https://files.pythonhosted.org/packages/00/1c/e08672d54413a47d568f426000dea87707516289767420ac54148c72206a/forbiditerative-1.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c7e74db1038edcda8147ca10cd2303b04c6d77b3b2a20e936085a58d3914b88",
                "md5": "974698e66f3a988c8fd4fcaf5df83096",
                "sha256": "d067e869f2fecb2dece01bb609ddf1e971dbf6d3a92948bda51c274e80568542"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "974698e66f3a988c8fd4fcaf5df83096",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2043766,
            "upload_time": "2024-04-30T23:32:16",
            "upload_time_iso_8601": "2024-04-30T23:32:16.199555Z",
            "url": "https://files.pythonhosted.org/packages/0c/7e/74db1038edcda8147ca10cd2303b04c6d77b3b2a20e936085a58d3914b88/forbiditerative-1.0.13-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bfa2e385ebbb8d5e20df31db0f2c8f90c22f7d0e41d33bbf21f9bde3cdc4086a",
                "md5": "57e33acefa8b04e54a83da93d1ad5b29",
                "sha256": "703109f2c5abdbf4604dc5a24e21bc891ec7c37f9d56f97e37ef5f7a97f3161d"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "57e33acefa8b04e54a83da93d1ad5b29",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2042797,
            "upload_time": "2024-04-30T23:32:18",
            "upload_time_iso_8601": "2024-04-30T23:32:18.230173Z",
            "url": "https://files.pythonhosted.org/packages/bf/a2/e385ebbb8d5e20df31db0f2c8f90c22f7d0e41d33bbf21f9bde3cdc4086a/forbiditerative-1.0.13-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cacb8e5abd4b5e6ba24236f1c58dfb6b9aaebf83e402870e3f22f4786f41ecd6",
                "md5": "ea5b13500e712279f010ed6abc1034fa",
                "sha256": "c3e51f07b44f244c310e4e31e9f810b4c57cd0285db20ebc86d4850d6a0df2d6"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ea5b13500e712279f010ed6abc1034fa",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 64428487,
            "upload_time": "2024-04-30T23:44:54",
            "upload_time_iso_8601": "2024-04-30T23:44:54.545489Z",
            "url": "https://files.pythonhosted.org/packages/ca/cb/8e5abd4b5e6ba24236f1c58dfb6b9aaebf83e402870e3f22f4786f41ecd6/forbiditerative-1.0.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a4ee73c0f9a81285726132febe1d9ea4263397f32611aa268a8c50abaa6b84cf",
                "md5": "a318a0affd03ad5692e25313c7e396b3",
                "sha256": "d6a0aab18c942d8c5918936cf5f56f21a4c3708074da3dbe9bc2f75490b41b16"
            },
            "downloads": -1,
            "filename": "forbiditerative-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a318a0affd03ad5692e25313c7e396b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 64816346,
            "upload_time": "2024-04-30T23:06:32",
            "upload_time_iso_8601": "2024-04-30T23:06:32.040661Z",
            "url": "https://files.pythonhosted.org/packages/a4/ee/73c0f9a81285726132febe1d9ea4263397f32611aa268a8c50abaa6b84cf/forbiditerative-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-30 23:32:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "IBM",
    "github_project": "forbiditerative",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "forbiditerative"
}
        
Elapsed time: 0.26151s