This project was generated by the dash-component-boilerplate it contains the minimal set of code required to create your own custom Dash component.
Thank you for your interest in contributing to Dash JBrowse. This short guide will help you get started.
git clone https://github.com/GMOD/dash_jbrowse
cd dash_jbrowse
yarn
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r tests/requirements.txt #optional testing
python usage.py
Visit http://localhost:8050 in your web browser
This will start a flask server with a configured dash_jbrowse component. Check out our README for documentation.
-
Install npm packages
$ npm install
-
Create a virtual env and activate (you can also use conda).
$ python3 -m venv venv $ source venv/bin/activate
-
Install python packages required to build components.
$ pip install -r requirements.txt $ pip install -r tests/requirements.txt #optional testing
- 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:
- Build your code
$ npm run build
- Run and modify the
usage.py
sample dash app:$ python usage.py
- Build your code
- Write tests for your component.
- A sample test is available in
tests/test_usage.py
, it will loadusage.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)
- A sample test is available in
- Add custom styles to your component by putting your custom CSS files into your
distribution folder (
dash_jbrowse
).- 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 indash_jbrowse/__init__.py
so dash will serve them automatically when the component suite is requested.
- Make sure that they are referenced in