sdsstools>=0.4
sdss-tree>=3.0.7
sdss-access>=1.0
marvin-brain>=0.2
marvin-sqlalchemy-boolean-search>=0.2
marvin-wtforms-alchemy>=0.16.9
astropy>=3.3
fuzzywuzzy>=0.15.0
python-Levenshtein>=0.12.0
raven>=5.32.0
packaging>=20.1
yamlordereddictloader>=0.2.2
scipy>=0.18.1
pandas>=0.18.1
matplotlib>=1.5.3
webargs<6.0,>=1.5.2
Flask-JWT-Extended<4.0,>=3.8.1
dogpile.cache>=0.6.2

[db]
pgpasslib>=1.1.0
psycopg2>=2.6.2
Flask-Login>=0.4.1
sqlalchemy<1.4,>=1.3

[dev]
Sphinx<4.0,>=2.1.0
sphinx_bootstrap_theme>=0.4.12
sphinxcontrib-httpdomain>=1.5.0
sphinx_issues>=1.0.0
sphinx-rtd-theme>=0.4.2
nbsphinx>=0.3.5
photutils>=0.7
mpl-scatter-density>=0.4
jupyter_client>=5.2.3
ipykernel>5
ipython>=7.9.0
matplotlib>=3.1.1
flake8>=3.7.9
doc8>=0.8.0
pytest>=5.2.2
pytest-cov>=2.8.1
pytest-sugar>=0.9.2
pytest-remotedata>=0.3.2
pytest-flask>=0.10.0
pytest-xdist>=1.18.1
pytest-timeout>=1.2.0
isort>=4.3.21
coveralls>=1.1
codecov>=2.0.15
coverage[toml]>=5.0
ipdb>=0.12.3
invoke>=1.3.0
twine>=3.1.1
wheel>=0.33.6
uwsgi>=2.0.15
psycopg2>=2.6.2
selenium>=3.3.1
page_objects>=1.1.0
decorator>=4.1.2
pympler>=0.5
mpl-scatter-density>=0.4
msgpack>=0.5.4
msgpack-numpy>=0.4.2
Flask-Testing>=0.6.1

[docs]
Sphinx<4.0,>=2.1.0
sphinx_bootstrap_theme>=0.4.12
sphinxcontrib-httpdomain>=1.5.0
sphinx_issues>=1.0.0
sphinx-rtd-theme>=0.4.2
nbsphinx>=0.3.5
photutils>=0.7
mpl-scatter-density>=0.4
jupyter_client>=5.2.3
ipykernel>5

[extra]

[web]
blinker>=1.4
Flask-JSGlue>=0.3
Flask-FeatureFlags>=0.6
Flask-Compress>=1.4
Flask-Limiter>=0.9.4
flask-profiler>=1.0.1
Flask-Caching>=1.4.0
Flask-Login>=0.4.1
Flask-Cors>=3.0.8
Flask-Session>=0.3.1
redis>=3.3
uwsgi>=2.0.15
validators>=0.10.3
intervals>=0.8.0
