# JINA PACKAGE DEPENDENCIES
#
# Essential: only 5, they are labeled with `core`: docarray, numpy, grpcio, protobuf, pyyaml. They will be installed
#           when you do `pip install jina`. They are essential to run 90% features & functionalities of Jina.
# Extensions: they are labeled with different tags. They will NOT be installed by default. One can install a group of
#           of dependencies labeled `tag` by `pip install "jina[tag]"`
#
# FILE FORMAT
# https://hanxiao.io/2019/11/07/A-Better-Practice-for-Managing-extras-require-Dependencies-in-Python/
# Put your extra requirements here in the following format
#
# package[version]: tag1, tag2, ...
#
#
# REMARKS ON TAGS
# 1. Try to reuse the existing tags if possible.
#    If you intend to create a new tag, keep it alphabetical, short and general
# 2. Package name itself is a tag already, so you don't need to tag it again.
#    For example, 'numpy>=0.4.1: numpy' is redundant
# 3. Tag order doesn't matter; case-sensitive; duplicated tag will be ignored
# 4. Tag `all` is reserved for representing all packages

# AVAILABLE TAGS:
# core < perf < standard < devel: these tags correspond to Docker image tag
# test: required for **setting up test ENVIRONMENT**


numpy:                      core
protobuf>=3.19.1,<=3.20.1:  core
grpcio>=1.46.0:             core
grpcio-reflection>=1.46.0:  core
pyyaml>=5.3.1:              core
packaging>=20.0:            core
docarray>=0.13.14:          core
lz4<3.1.2:                  perf, standard,devel
uvloop:                     perf, standard,devel
prometheus_client:          perf, standard,devel
fastapi>=0.76.0:            standard,devel
uvicorn[standard]:          standard,devel
docarray[common]>=0.13.14:  standard,devel
docker:                     standard,devel
pathspec:                   standard,devel
cryptography:               standard,devel
filelock:                   standard,devel
requests:                   standard,devel
websockets:                 standard,devel
pydantic:                   standard,devel
python-multipart:           standard,devel
aiofiles:                   standard,devel
aiohttp:                    standard,devel
aiostream:                  standard,devel
scipy>=1.6.1:               test
Pillow:                     test
pytest:                     test
pytest-timeout:             test
pytest-mock:                test
pytest-cov:                 test
coverage==6.2:              test
pytest-repeat:              test
pytest-asyncio:             test
pytest-reraise:             test
flaky:                      test
mock:                       test
requests-mock:              test
pytest-custom_exit_code:    test
black==22.3.0:              test
kubernetes>=18.20.0:        test
pytest-kind==21.1.3:        test
pytest-lazy-fixture:        test
torch:                      cicd
psutil:                     test
strawberry-graphql>=0.96.0: cicd, devel
sgqlc:                      cicd, devel
bs4:                        cicd
jsonschema:                 cicd
portforward>=0.2.4:         cicd
tensorflow>=2.0:            cicd