Custom Dash components for use in Webviz
Project description
Webviz subsurface components
webviz_subsurface_components
is a Dash/React component library for use in webviz
,
which have in common that they are geared towards subsurface dashboards. There storybook is available at https://equinor.github.io/webviz-subsurface-components/storybook-static.
And the demo of old components is available at https://equinor.github.io/webviz-subsurface-components.
How to install the components
You can quickly get started using the components in Dash by:
- Run
pip install webviz-subsurface-components
- Run
python examples/example_hm.py
- Visit http://localhost:8050 in your web browser
This project was originally generated by the dash-component-boilerplate. (with some modifications).
If you are only interested in using the JavaScript code in your own JavaScript project,
you can install the npmjs
deployed version:
npm i @webviz/subsurface-components
How to contribute
Install dependencies
If you want to build and develop yourself, you should fork + clone the repository, and then:
- Install npm packages
npm ci --ignore-scripts --prefix ./react
- Run some potentially optional postinstall scripts
npm run setup-deckgl-types --prefix ./react # only needed if ignored scripts during install npm run copy-package-json --prefix ./react # only needed if building Dash components
- Install python packages required to build components.
pip install .[dependencies] pip install dash[dev]
- Install the python packages for testing.
The second of these commands appears to be necessary as long as thispip install .[tests] pip install dash[testing]
pip
issue is open.
Write component code in src/lib/components/<component_name>/<component_name>.jsx
-
The demo app is in
src/demo
and is where you will import an example of your component. To start the existing demo app, runnpm start
. -
To test your code in a Python environment:
- Build your code
npm run build --prefix ./react
- Install the Python pacakge in development mode (if not already done and
assuming you are using a virtual environment):
pip install -e .
- Create a new example in
examples/
which uses your new component.
- Build your code
-
Write tests for your component.
- Tests exist in
tests/
. Take a look at them to see how to write tests using the Dash test framework. - Run the tests with
pytest tests
.
- Tests exist in
-
Add custom styles to your component by putting your custom CSS files into your distribution folder (
webviz_subsurface_components
).- Make sure that they are referenced in
MANIFEST.in
so that they get properly included when you're ready to publish your component. - Make sure the stylesheets are added to the
_css_dist
dict inwebviz_subsurface_components/__init__.py
so dash will serve them automatically when the component suite is requested.
- Make sure that they are referenced in
-
Every file related to the component should be located in the component directory, unless the file is shared between multiple components. For example the file-structure should look something like this:
src
|--lib
|----<component_name>
|----components
|----<sub_component>.ts
|----utils
|----<component_name>.tsx
|----<component_name>.css
|----index.ts
Automatically upload demo application
This repository has a GitHub workflow which can automatically build and deploy a demo app with your changes, to GitHub pages.
- On push to your feature branch, in your fork, the workflow will build and deploy a
demo app to your fork's GitHub page, given that your commit message includes the
substring
[deploy test]
. - On merge to
master
in the main repository, a build + deploy will be done to the official GitHub page in the main repository.
For this to work in your own fork, you will need to create a branch gh-pages
(this you only need to do once). One way of creating this branch is e.g.:
git checkout --orphan gh-pages
git rm -rf .
git commit --allow-empty -m "Create GitHub pages branch"
git push origin gh-pages
You are encouraged to rebase and squash/fixup unnecessary commits before pull request is merged to master
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for webviz_subsurface_components-0.4.13.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20400d519de5e93549af4e50ad169d858bbab99d7cda1aade969ee6d1b2a6f72 |
|
MD5 | 14d77636b788e4c38da4b23f87cad721 |
|
BLAKE2b-256 | 8bd02d0228a4ce02d9660fb643250b176e583549cbb6f363d48f50204cd5fe9b |
Hashes for webviz_subsurface_components-0.4.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6f192e0c8c941a5e3e78f708a6da589bec02d2fd3a88ec33da5bf3c10e2e9d1 |
|
MD5 | ed3e5f8a63d98067ff2360c1c3442dd6 |
|
BLAKE2b-256 | 52681b2bb94f03f8ac4a9a4a3ded7ac1dec89cf1329bd0ea3b61fc2548d6cfaa |