diff --git a/build.cmd b/build.cmd
index 6f620ed5c4692c862ff27c82c9b02dc195e70251..4eea50f8edb0e2fc36c9328558415b80f5c55d4a 100644
--- a/build.cmd
+++ b/build.cmd
@@ -13,11 +13,7 @@ pip install -r requirements\docs.in  --log logfile2.txt
 pip install -r requirements\tests.in --log logfile3.txt
 pip install -r requirements\dev.in --log logfile4.txt
 
-rem pip install -r requirements\dev.in --force-reinstall --use-pep517 --no-cache-dir --compile --progress-bar pretty --log logfile1.txt
-rem pip install -r requirements\dev.in --use-pep517 --progress-bar pretty --log logfile1.txt
-rem pip install -e . --force-reinstall --use-pep517 --no-cache-dir --compile --progress-bar pretty --log logfile2.txt
-rem pip install -q build --implementation py  --python-version 3.8 --user --force-reinstall --use-pep517 --compile --progress-bar pretty
-
-pip install -e . --compile --force-reinstall --progress-bar pretty --log logfile5.txt
+#pip install -e . --compile --force-reinstall --progress-bar pretty --log logfile5.txt
+pip install -e . --compile --progress-bar pretty --log logfile5.txt
 
 python -m build --wheel
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 52cf28895a7e003e57585d625d270d0c8e0835c1..c773956fb0649a116061ff4da2abdcb11b0798fa 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -2,16 +2,12 @@
 # This file is autogenerated by pip-compile
 # To update, run:
 #
-#    pip-compile requirements/dev.in
+#    pip-compile 'requirements\dev.in'
 #
 aiocronjob==0.2.6
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 aiofiles==0.5.0
-    # via
-    #   aiocronjob
-    #   npmdownloader
-aiohttp==3.7.3
-    # via npmdownloader
+    # via aiocronjob
 alabaster==0.7.12
     # via sphinx
 alembic==1.5.4
@@ -22,11 +18,12 @@ appdirs==1.4.4
     # via virtualenv
 apscheduler==3.7.0
     # via flask-monitoring
-async-timeout==3.0.1
-    # via aiohttp
+argparse==1.4.0
+    # via pytoolbox
+atomicwrites==1.4.0
+    # via pytest
 attrs==19.3.0
     # via
-    #   aiohttp
     #   jsonschema
     #   plantuml-creator
     #   plantuml2freemind
@@ -38,20 +35,18 @@ babel==2.9.0
 billiard==3.6.3.0
     # via celery
 blinker==1.4
-    # via
-    #   -r requirements/tests.in
-    #   flask-whooshalchemy3
-brotli==1.0.9
-    # via flask-compress
+    # via flask-whooshalchemy3
 celery[redis]==5.0.5
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 certifi==2020.12.5
-    # via requests
+    # via
+    #   pipenv
+    #   requests
 cfgv==3.2.0
     # via pre-commit
 chardet==3.0.4
     # via
-    #   aiohttp
+    #   -r requirements\dev.in
     #   requests
 cleo==0.8.1
     # via plantuml2freemind
@@ -74,6 +69,10 @@ click==7.1.2
     #   uvicorn
 clikit==0.6.2
     # via cleo
+colorama==0.4.4
+    # via
+    #   pytest
+    #   sphinx
 colorhash==1.0.3
     # via flask-monitoring
 configparser==5.0.1
@@ -84,175 +83,135 @@ crontab==0.22.9
     # via aiocronjob
 cycler==0.10.0
     # via matplotlib
-dash-bootstrap-components==0.11.3
-    # via dtale
-dash-colorscales==0.0.4
-    # via dtale
-dash-core-components==1.15.0
-    # via dash
-dash-daq==0.5.0
-    # via dtale
-dash-extensions==0.0.45
-    # via -r requirements/dev.in
-dash-html-components==1.1.2
-    # via dash
-dash-table==4.11.2
-    # via dash
-dash==1.19.0
-    # via
-    #   -r requirements/dev.in
-    #   dash-bootstrap-components
-    #   dash-daq
-    #   dash-extensions
-    #   dtale
-dash_renderer==1.9.0
-    # via dash
-decorator==4.4.2
-    # via networkx
 distlib==0.3.1
     # via virtualenv
 docutils==0.16
     # via sphinx
 dominate==2.6.0
     # via flask-bs4
-dtale==1.34.0
-    # via -r requirements/dev.in
-et-xmlfile==1.0.1
-    # via openpyxl
 fastapi==0.55.1
     # via aiocronjob
-fasteners==0.16
-    # via npmdownloader
 filelock==3.0.12
     # via virtualenv
 flask-admin==1.5.7
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-babel==2.0.0
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\dev.in
+    #   -r requirements\docs.in
 flask-bs4==4.5.3.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-caching==1.9.0
-    # via
-    #   -r requirements/dev.in
-    #   dash-extensions
+    # via -r requirements\dev.in
 flask-checkr==0.1.2
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-ckeditor==0.4.4.1
-    # via -r requirements/dev.in
-flask-compress==1.8.0
-    # via
-    #   dash
-    #   dtale
+    # via -r requirements\dev.in
 flask-cors==3.0.10
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-db==0.3.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
+flask-filealchemy==0.6.1
+    # via -r requirements\docs.in
+flask-fixtures==0.3.8
+    # via -r requirements\tests.in
 flask-graphql==2.0.1
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-healthz==0.0.2
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-hintful==0.0.7
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-moment==0.11.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-monitoring==1.1.2
-    # via -r requirements/dev.in
-flask-ngrok==0.0.25
-    # via dtale
+    # via -r requirements\dev.in
 flask-pluginkit==3.6.0
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\dev.in
+    #   -r requirements\docs.in
 flask-pwa==0.1.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-redisboard==0.2.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-resources==0.6.0
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\dev.in
+    #   -r requirements\docs.in
 flask-responsebuilder==2.0.13
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\dev.in
+    #   -r requirements\docs.in
 flask-sqlalchemy==2.4.4
     # via
-    #   -r requirements/dev.in
+    #   -r requirements\dev.in
     #   flask-db
+    #   flask-filealchemy
+    #   flask-fixtures
     #   flask-whooshalchemy3
+    #   pytest-flask-sqlalchemy
+flask-unittest==0.1.1
+    # via -r requirements\tests.in
 flask-was==0.1.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-whooshalchemy3==0.2.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 flask-wtf==0.14.3
     # via flask-bs4
 flask==1.1.2
     # via
-    #   -r requirements/dev.in
-    #   dash
-    #   dtale
+    #   -r requirements\dev.in
     #   flask-admin
     #   flask-babel
     #   flask-bs4
     #   flask-caching
     #   flask-checkr
     #   flask-ckeditor
-    #   flask-compress
     #   flask-cors
     #   flask-db
+    #   flask-filealchemy
+    #   flask-fixtures
     #   flask-graphql
     #   flask-healthz
     #   flask-hintful
     #   flask-moment
     #   flask-monitoring
-    #   flask-ngrok
     #   flask-pluginkit
     #   flask-pwa
     #   flask-redisboard
     #   flask-resources
     #   flask-responsebuilder
     #   flask-sqlalchemy
+    #   flask-unittest
     #   flask-was
     #   flask-whooshalchemy3
     #   flask-wtf
     #   pytest-flask
-future==0.18.2
-    # via
-    #   dash
-    #   dtale
 graphql-core==2.3.2
     # via
     #   flask-graphql
     #   graphql-server-core
 graphql-server-core==1.2.0
     # via flask-graphql
-greenlet==1.0.0
-    # via -r requirements/tests.in
 h11==0.9.0
     # via uvicorn
 httplib2==0.19.0
     # via plantuml
-httptools==0.1.1
-    # via uvicorn
 identify==1.5.13
     # via pre-commit
 idna==2.10
-    # via
-    #   requests
-    #   yarl
+    # via requests
 imagesize==1.2.0
     # via sphinx
 importlib-metadata==1.3.0
     # via plantuml-creator
 itsdangerous==1.1.0
     # via
-    #   dtale
     #   flask
     #   flask-wtf
-jdcal==1.4.1
-    # via openpyxl
+jaraco.context==4.0.0
+    # via pytest-enabler
+jaraco.functools==3.2.1
+    # via pytest-enabler
 jinja2==2.11.3
     # via
     #   flask
@@ -272,8 +231,6 @@ jsonpointer==2.0
     # via jsonpatch
 jsonschema==3.2.0
     # via flask-checkr
-kaleido==0.1.0
-    # via dtale
 kiwisolver==1.3.1
     # via matplotlib
 kombu==5.0.2
@@ -282,12 +239,10 @@ llvmlite==0.35.0
     # via
     #   numba
     #   pynndescent
-lz4==3.1.3
-    # via dtale
 mako==1.1.4
     # via alembic
 manual-sitemap==19.6.0
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 markdown==3.3.3
     # via plantuml-markdown
 markupsafe==1.1.1
@@ -302,66 +257,48 @@ marshmallow==3.10.0
     #   openapi-specgen
 matplotlib==3.3.4
     # via statisticaldiagrams
+mirakuru==2.3.0
+    # via pytest-postgresql
 more-itertools==8.0.2
     # via
-    #   dash-extensions
+    #   jaraco.functools
     #   plantuml-creator
     #   pytest
+    #   pytest-enabler
     #   zipp
-multidict==5.1.0
-    # via
-    #   aiohttp
-    #   yarl
-networkx==2.5
-    # via dtale
-node-semver==0.8.0
-    # via npmdownloader
 nodeenv==1.5.0
     # via pre-commit
-npmdownloader==1.2.1
-    # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
 numba==0.52.0
     # via pynndescent
 numpy==1.20.1
     # via
-    #   -r requirements/dev.in
+    #   -r requirements\dev.in
     #   flask-monitoring
     #   matplotlib
     #   numba
     #   pandas
-    #   patsy
     #   scikit-learn
     #   scipy
     #   statisticaldiagrams
-    #   statsmodels
     #   torch
     #   visdom
-    #   xarray
 openapi-specgen==0.0.6
     # via flask-hintful
-openpyxl==3.0.6
-    # via dtale
 packaging==20.0
     # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
     #   pallets-sphinx-themes
     #   plantuml-creator
     #   pytest
+    #   pytest-flask-sqlalchemy
     #   sphinx
 pallets-sphinx-themes==1.2.3
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 pandas==1.2.2
-    # via
-    #   -r requirements/dev.in
-    #   dtale
-    #   ppscore
-    #   statsmodels
-    #   xarray
+    # via -r requirements\dev.in
 pastel==0.2.1
     # via clikit
-patsy==0.5.1
-    # via statsmodels
 pbr==3.1.1
     # via
     #   flask-whooshalchemy3
@@ -371,39 +308,48 @@ pillow==8.1.0
     #   matplotlib
     #   visdom
 pip-licenses==3.3.0
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 pip-tools==5.5.0
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\build.in
+    #   -r requirements\dev.in
+    #   -r requirements\docs.in
+pipenv==2020.11.15
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml-creator==1.0.7
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml-gentools==0.1.2
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml-markdown==3.4.2
     # via
-    #   -r requirements/dev.in
-    #   -r requirements/docs.in
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml-wrapper==0.1.0
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml2freemind==0.8.2
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 plantuml==0.3.0
     # via plantuml-markdown
-plotly==4.14.3
-    # via
-    #   dash
-    #   dtale
 pluggy==0.13.1
     # via
     #   plantuml-creator
     #   pytest
-ppscore==1.2.0
-    # via dtale
+port-for==0.4
+    # via pytest-postgresql
 pre-commit==2.10.1
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 prettytable==2.0.0
     # via
     #   pyecharts
@@ -415,24 +361,30 @@ promise==2.3
 prompt-toolkit==3.0.16
     # via click-repl
 psutil==5.8.0
-    # via flask-monitoring
+    # via
+    #   flask-monitoring
+    #   mirakuru
 psycopg2==2.8.6
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 ptable==0.9.2
     # via pip-licenses
 py2puml==0.3.1
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 py==1.8.1
     # via
     #   plantuml-creator
     #   pytest
+pyaml==20.4.0
+    # via pytoolbox
 pydantic==1.7.3
     # via fastapi
 pyecharts-extras==0.0.5
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 pyecharts==1.9.0
     # via
-    #   -r requirements/dev.in
+    #   -r requirements\dev.in
     #   pyecharts-extras
 pygments==2.8.0
     # via
@@ -441,7 +393,7 @@ pygments==2.8.0
 pylev==1.3.0
     # via clikit
 pynndescent==0.5.2
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 pyparsing==2.4.6
     # via
     #   httplib2
@@ -450,24 +402,51 @@ pyparsing==2.4.6
     #   plantuml-creator
 pyrsistent==0.17.3
     # via jsonschema
+pytest-enabler==1.2.0
+    # via -r requirements\tests.in
+pytest-flask-sqlalchemy==1.0.2
+    # via -r requirements\tests.in
 pytest-flask==1.1.0
-    # via -r requirements/tests.in
+    # via -r requirements\tests.in
+pytest-mock==3.5.1
+    # via pytest-flask-sqlalchemy
+pytest-postgresql==2.6.1
+    # via -r requirements\tests.in
+pytest-runner==5.3.0
+    # via -r requirements\tests.in
+pytest-venv==0.2.1
+    # via -r requirements\tests.in
 pytest==5.3.2
     # via
-    #   -r requirements/tests.in
+    #   -r requirements\tests.in
     #   plantuml-creator
     #   pytest-flask
+    #   pytest-flask-sqlalchemy
+    #   pytest-mock
+    #   pytest-postgresql
+    #   pytest-venv
 python-dateutil==2.8.1
     # via
     #   alembic
     #   matplotlib
     #   pandas
 python-dotenv==0.15.0
-    # via -r requirements/tests.in
+    # via -r requirements\tests.in
 python-editor==1.0.4
     # via alembic
+python-frontmatter==0.5.0
+    # via flask-filealchemy
+python-magic==0.4.22
+    # via pytoolbox
+pytoml==0.1.21
+    # via -r requirements\build.in
+pytoolbox==14.0.0
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 pytz==2020.5
     # via
+    #   -r requirements\dev.in
     #   aiocronjob
     #   apscheduler
     #   babel
@@ -475,43 +454,44 @@ pytz==2020.5
     #   flask-babel
     #   flask-monitoring
     #   pandas
+    #   pytoolbox
     #   tzlocal
 pyyaml==5.4.1
     # via
     #   flask-responsebuilder
     #   plantuml2freemind
     #   pre-commit
+    #   pyaml
+    #   python-frontmatter
 pyzmq==22.0.3
     # via visdom
 reactive-pyecharts==1.0.0
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 redis==3.5.3
     # via
     #   celery
     #   flask-redisboard
 requests==2.25.1
     # via
-    #   dtale
-    #   flask-ngrok
+    #   pytoolbox
     #   sphinx
     #   visdom
-retrying==1.3.3
-    # via plotly
+ruamel-yaml==0.16.12
+    # via
+    #   -r requirements\build.in
+    #   flask-filealchemy
+ruamel.yaml.clib==0.2.2
+    # via ruamel-yaml
 rx==1.6.1
     # via graphql-core
 scikit-learn==0.24.1
-    # via
-    #   dtale
-    #   ppscore
-    #   pynndescent
+    # via pynndescent
 scipy==1.6.0
     # via
-    #   -r requirements/dev.in
-    #   dtale
+    #   -r requirements\dev.in
     #   pynndescent
     #   scikit-learn
     #   statisticaldiagrams
-    #   statsmodels
     #   visdom
 semver==2.13.0
     # via flask-pluginkit
@@ -522,18 +502,15 @@ six==1.13.0
     #   apscheduler
     #   click-repl
     #   cycler
-    #   dtale
-    #   fasteners
     #   flask-cors
+    #   flask-fixtures
     #   graphql-core
     #   jsonschema
     #   packaging
-    #   patsy
     #   plantuml-creator
-    #   plotly
     #   promise
     #   python-dateutil
-    #   retrying
+    #   python-frontmatter
     #   sqlalchemy-utils
     #   virtualenv
     #   visdom
@@ -542,15 +519,15 @@ snowballstemmer==2.1.0
     # via sphinx
 speaklater==1.3
     # via
-    #   -r requirements/docs.in
+    #   -r requirements\docs.in
     #   flask-resources
 sphinx-issues==1.2.0
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 sphinx-tabs==2.0.1
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 sphinx==3.4.3
     # via
-    #   -r requirements/docs.in
+    #   -r requirements\docs.in
     #   pallets-sphinx-themes
     #   sphinx-issues
     #   sphinx-tabs
@@ -561,15 +538,15 @@ sphinxcontrib-applehelp==1.0.2
 sphinxcontrib-devhelp==1.0.2
     # via sphinx
 sphinxcontrib-gravizo==0.0.4
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 sphinxcontrib-htmlhelp==1.0.3
     # via sphinx
 sphinxcontrib-jsmath==1.0.1
     # via sphinx
 sphinxcontrib-log-cabinet==1.0.1
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 sphinxcontrib-plantuml==0.19
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 sphinxcontrib-qthelp==1.0.3
     # via sphinx
 sphinxcontrib-serializinghtml==1.1.4
@@ -578,44 +555,38 @@ sqlalchemy-utils==0.36.8
     # via flask-db
 sqlalchemy==1.3.23
     # via
-    #   -r requirements/dev.in
+    #   -r requirements\dev.in
     #   alembic
     #   flask-db
     #   flask-monitoring
     #   flask-sqlalchemy
     #   flask-whooshalchemy3
+    #   pytest-flask-sqlalchemy
     #   sqlalchemy-utils
-squarify==0.4.3
-    # via dtale
 starlette==0.13.2
     # via fastapi
 statisticaldiagrams==20.5
-    # via -r requirements/dev.in
-statsmodels==0.12.2
-    # via dtale
+    # via -r requirements\dev.in
 str2bool==1.1
     # via plantuml-creator
 stringcase==1.2.0
     # via plantuml-creator
-strsimpy==0.2.0
-    # via dtale
-test-flask==0.2.0
-    # via -r requirements/tests.in
 threadpoolctl==2.1.0
     # via scikit-learn
 tokenize-rt==4.1.0
-    # via -r requirements/docs.in
+    # via -r requirements\docs.in
 toml==0.10.2
-    # via pre-commit
+    # via
+    #   pre-commit
+    #   pytest-enabler
 torch==1.7.1
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 torchfile==0.1.0
     # via visdom
 tornado==6.1
     # via visdom
 typing-extensions==3.7.4.3
     # via
-    #   aiohttp
     #   plantuml2freemind
     #   torch
 tzlocal==2.1
@@ -626,16 +597,23 @@ urllib3==1.26.3
     # via requests
 uvicorn==0.11.8
     # via aiocronjob
-uvloop==0.15.0
-    # via uvicorn
+venv-run==0.1.0
+    # via -r requirements\build.in
 vine==5.0.0
     # via
     #   amqp
     #   celery
+virtualenv-clone==0.5.4
+    # via pipenv
 virtualenv==20.4.2
-    # via pre-commit
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
+    #   pipenv
+    #   pre-commit
+    #   pytest-venv
 visdom==0.1.8.9
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 visitor==0.1.3
     # via flask-bs4
 wcwidth==0.1.8
@@ -653,9 +631,11 @@ werkzeug==1.0.1
     #   flask
     #   pytest-flask
 wget==3.2
-    # via -r requirements/dev.in
+    # via -r requirements\dev.in
 wheel==0.36.2
-    # via -r requirements/docs.in
+    # via
+    #   -r requirements\build.in
+    #   -r requirements\docs.in
 whoosh==2.7.4
     # via flask-whooshalchemy3
 wtforms==2.3.3
@@ -663,14 +643,8 @@ wtforms==2.3.3
     #   flask-admin
     #   flask-bs4
     #   flask-wtf
-xarray==0.16.2
-    # via dtale
-xlrd==2.0.1
-    # via dtale
 xmltodict==0.12.0
     # via flask-responsebuilder
-yarl==1.6.3
-    # via aiohttp
 zipp==0.6.0
     # via
     #   importlib-metadata
diff --git a/setup.py b/setup.py
index 4e47bd3eadb32ef74b12ff8ed95c280942f91be1..1cbfac93b2ceb3bc2eb1f63a4cb16fdba5ba2453 100644
--- a/setup.py
+++ b/setup.py
@@ -490,7 +490,7 @@ setup(
         "Topic :: Database :: Frontends",
         "Framework :: Flask",
     ],
-    long_description=readme + os.linesep + os.linesep + history,
+    long_description=readme,
     long_description_content_type="text/markdown",
     keywords=keywords,
     packages=packages,