# MSA Dependencies
msaFileSystem==0.0.3 # Agnostic Abstract Filesystem API which allows to use S3, GCS, Azure Datalake, your local FS, Youtube etc Optimized for use with FastAPI/Pydantic.
msaDocModels==0.0.101 # MSA Document Pydantic Models and Schemas, used to store Parser, NLP, NLU and AI results for processed documents

# FastAPI related Dependencies
anyio==3.7.1 # an asynchronous networking and concurrency library that works on top of either asyncio or trio
fastapi[all]==0.103.1 # FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi-restful==0.5.0 # Reusable utilities for FastAPI, Repeated Tasks, APIModel, APISettings
pydantic[email,dotenv]==2.3.0 # Data validation and settings management using python type hints


# General Dependencies
autoflake==2.2.1 # Removes unused imports and unused variables
black==23.7.0 # Code formatter
typing-inspect==0.9.0 # module defines experimental API for runtime inspection
pyproject-flake8==6.0.0 # configure flake8
flake8==6.0.0 # modular source code checker: pep8 pyflakes and co
colorama==0.4.6 # Makes ANSI escape character sequence
isort==5.12.0 # library to sort Python imports.
sentry-sdk==1.30.0 # library to automatic reporting of errors and exceptions.
loguru==0.7.1 # Python logging made (stupidly) simple
lxml==4.9.3 # Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
mypy==1.5.1 # Optional static typing for Python
setuptools==68.2.0 # Easily download, build, install, upgrade, and uninstall Python packages
prometheus_fastapi_instrumentator==6.1.0 # Instrument your FastAPI with Prometheus metrics
Jinja2==3.1.2 # A very fast and expressive template engine.
orjson==3.9.6 # Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
pyinstrument==4.5.3 # pyinstrument to check service performance.
msgpack-asgi==1.1.0 # Drop-in MessagePack support for ASGI applications and frameworks
slowapi==0.1.8 # A rate limiting extension for Starlette and Fastapi
addict==2.4.0 # A dictionary whose items can be set using both attribute and item syntax.
pymongo==4.5.0 # A Python distribution containing tools for working with MongoDB

# Dapr Dependencies
dapr==1.10.0 # Dapr is a portable, serverless, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge
dapr-ext-grpc==1.10.0 # gRPC extension for Dapr.
dapr-ext-fastapi==1.10.0 # Dapr is a portable, serverless, event-driven runtime

# File Management related libs
aiofiles==23.2.1 # handling local disk files in asyncio applications
fs==2.4.16 # Python's filesystem abstraction layer

# Starlette related Dependencies
starlette==0.27.0 # Starlette is a lightweight ASGI framework/toolkit, which is ideal for building async web services in Python.
starlette-context==0.3.6 # Access context in Starlette
starception==1.0.1 # Beautiful debugging page for Starlette apps.
Starlette-WTF==0.4.3 # Simple integration of Starlette and WTForms.

# Other Dependencies
httpx==0.24.1 # The next generation HTTP client.
aiohttp==3.8.5 # The next generation HTTP client.
hjson==3.1.0 # Hjson, a user interface for JSON.

# Uvicorn related Dependencies
uvicorn==0.23.2 # The lightning-fast ASGI server.
uvloop==0.17.0 # Fast implementation of asyncio event loop on top of libuv

# Sysinfo related libs
gputil==1.4.0 # Python module for getting the GPU status from NVIDA GPUs using nvidia-smi.
psutil==5.9.5 # Cross-platform lib for process and system monitoring in Python.

# Scheduler
apscheduler==3.10.4 # APScheduler is a Python library that lets you schedule your Python code to be executed later, either just once or periodically

# Testing
pytest==7.4.2 # Framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.
pytest-asyncio==0.21.1 # Library for testing asyncio code with pytest.
pytest-mock==3.11.1 # Library for mock data with pytest.