# Siren
Siren is a simple DSL for creating [Mermaid](https://mermaid.js.org) graphs YAML.
Have a look at the docs here:
* [Docs](https://freymaurer.github.io/Siren/)
* [Blog post](https://freymaurer.github.io/Siren/blog/Library%20Design)
<table>
<thead>
<tr>
<th>Latest Release</th>
<th>Downloads</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a href="https://pypi.org/project/siren-dsl/">
<img src="https://img.shields.io/pypi/v/siren-dsl?logo=pypi" alt="latest release" />
</a>
</td>
<td>
<a href="https://pepy.tech/project/siren-dsl">
<img src="https://pepy.tech/badge/siren-dsl" alt="downloads" />
</a>
</td>
</tr>
<!-- js package -->
<tr>
<td>
<a href="https://www.npmjs.com/package/siren-dsl">
<img src="https://img.shields.io/npm/v/siren-dsl?logo=npm" alt="latest release" />
</a>
</td>
<td>
<a href="https://www.npmjs.com/package/siren-dsl">
<img src="https://img.shields.io/npm/dt/siren-dsl.svg" alt="downloads" />
</a>
</td>
</tr>
<!-- f# nuget package -->
<tr>
<td>
<a href="https://www.nuget.org/packages/Siren/">
<img src="https://img.shields.io/nuget/v/Siren?logo=nuget" alt="latest release" />
</a>
</td>
<td>
<a href="https://www.nuget.org/packages/Siren/">
<img src="https://img.shields.io/nuget/dt/Siren.svg" alt="downloads" />
</a>
</td>
<!-- c# nuget package "Siren.Sea" -->
</tr>
<tr>
<td>
<a href="https://www.nuget.org/packages/Siren.Sea/">
<img src="https://img.shields.io/nuget/v/Siren.Sea?logo=nuget" alt="latest release" />
</a>
</td>
<td>
<a href="https://www.nuget.org/packages/Siren.Sea/">
<img src="https://img.shields.io/nuget/dt/Siren.Sea.svg" alt="downloads" />
</a>
</td>
</tr>
</tbody>
</table>
---
> if you are interested in creating a Fable library like this on your own you can use the template [Fable.Multiverse](https://github.com/Freymaurer/Fable.Multiverse)!
---
## Contribution
If you have any ideas on how to improve the library, please feel free to contribute! The best way to get in contact is using the issues!
---
## Local Development
### Requirements
Because this library targets multiple programming languages we need to support all of them:
- [nodejs and npm](https://nodejs.org/en/download)
- verify with `node --version` (Tested with v20.10.0)
- verify with `npm --version` (Tested with v9.2.0)
- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
- verify with `dotnet --version` (Tested with 8.0.205)
- [Python](https://www.python.org/downloads/)
- verify with `py --version` (Tested with 3.11.9, known to work only for >=3.11)
### Setup
This needs to be done on a fresh download once. Paths for python venv executable might be different depending on the OS.
1. `dotnet tool restore`
2. `npm install`
3. `py -m venv ./.venv`
4. `.\.venv\Scripts\Activate.ps1`
5. `python -m pip install -U pip setuptools`
6. `python -m pip install poetry`
7. `python -m poetry install --no-root`
### Testing
First activate python virtual environment (`.\.venv\Scripts\Activate.ps1`).
`.\build.cmd test`
*or specify target*
`.\build.cmd test [f#, c#, js [native], py [native]]`
### Publish
Requires API keys for Nuget and PyPi.
The following command will run all tests, bundle and then start publishing!
`.\build.cmd publish pipeline`
*or only publish specific targets, without test and bundle*
`.\build.cmd publish [npm, pypi, nuget]`
Raw data
{
"_id": null,
"home_page": "https://github.com/Freymaurer/Siren",
"name": "siren-dsl",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "mermaid, dsl, fable, graphs",
"author": "Kevin Frey",
"author_email": "freymaurer@gmx.de",
"download_url": "https://files.pythonhosted.org/packages/30/03/0074c4705534e296fd776c145047c0cb6374101461b2d44ffb5309ad6dd6/siren_dsl-0.3.1.tar.gz",
"platform": null,
"description": "# Siren\n\nSiren is a simple DSL for creating [Mermaid](https://mermaid.js.org) graphs YAML.\n\nHave a look at the docs here:\n\n* [Docs](https://freymaurer.github.io/Siren/)\n* [Blog post](https://freymaurer.github.io/Siren/blog/Library%20Design)\n\n<table>\n <thead>\n <tr>\n <th>Latest Release</th>\n <th>Downloads</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <a href=\"https://pypi.org/project/siren-dsl/\">\n <img src=\"https://img.shields.io/pypi/v/siren-dsl?logo=pypi\" alt=\"latest release\" />\n </a>\n </td>\n <td>\n <a href=\"https://pepy.tech/project/siren-dsl\">\n <img src=\"https://pepy.tech/badge/siren-dsl\" alt=\"downloads\" />\n </a>\n </td>\n </tr>\n <!-- js package -->\n <tr>\n <td>\n <a href=\"https://www.npmjs.com/package/siren-dsl\">\n <img src=\"https://img.shields.io/npm/v/siren-dsl?logo=npm\" alt=\"latest release\" />\n </a>\n </td>\n <td>\n <a href=\"https://www.npmjs.com/package/siren-dsl\">\n <img src=\"https://img.shields.io/npm/dt/siren-dsl.svg\" alt=\"downloads\" />\n </a>\n </td>\n </tr>\n <!-- f# nuget package -->\n <tr>\n <td>\n <a href=\"https://www.nuget.org/packages/Siren/\">\n <img src=\"https://img.shields.io/nuget/v/Siren?logo=nuget\" alt=\"latest release\" />\n </a>\n </td>\n <td>\n <a href=\"https://www.nuget.org/packages/Siren/\">\n <img src=\"https://img.shields.io/nuget/dt/Siren.svg\" alt=\"downloads\" />\n </a>\n </td>\n <!-- c# nuget package \"Siren.Sea\" -->\n </tr>\n <tr>\n <td>\n <a href=\"https://www.nuget.org/packages/Siren.Sea/\">\n <img src=\"https://img.shields.io/nuget/v/Siren.Sea?logo=nuget\" alt=\"latest release\" />\n </a>\n </td>\n <td>\n <a href=\"https://www.nuget.org/packages/Siren.Sea/\">\n <img src=\"https://img.shields.io/nuget/dt/Siren.Sea.svg\" alt=\"downloads\" />\n </a>\n </td>\n </tr>\n </tbody>\n\n</table>\n\n\n---\n> if you are interested in creating a Fable library like this on your own you can use the template [Fable.Multiverse](https://github.com/Freymaurer/Fable.Multiverse)!\n---\n## Contribution\n\nIf you have any ideas on how to improve the library, please feel free to contribute! The best way to get in contact is using the issues! \n\n---\n## Local Development\n\n### Requirements\n\nBecause this library targets multiple programming languages we need to support all of them:\n\n- [nodejs and npm](https://nodejs.org/en/download)\n - verify with `node --version` (Tested with v20.10.0)\n - verify with `npm --version` (Tested with v9.2.0)\n- [.NET SDK](https://dotnet.microsoft.com/en-us/download)\n - verify with `dotnet --version` (Tested with 8.0.205)\n- [Python](https://www.python.org/downloads/)\n - verify with `py --version` (Tested with 3.11.9, known to work only for >=3.11)\n\n### Setup\n\nThis needs to be done on a fresh download once. Paths for python venv executable might be different depending on the OS.\n\n1. `dotnet tool restore`\n2. `npm install`\n3. `py -m venv ./.venv`\n4. `.\\.venv\\Scripts\\Activate.ps1`\n5. `python -m pip install -U pip setuptools`\n6. `python -m pip install poetry`\n7. `python -m poetry install --no-root`\n\n### Testing\n\nFirst activate python virtual environment (`.\\.venv\\Scripts\\Activate.ps1`).\n\n`.\\build.cmd test`\n\n*or specify target*\n\n`.\\build.cmd test [f#, c#, js [native], py [native]]`\n\n### Publish\n\nRequires API keys for Nuget and PyPi. \n\nThe following command will run all tests, bundle and then start publishing!\n\n`.\\build.cmd publish pipeline`\n\n*or only publish specific targets, without test and bundle*\n\n`.\\build.cmd publish [npm, pypi, nuget]`\n",
"bugtrack_url": null,
"license": null,
"summary": "A simple dsl for creating mermaid graphs!",
"version": "0.3.1",
"project_urls": {
"Homepage": "https://github.com/Freymaurer/Siren",
"Repository": "https://github.com/Freymaurer/Siren"
},
"split_keywords": [
"mermaid",
" dsl",
" fable",
" graphs"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6cac5b11e1ac531be83287047c8c8486ea87eef4bfb524ecba179eb08249da32",
"md5": "a13ba2c3b620cbdb78663754a457f2ed",
"sha256": "8de7f72fc592449a34a4f72c4feaf77181485d6683f74aa5a1b2caa930636dc0"
},
"downloads": -1,
"filename": "siren_dsl-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a13ba2c3b620cbdb78663754a457f2ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 155122,
"upload_time": "2024-06-04T12:28:49",
"upload_time_iso_8601": "2024-06-04T12:28:49.333948Z",
"url": "https://files.pythonhosted.org/packages/6c/ac/5b11e1ac531be83287047c8c8486ea87eef4bfb524ecba179eb08249da32/siren_dsl-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "30030074c4705534e296fd776c145047c0cb6374101461b2d44ffb5309ad6dd6",
"md5": "c35594c35f541911adee0d720ede396f",
"sha256": "7bafb1e5cac7b397d42ea9b4089b847cc386c9de055fbda13dad811909b7e9fa"
},
"downloads": -1,
"filename": "siren_dsl-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "c35594c35f541911adee0d720ede396f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 133338,
"upload_time": "2024-06-04T12:28:51",
"upload_time_iso_8601": "2024-06-04T12:28:51.386621Z",
"url": "https://files.pythonhosted.org/packages/30/03/0074c4705534e296fd776c145047c0cb6374101461b2d44ffb5309ad6dd6/siren_dsl-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-04 12:28:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Freymaurer",
"github_project": "Siren",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "siren-dsl"
}