{"id":23498124,"url":"https://github.com/tulip-control/floras","last_synced_at":"2025-10-31T07:32:14.266Z","repository":{"id":249895943,"uuid":"832855787","full_name":"tulip-control/floras","owner":"tulip-control","description":"Flow-based Reactive Test Synthesis for Autonomous Systems","archived":false,"fork":false,"pushed_at":"2025-01-29T21:44:47.000Z","size":357,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-29T22:29:52.279Z","etag":null,"topics":["network-flow","python","test-synthesis"],"latest_commit_sha":null,"homepage":"https://floras.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tulip-control.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-23T21:28:38.000Z","updated_at":"2025-01-29T21:44:51.000Z","dependencies_parsed_at":"2024-07-24T02:28:10.268Z","dependency_job_id":"15136ad9-facb-43b1-96ab-396f1927753b","html_url":"https://github.com/tulip-control/floras","commit_stats":null,"previous_names":["tulip-control/flowsynth","tulip-control/floras"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tulip-control%2Ffloras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tulip-control%2Ffloras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tulip-control%2Ffloras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tulip-control%2Ffloras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tulip-control","download_url":"https://codeload.github.com/tulip-control/floras/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239147046,"owners_count":19589529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["network-flow","python","test-synthesis"],"created_at":"2024-12-25T05:19:17.072Z","updated_at":"2025-10-31T07:32:08.693Z","avatar_url":"https://github.com/tulip-control.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Build Status\n[![MacOS Build with PDM](https://github.com/tulip-control/floras/actions/workflows/macos_build_pdm.yaml/badge.svg?branch=main)](https://github.com/tulip-control/floras/actions/workflows/macos_build_pdm.yaml)\n[![MacOS Build with conda](https://github.com/tulip-control/floras/actions/workflows/macos_build_conda.yaml/badge.svg?branch=main)](https://github.com/tulip-control/floras/actions/workflows/macos_build_conda.yaml)\n\n[![Ubuntu Build with PDM](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_pdm.yaml/badge.svg?branch=main)](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_pdm.yaml)\n[![Ubuntu Build with conda](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_conda.yaml/badge.svg?branch=main)](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_conda.yaml)\n\n[![codecov](https://codecov.io/gh/tulip-control/floras/graph/badge.svg?token=35W9GHZD3R)](https://codecov.io/gh/tulip-control/floras)\n[![Lint](https://github.com/tulip-control/floras/actions/workflows/lint.yaml/badge.svg)](https://github.com/tulip-control/floras/actions/workflows/lint.yaml)\n\n# Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/tulip-control/floras/refs/heads/main/docs/logo.png\" width=\"250\" /\u003e\n\u003c/p\u003e\n\nDetailed installation instruction and the user's guide can be found in the [floras documentation](https://floras.readthedocs.io).\n\n### Requirements\nFloras requires `Python\u003e=3.10,\u003c3.13` and a C++17-compliant compiler (for example `g++\u003e=7.0` or `clang++\u003e=5.0`).\nYou can check the versions by running `python --version` and `gcc --version`.\n\n#### Pre-installing Graphviz\nPlease pre-install [graphviz](https://graphviz.org) and [pygraphviz](https://pygraphviz.github.io).\nIf you are using a Mac, please install it via [brew](https://brew.sh) and [pip](https://pypi.org/project/pip/):\n```\nbrew install graphviz\npip install pygraphviz\n```\nOn Ubuntu, please install graphviz using these commands:\n```\nsudo apt-get install graphviz graphviz-dev\npip install pygraphviz\n```\n\n## Installing Floras\n\nTo install floras, please clone the repository:\n```\ngit clone https://github.com/tulip-control/floras.git\n```\nWe are using [pdm](https://pdm-project.org/en/latest/) to manage the dependencies.\n```\npip install pdm\n```\nNavigate to the repo to install floras and all required dependencies:\n```\ncd floras\npdm install\n```\nNext, install [spot](https://spot.lre.epita.fr/) by running:\n```\npdm run python get_spot.py\n```\nIf you are using [conda](https://conda.org/), instead of the above command, you can install spot directly from [conda-forge](https://conda-forge.org/) (this is faster). This does not work on MacOS, please use the above command to build spot in that case.\n```\nconda install -c conda-forge spot\n```\nIf the spot installation does not work, please install it according to the instructions on the [spot website](https://spot.lre.epita.fr/install.html).\n\nTo enter the virtual environment created by pdm:\n```\n$(pdm venv activate)\n```\nYou can test your installation by running the following command:\n```\npdm install -G tests\npdm run pytest -v tests\n```\n\nIf these instructions don't work for you, you can find more information about the installation process and troubleshooting, please visit [the floras documentation](https://floras.readthedocs.io/en/latest/installing/).\n\nYou can also build the documentation by running:\n```\npdm install -G docs\npdm run mkdocs build\n```\n\nThe floras repository contains implementations of the algorithms developed in the following paper:\n\n[Josefine B. Graebener*, Apurva S. Badithela*, Denizalp Goktas, Wyatt Ubellacker, Eric V. Mazumdar, Aaron D. Ames, and Richard M. Murray. \"Flow-Based Synthesis of Reactive Tests for Discrete Decision-Making Systems with Temporal Logic Specifications.\" ArXiv abs/2404.09888 (2024).](https://arxiv.org/abs/2404.09888)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftulip-control%2Ffloras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftulip-control%2Ffloras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftulip-control%2Ffloras/lists"}