{ "info": { "author": "Stefan Klikovits", "author_email": "crestdsl@klikovits.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\n

\n\n

\n\n# **CREST** - A Continuous REactive SysTems DSL\n\n[![Build Status](https://travis-ci.org/crestdsl/CREST.svg?branch=master)](https://travis-ci.org/crestdsl/CREST) \n[![PyPI](https://img.shields.io/pypi/v/crestdsl.svg?color=blue)](https://pypi.org/project/crestdsl/)\n[![Documentation Status](https://readthedocs.org/projects/crestdsl/badge/?version=latest)](https://crestdsl.readthedocs.io/?badge=latest)\n[![codecov](https://codecov.io/gh/crestdsl/CREST/branch/master/graph/badge.svg)](https://codecov.io/gh/crestdsl/CREST)\n(I know, I know, I'm really busy though...)\n\n[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/crestdsl/CREST/master)\n<-- Launch this repository and play with CREST directly in your browser!\n\n---\n\n## Introduction\n\nCREST is a novel modelling language for the definition of Continuous-time, REactive SysTems.\nIt is a domain-specific language (DSL) targets small cyber-physical systems (CPS) such as home automation systems.\nSpecifically, it focusses on the flow and transfer of resources within a CPS.\nWhile CREST is a graphical language and its systems can be visualised as CREST diagrams, \nthe main form of use is as internal DSL for the Python general purpose programming language.\n\n\n## Try me !\n\nCREST uses [Docker](https://www.docker.com/), [Jupyter](https://jupyter.org) notebooks and [Binder](https://mybinder.readthedocs.io/en/latest/) to create, edit and simulate interactive models online.\n\nYou can try CREST yourself by clicking on [this link](https://mybinder.org/v2/gh/crestdsl/CREST/master) (or on the \"launch binder\" badge above).\n\nYou will find several notebooks that will introduce CREST's\n[Syntax & Semantics](https://mybinder.org/v2/gh/crestdsl/CREST/master?filepath=Syntax-Semantics.ipynb) and [Simulation](https://mybinder.org/v2/gh/stklik/CREST/master?filepath=Simulation.ipynb).\nYou can also just launch the docker container on binder (click the badge) and create a new notebook. \nYou can then create and simulate your own models.\n\n\n## Installation\n\n**Recommended:** Download/clone this repository and use the sources.\nThe easiest way is to use the latest version of CREST is to either launch it on Binder (see above),\nor create a local Docker image (`scripts/docker-build.sh`) and then run it (`scripts/docker-run.sh`).\nAlternatively you can use [`repo2docker`](https://github.com/jupyter/repo2docker).\n\n**Local install:** You can also use CREST locally and install the dependencies manually. See the [Dockerfile](./Dockerfile) for information about the tools and libraries that are used. CREST also requires Microsoft's [Z3Prover](https://github.com/Z3Prover) to be installed (including the Python API).\n\n**Soon:** A pip-install is in the pipelines but has been delayed due to publication season :-)\n\n\n---\n\n## Publications\n\n
\n \n Stefan Klikovits, Au\u00e9lien Coet and Didier Buchs:\n ML4CREST: Machine Learning for CPS Models .\n 2nd International Workshop on Model Driven Engineering for the Internet-of-Things (MDE4IOT), Copenhagen, 2018\n \n
\n@InProceedings{Klikovits:MDE4IOT:ML4CREST,\n    title = {{ML4CREST}: Machine Learning for CPS Models},\n    author = {Stefan Klikovits and Aur\\'{e}lien Coet and Didier Buchs},\n    booktitle = {2nd International Workshop on Model Driven Engineering for the Internet-of-Things (MDE4IOT), Copenhagen, Denmark, October 15, 2018. Proceedings},\n    year = {2018},\n}\n    
\n
\n\n
\n \n Stefan Klikovits, Alban Linard and Didier Buchs:\n CREST - A DSL for Reactive Cyber-Physical Systems.\n 10th System Analysis and Modeling Conference (SAM) 2018\n \n
\n@InProceedings{Klikovits:SAM18:CREST,\n    title = {{CREST} - A {DSL} for Reactive Cyber-Physical Systems},\n    author = {Stefan Klikovits and Alban Linard and Didier Buchs},\n    booktitle = {10th International System Analysis and Modeling Conference (SAM 2018), Copenhagen, Denmark, October 15-16, 2018. Proceedings},\n    year = {2018},\n    pages = {29-45},\n    isbn = {978-3-030-01041-6}\n}\n    
\n
\n\n
\n\nStefan Klikovits, Alban Linard, and Didier Buchs: \n CREST Formalization. \nTechnical Report. Software Modeling and Verification Group, University of Geneva. 2018\n\n
\n@techreport{Klikovits:CRESTFormalization:2018,\n    author = {Stefan Klikovits and Alban Linard and Didier Buchs},\n    title = {{CREST} Formalization},\n    institution = {Software Modeling and Verification Group, University of Geneva},\n    doi = {10.5281/zenodo.1284561},\n    year = {2018}\n}\n
\n
\n\n\n
\n\n Stefan Klikovits, Alban Linard, Didier Buchs:\n CREST - A Continuous, REactive SysTems DSL. \n MODELS (Satellite Events) 2017: 286-291\n\n
\n@inproceedings{Klikovits:CREST:Gemoc:2017,\n  author    = {Stefan Klikovits and\n               Alban Linard and\n               Didier Buchs},\n  title     = {{CREST} - {A} Continuous, REactive SysTems {DSL}},\n  booktitle = {Proceedings of {MODELS} 2017 Satellite Event: Workshops (ModComp,\n               ME, EXE, COMMitMDE, MRT, MULTI, GEMOC, MoDeVVa, MDETools, FlexMDE,\n               MDEbug), Posters, Doctoral Symposium, Educator Symposium, {ACM} Student\n               Research Competition, and Tools and Demonstrations co-located with\n               {ACM/IEEE} 20th International Conference on Model Driven Engineering\n               Languages and Systems {(MODELS} 2017), Austin, TX, USA, September,\n               17, 2017.},\n  pages     = {286--291},\n  year      = {2017},\n  url       = {http://ceur-ws.org/Vol-2019/gemoc\\_2.pdf}\n}\n
\n
\n\n---\n\n### Thanks\n * to Prof. Didier Buchs and the University of Geneva or enabling me to do this research project\n * to the [Jupyterhub](https://github.com/orgs/jupyterhub/people) and [Binder](https://mybinder.org) teams for providing their amazing service\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/crestdsl/CREST", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "crestdsl", "package_url": "https://pypi.org/project/crestdsl/", "platform": "", "project_url": "https://pypi.org/project/crestdsl/", "project_urls": { "Homepage": "https://github.com/crestdsl/CREST" }, "release_url": "https://pypi.org/project/crestdsl/0.5.2/", "requires_dist": [ "importlib-resources", "colored (>=1.3)", "methoddispatch (>=2)", "matplotlib", "graphviz", "pygraphviz (>=1.5)", "astor (>=0.7)", "pandas (>0.1)", "numpy", "networkx (>=2.2)", "plotly (>=3.5)", "cufflinks (>=0.14)", "pwlf (>=0.3)", "importnb", "sklearn" ], "requires_python": "", "summary": "A Continuous REactive SysTems DSL", "version": "0.5.2", "yanked": false, "yanked_reason": null }, "last_serial": 6040190, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bca74d18f62fc0f7881ca55a65b58da2", "sha256": "e6593470aa8f417c08bca58da4b0605a358fe5a71f5889bcb49bc3c88ac018e8" }, "downloads": -1, "filename": "crestdsl-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bca74d18f62fc0f7881ca55a65b58da2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 93709, "upload_time": "2019-01-20T16:34:21", "upload_time_iso_8601": "2019-01-20T16:34:21.086479Z", "url": "https://files.pythonhosted.org/packages/a8/89/d4d1255e798e487f2319d60af7a928ac7561e5302b06a90730389458f90b/crestdsl-0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "70b1c18dfbdd0ffd7777663942a05b12", "sha256": "8a00a99b3dc906ca0d51e0e9b21ffd65f2aca46bd508317bcce18597d842daa1" }, "downloads": -1, "filename": "crestdsl-0.1.tar.gz", "has_sig": false, "md5_digest": "70b1c18dfbdd0ffd7777663942a05b12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76696, "upload_time": "2019-01-20T16:34:23", "upload_time_iso_8601": "2019-01-20T16:34:23.186277Z", "url": "https://files.pythonhosted.org/packages/b9/92/8f9e663a8734b2cd731c4798f25a464f29657fd0f0535f8e180f475a099a/crestdsl-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3c8c1c02f7be007dd4d9c908bf782bd4", "sha256": "d110c6670415589c5e18e26cb8ca6f25afb2dc8cf890757edf9df1d8a09538a2" }, "downloads": -1, "filename": "crestdsl-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3c8c1c02f7be007dd4d9c908bf782bd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 93068, "upload_time": "2019-01-23T21:19:29", "upload_time_iso_8601": "2019-01-23T21:19:29.447366Z", "url": "https://files.pythonhosted.org/packages/59/35/c20bd82abf2a43c48187a608eb5b6095a41513575d2f743457fc2349e307/crestdsl-0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b31a8ffbf29484360b97c294cb5a0de8", "sha256": "76e14dff8cd9f74696f6c5c5020e3353331a0dd070b6cf67a50a8f9c80013672" }, "downloads": -1, "filename": "crestdsl-0.2.tar.gz", "has_sig": false, "md5_digest": "b31a8ffbf29484360b97c294cb5a0de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77045, "upload_time": "2019-01-23T21:19:31", "upload_time_iso_8601": "2019-01-23T21:19:31.156737Z", "url": "https://files.pythonhosted.org/packages/93/78/ac21d3de8fd13b347c674a27cb098f820ed1aad639421afbac20ff0a29f2/crestdsl-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "abb12102057bf9f1aa4d48fa9b0b4a74", "sha256": "53b55bddf45bf69c15a973f5613867fcee3558226f43edc7fdb88a7242b0a11d" }, "downloads": -1, "filename": "crestdsl-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "abb12102057bf9f1aa4d48fa9b0b4a74", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 141255, "upload_time": "2019-03-30T09:47:15", "upload_time_iso_8601": "2019-03-30T09:47:15.200293Z", "url": "https://files.pythonhosted.org/packages/77/22/e8d2b5fbc28a04128ab593a2fce8131edca9141ac307bc550087e20b90e2/crestdsl-0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "42f1afdc5fbb12eb2ed322862a31ed17", "sha256": "20104b03e32119a13688b59425039c0c5055adc40a1fa013ef548cf6b1077d03" }, "downloads": -1, "filename": "crestdsl-0.3.tar.gz", "has_sig": false, "md5_digest": "42f1afdc5fbb12eb2ed322862a31ed17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111739, "upload_time": "2019-03-30T09:47:17", "upload_time_iso_8601": "2019-03-30T09:47:17.375165Z", "url": "https://files.pythonhosted.org/packages/1f/ab/65f10b8266a2d1b30b9426998a392d5b68b68e0a38277ad6d5da22a55fd8/crestdsl-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5": [ { "comment_text": "", "digests": { "md5": "43d185162bdaeb44ca6bbb436eb22400", "sha256": "515d1f8aae0d03842ed6face2d9bd6983ff23fd0586d193a0ef762663818896f" }, "downloads": -1, "filename": "crestdsl-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "43d185162bdaeb44ca6bbb436eb22400", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 181569, "upload_time": "2019-04-24T00:09:07", "upload_time_iso_8601": "2019-04-24T00:09:07.927892Z", "url": "https://files.pythonhosted.org/packages/f7/af/d9f0d38a1a653b40137f25924153ec1af0b7ac4713f9cfd9b9c99077f066/crestdsl-0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "965734a32149000e4ed15cb5dde03c64", "sha256": "1a8f1724e49dee8c30f39ccc978e257305b6a12f80b787e34c732666d001678a" }, "downloads": -1, "filename": "crestdsl-0.5.tar.gz", "has_sig": false, "md5_digest": "965734a32149000e4ed15cb5dde03c64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145172, "upload_time": "2019-04-24T00:09:10", "upload_time_iso_8601": "2019-04-24T00:09:10.983341Z", "url": "https://files.pythonhosted.org/packages/39/93/49cd2e87c3e3a0a9eb60e2a98e9d9d0553f5698149c909df69e7b46fd6d2/crestdsl-0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "a5bd8aadaf32083b2ea99e55f8739565", "sha256": "e1e1b9924d33cc07b191beddc720f72d9dc8e3a54e66080d34fecc7772d27c42" }, "downloads": -1, "filename": "crestdsl-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a5bd8aadaf32083b2ea99e55f8739565", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 172454, "upload_time": "2019-04-27T16:18:09", "upload_time_iso_8601": "2019-04-27T16:18:09.118784Z", "url": "https://files.pythonhosted.org/packages/92/30/930fbf08782c7ecbb45cc71bc407bf79d1a7cc2b9b1a51857c0eb57e8d67/crestdsl-0.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "db6c665841f695081b2f992251aa1b95", "sha256": "df362d2a0ea1b09e830bfa9e41821ef0fc0f04530fb6b0db3d4d0d162a240140" }, "downloads": -1, "filename": "crestdsl-0.5.1.tar.gz", "has_sig": false, "md5_digest": "db6c665841f695081b2f992251aa1b95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137277, "upload_time": "2019-04-27T16:18:13", "upload_time_iso_8601": "2019-04-27T16:18:13.658793Z", "url": "https://files.pythonhosted.org/packages/c2/a5/e75a29afbcd27217ded73f165bc710dce65edbe340b857e6ce6e84d13bd8/crestdsl-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "d701fed7cc6bc2df581a0fc897f9b910", "sha256": "d7ae351f9c6efa579295db054eb26dcbb7a82b8cb9c162034d497d04eddd92b1" }, "downloads": -1, "filename": "crestdsl-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d701fed7cc6bc2df581a0fc897f9b910", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 191715, "upload_time": "2019-10-28T09:07:16", "upload_time_iso_8601": "2019-10-28T09:07:16.532351Z", "url": "https://files.pythonhosted.org/packages/5a/5e/f71ffb172d81229a8e5fc7d22d9910c0b767d7563b8dfa861f765b4f5e70/crestdsl-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2fd460e577b6b3d9428bda81a5a94b87", "sha256": "ebb72630cc384642e240eb53114ed5156573b6407603769b081c39313bb6a298" }, "downloads": -1, "filename": "crestdsl-0.5.2.tar.gz", "has_sig": false, "md5_digest": "2fd460e577b6b3d9428bda81a5a94b87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159006, "upload_time": "2019-10-28T09:07:17", "upload_time_iso_8601": "2019-10-28T09:07:17.992502Z", "url": "https://files.pythonhosted.org/packages/16/2a/cc5b62f3f47125eaffdb2b724f605010e1cc30dd2b3152db934c47bb1cc0/crestdsl-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d701fed7cc6bc2df581a0fc897f9b910", "sha256": "d7ae351f9c6efa579295db054eb26dcbb7a82b8cb9c162034d497d04eddd92b1" }, "downloads": -1, "filename": "crestdsl-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d701fed7cc6bc2df581a0fc897f9b910", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 191715, "upload_time": "2019-10-28T09:07:16", "upload_time_iso_8601": "2019-10-28T09:07:16.532351Z", "url": "https://files.pythonhosted.org/packages/5a/5e/f71ffb172d81229a8e5fc7d22d9910c0b767d7563b8dfa861f765b4f5e70/crestdsl-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2fd460e577b6b3d9428bda81a5a94b87", "sha256": "ebb72630cc384642e240eb53114ed5156573b6407603769b081c39313bb6a298" }, "downloads": -1, "filename": "crestdsl-0.5.2.tar.gz", "has_sig": false, "md5_digest": "2fd460e577b6b3d9428bda81a5a94b87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159006, "upload_time": "2019-10-28T09:07:17", "upload_time_iso_8601": "2019-10-28T09:07:17.992502Z", "url": "https://files.pythonhosted.org/packages/16/2a/cc5b62f3f47125eaffdb2b724f605010e1cc30dd2b3152db934c47bb1cc0/crestdsl-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }