-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3715932
commit e7dbc61
Showing
8 changed files
with
106 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,90 +1,83 @@ | ||
# webviz_subsurface_components | ||
|
||
webviz_subsurface_components is a Dash component library for use in webviz. | ||
`webviz_subsurface_components` is a Dash component library for use in `webviz`. | ||
|
||
Get started with: | ||
1. Install Dash and its dependencies: https://dash.plot.ly/installation | ||
2. Run `python examples/example_hm.py` | ||
3. Visit http://localhost:8050 in your web browser | ||
You can quickly get started with: | ||
|
||
1. Run `pip install webviz-subsurface-components` | ||
2. Run `python examples/example_hm.py` | ||
3. Visit http://localhost:8050 in your web browser | ||
|
||
## Contributing | ||
|
||
See [CONTRIBUTING.md](./CONTRIBUTING.md) | ||
This project was generated by the | ||
[dash-component-boilerplate](https://github.com/plotly/dash-component-boilerplate). | ||
It contains the minimal set of code required to create a custom Dash component. | ||
|
||
### Install dependencies | ||
|
||
If you have selected install_dependencies during the prompt, you can skip this part. | ||
|
||
1. Install npm packages | ||
``` | ||
$ npm install | ||
npm install | ||
``` | ||
2. Create a virtual env and activate. | ||
``` | ||
$ virtualenv venv | ||
$ . venv/bin/activate | ||
virtualenv venv | ||
. venv/bin/activate | ||
``` | ||
_Note: venv\Scripts\activate for windows_ | ||
3. Install python packages required to build components. | ||
``` | ||
$ pip install -r requirements.txt | ||
pip install .[dependencies] | ||
``` | ||
4. Install the python packages for testing (optional) | ||
``` | ||
$ pip install -r tests/requirements.txt | ||
pip install .[tests] | ||
``` | ||
### Write your component code in `src/lib/components/<component_name>.react.js`. | ||
### Write component code in `src/lib/components/<component_name>.react.js` | ||
- The demo app is in `src/demo` and you will import your example component code into your demo app. | ||
- Test your code in a Python environment: | ||
1. Build your code | ||
``` | ||
$ npm run build:all | ||
npm run build:all | ||
``` | ||
2. Run and modify the `usage.py` sample dash app: | ||
``` | ||
$ python usage.py | ||
python usage.py | ||
``` | ||
- Write tests for your component. | ||
- A sample test is available in `tests/test_usage.py`, it will load `usage.py` and you can then automate interactions with selenium. | ||
- Run the tests with `$ pytest tests`. | ||
- The Dash team uses these types of integration tests extensively. Browse the Dash component code on GitHub for more examples of testing (e.g. https://github.com/plotly/dash-core-components) | ||
- 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 in `webviz_subsurface_components/__init__.py` so dash will serve them automatically when the component suite is requested. | ||
- [Review your code](./review_checklist.md) | ||
### Create a production build and publish: | ||
1. Build your code: | ||
``` | ||
$ npm run build:all | ||
- Write tests for your component. | ||
- A sample test is available in `tests/test_usage.py`, it will load | ||
`usage.py` and you can then automate interactions with selenium. | ||
- Run the tests with `pytest tests`. | ||
- The Dash team uses these types of integration tests extensively. | ||
Browse the Dash component code on GitHub for more examples of testing | ||
(e.g. [dash-core-components](https://github.com/plotly/dash-core-components)). | ||
- 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 in | ||
`webviz_subsurface_components/__init__.py` so dash will serve them | ||
automatically when the component suite is requested. | ||
- [Review your code](./review_checklist.md) | ||
### Build code and install | ||
1. Build your code: | ||
``` | ||
2. Create a Python tarball | ||
npm run build:all | ||
``` | ||
$ python setup.py sdist | ||
2. Install the Python package: | ||
``` | ||
This distribution tarball will get generated in the `dist/` folder | ||
3. Test your tarball by copying it into a new environment and installing it locally: | ||
python setup.py install | ||
``` | ||
$ pip install webviz_subsurface_components-0.0.1.tar.gz | ||
``` | ||
4. If it works, then you can publish the component to NPM and PyPI: | ||
1. Cleanup the dist folder (optional) | ||
``` | ||
$ rm -rf dist | ||
``` | ||
2. Publish on PyPI | ||
``` | ||
$ twine upload dist/* | ||
``` | ||
3. Publish on NPM (Optional if chosen False in `publish_on_npm`) | ||
``` | ||
$ npm publish | ||
``` | ||
_Publishing your component to NPM will make the JavaScript bundles available on the unpkg CDN. By default, Dash servers the component library's CSS and JS from the remote unpkg CDN, so if you haven't published the component package to NPM you'll need to set the `serve_locally` flags to `True` (unless you choose `False` on `publish_on_npm`). We will eventually make `serve_locally=True` the default, [follow our progress in this issue](https://github.com/plotly/dash/issues/284)._ | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
{ | ||
"name": "webviz_subsurface_components", | ||
"version": "0.0.1", | ||
"description": "Custom Dash components for use in Webviz", | ||
"main": "build/index.js", | ||
"scripts": { | ||
|
@@ -15,7 +14,7 @@ | |
"build:all-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:all)", | ||
"test": "jest" | ||
}, | ||
"author": "R&T Equinor [email protected]", | ||
"author": "R&T Equinor", | ||
"license": "LGPL", | ||
"dependencies": { | ||
"d3": "^5.9.2", | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,56 @@ | ||
import json | ||
import os | ||
import json | ||
from setuptools import setup | ||
|
||
|
||
with open('README.md', 'r') as fh: | ||
long_description = fh.read() | ||
|
||
with open(os.path.join('webviz_subsurface_components', 'package.json')) as f: | ||
package = json.load(f) | ||
|
||
package_name = package["name"].replace(" ", "_").replace("-", "_") | ||
package_name = package['name'].replace(' ', '_').replace('-', '_') | ||
|
||
install_requires = [ | ||
'dash>=0.38.0', | ||
] | ||
|
||
tests_require = [ | ||
'chromedriver-binary', | ||
'ipdb', | ||
'percy', | ||
'selenium', | ||
'flake8', | ||
'pylint', | ||
'pytest-dash>=2.1.1' | ||
] | ||
|
||
setup( | ||
name=package_name, | ||
version=package["version"], | ||
author=package['author'], | ||
packages=[package_name], | ||
include_package_data=True, | ||
license=package['license'], | ||
description=package['description'] if 'description' in package else package_name, | ||
install_requires=[] | ||
description=package['description'], | ||
long_description=long_description, | ||
long_description_content_type='text/markdown', | ||
url='https://github.com/equinor/webviz-subsurface-components', | ||
install_requires=install_requires, | ||
tests_require=tests_require, | ||
extras_require={ | ||
'tests': tests_require, | ||
'dependencies': install_requires | ||
}, | ||
setup_requires=['setuptools_scm>=3.2.0'], | ||
use_scm_version=True, | ||
classifiers=[ | ||
'Programming Language :: Python :: 3', | ||
'Operating System :: OS Independent', | ||
'Natural Language :: English', | ||
'Topic :: Multimedia :: Graphics', | ||
'Topic :: Scientific/Engineering', | ||
'Topic :: Scientific/Engineering :: Visualization', | ||
'License :: OSI Approved :: '\ | ||
'GNU Lesser General Public License v3 (LGPLv3)' | ||
] | ||
) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters