{"id":13720729,"url":"https://github.com/equinor/webviz-config","last_synced_at":"2025-04-12T22:34:32.075Z","repository":{"id":37933853,"uuid":"178350810","full_name":"equinor/webviz-config","owner":"equinor","description":"Make Dash applications from a user-friendly config file :book: :snake:","archived":false,"fork":false,"pushed_at":"2025-01-30T15:40:12.000Z","size":2373,"stargazers_count":56,"open_issues_count":108,"forks_count":39,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-04T03:04:26.902Z","etag":null,"topics":["dash","flask","plotly","visualization","webapp","yaml"],"latest_commit_sha":null,"homepage":"https://github.com/orgs/equinor/projects/24","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equinor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-29T07:01:40.000Z","updated_at":"2025-01-30T13:28:15.000Z","dependencies_parsed_at":"2024-01-29T09:04:40.499Z","dependency_job_id":"abec7c0d-06b9-427c-84ff-e6c214c1dd5e","html_url":"https://github.com/equinor/webviz-config","commit_stats":{"total_commits":330,"total_committers":21,"mean_commits":"15.714285714285714","dds":"0.38181818181818183","last_synced_commit":"f8054635df3d72062e4d309801916a1a5bdf0a9d"},"previous_names":[],"tags_count":131,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fwebviz-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fwebviz-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fwebviz-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Fwebviz-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equinor","download_url":"https://codeload.github.com/equinor/webviz-config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642035,"owners_count":21138320,"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":["dash","flask","plotly","visualization","webapp","yaml"],"created_at":"2024-08-03T01:01:07.429Z","updated_at":"2025-04-12T22:34:32.053Z","avatar_url":"https://github.com/equinor.png","language":"Python","funding_links":[],"categories":["Content","Software"],"sub_categories":["Platforms"],"readme":"\u003ch4\u003eThis package will be deprecated - we move instead all collaboration focus to the reusable React and Dash components in:\n\u003cul\u003e\n  \u003cli\u003ehttps://github.com/equinor/webviz-subsurface-components\u003c/li\u003e\n  \u003cli\u003ehttps://github.com/equinor/webviz-core-components\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/h2\u003e\n\n\u003chr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"150\" src=\"https://github.com/equinor/webviz-config/raw/master/webviz_config/_docs/static/webviz-logo.svg?sanitize=true\"\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eDemocratizing Python web applications\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://badge.fury.io/py/webviz-config\"\u003e\u003cimg src=\"https://badge.fury.io/py/webviz-config.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://equinor.github.io/webviz-config\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-passing-brightgreen\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/equinor/webviz-config/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/equinor/webviz-config.svg?color=dark-green\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/equinor/webviz-config/actions?query=branch%3Amaster\"\u003e\u003cimg src=\"https://github.com/equinor/webviz-config/workflows/webviz-config/badge.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://lgtm.com/projects/g/equinor/webviz-config/alerts/\"\u003e\u003cimg alt=\"Total alerts\" src=\"https://img.shields.io/lgtm/alerts/g/equinor/webviz-config.svg?logo=lgtm\u0026logoWidth=18\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://lgtm.com/projects/g/equinor/webviz-config/context:python\"\u003e\u003cimg alt=\"Language grade: Python\" src=\"https://img.shields.io/lgtm/grade/python/g/equinor/webviz-config.svg?logo=lgtm\u0026logoWidth=18\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12-blue.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\nWriting a [Dash web application](https://github.com/plotly/dash) gives a lot of flexibility, however, it also requires :snake: Python knowledge from the person setting it up.\n\n*Webviz™* is a MIT-licensed configuration layer on top of Dash, which encourages making reusable components and dashboards, which can then be added/removed when creating an application using a short [`yaml`](https://en.wikipedia.org/wiki/YAML) configuration file.\n\nThis Python package, `webviz-config`, is the core plugin framework. For a real example repository using this plugin system, see e.g. [`webviz-subsurface`](https://github.com/equinor/webviz-subsurface).\n\n**These are the main user groups targeted by *Webviz™*:**\n- **You do not know Python**, and only want to add different predefined dashboards or visualizations/components in a certain order and/or on different pages in the application. Optionally with some text and mathematical equations (that you provide) inbetween the  dashboards, explaining what the user is looking at.\n- **You know [Python](https://www.python.org/)**, and want to create generic or specialized dashboards you or other users can reuse by simply asking for it in the Webviz™ configuration file. This can be done without knowing JavaScript (see also [Dash](https://plot.ly/dash/) for more information).\n- **You know [React](https://reactjs.org/)**, and want to create highly specialized visualization which Python or pure config-file users can reuse.\n\n*Webviz™* will create web applications with very :lock: strict security headers and CSP settings, giving an rating of **A+** on e.g. [Mozilla observatory](https://observatory.mozilla.org/). It also facilitates a :whale: Docker setup, where the Python code can be ran completely unpriviliged in a sandbox (both with respect to file system access and network communication).\n\nExample configuration file and information about the standard plugins can be seen in [the documentation](https://equinor.github.io/webviz-config/).\n\n**The workflow can be summarized as this:**\n1) The user provides a :book: configuration file following the [yaml](https://en.wikipedia.org/wiki/YAML) standard.\n2) *Webviz™* reads the configuration file and automatically writes the corresponding :snake: Python code.\n3) The created application can be viewed locally, or deployed using :whale: Docker to a cloud provider. Both out of the box.\n\n![technical_drawing](https://user-images.githubusercontent.com/31612826/67282250-9f54fc80-f4d1-11e9-9f77-b352ec2710ed.png)\n\n---\n\n### Installation\n\nThe recommended and simplest way of installing `webviz-config` is to run\n```bash\npip install webviz-config\n```\n\nIf you want to develop `webviz-config` and install the latest source code manually you\ncan do something along the lines of:\n```bash\ngit clone git@github.com:equinor/webviz-config.git\ncd ./webviz-config\nnpm ci --ignore-scripts\n# NOTE: If you are on Windows, make sure to first set `npm`'s default `script-shell` to `powershell` by running\n# npm config set script-shell powershell\nnpm run postinstall\npip install -e .\n```\n\nAfter installation, there is a console script named `webviz` available. You can test the\ninstallation by using the provided example configuration file,\n```bash\nwebviz build ./examples/basic_example.yaml\n```\n\nWithout any additional arguments, this will\n1) create a temporary folder\n2) write the Python application code to that folder\n3) start a localhost server\n\nWhen stopping the server (press CTRL+C at any time), the temporary folder is deleted.\n\nThe optional arguments can be seen when running\n```bash\nwebviz --help\n```\n\n### Usage\n\nSee [the introduction](./INTRODUCTION.md) page for information on how you\ncreate a `webviz` configuration file and use it.\n\n### Creating new plugins\n\nIf you are interested in creating new plugins which can be configured through\nthe configuration file, take a look at the [contribution guide](./CONTRIBUTING.md).\n\nTo quickly get started, we recommend using the corresponding\n[cookiecutter template](https://github.com/equinor/webviz-plugin-boilerplate).\n\n### License\n\n`webviz-config` is, with a few exceptions listed below, [MIT](./LICENSE) licensed.\n\n- The [`webviz-config` logo](./webviz_config/_docs/static/webviz-logo.svg) is [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Fwebviz-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequinor%2Fwebviz-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Fwebviz-config/lists"}