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

# FastAPI related Dependencies
fastapi[all]>=0.85.0 # FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi_utils>=0.2.1 # Reusable utilities for FastAPI, Repeated Tasks, APIModel, APISettings
pydantic[email,dotenv]~=1.9.2 # Data validation and settings management using python type hints
pyinstrument>=4.3.0 # pyinstrument to check service performance.


# General Dependencies
autoflake>=1.6.1 # Removes unused imports and unused variables
black>=22.8.0 # Code formatter
pyproject-flake8>=5.0.4 # configure flake8
flake8>=5.0.4 # modular source code checker: pep8 pyflakes and co
colorama>=0.4.6 # Makes ANSI escape character sequence
isort>=5.10.1 # library to sort Python imports.
loguru>=0.6.0 # Python logging made (stupidly) simple
lxml>=4.9.1 # Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
mypy>=0.971 # Optional static typing for Python
setuptools>=65.2.0 # Easily download, build, install, upgrade, and uninstall Python packages
prometheus_fastapi_instrumentator>=5.9.1 # Instrument your FastAPI with Prometheus metrics
Jinja2>=3.1.2 # A very fast and expressive template engine.
orjson>=3.8.0 # Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
pyinstrument>=4.3.0 # pyinstrument to check service performance.
msgpack-asgi>=1.1.0 # Drop-in MessagePack support for ASGI applications and frameworks
slowapi>=0.1.6 # 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.

# Dapr Dependencies
dapr~=1.7.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.7.0 # gRPC extension for Dapr.
dapr-ext-fastapi~=1.7.0 # Dapr is a portable, serverless, event-driven runtime

# File Management related libs
aiofiles>=22.1.0 # handling local disk files in asyncio applications
fs>=2.4.16 # Python's filesystem abstraction layer
fs.webdavfs~=0.4.2 # WebDAV support
fs-dlk~=0.1.3 # Azure Datalake support
fs-s3fs~=1.1.1 # Amazon S3 filesystem support
fs-gcsfs~=1.5.1 # Google Cloud Storage (GCS) support
fs.googledrivefs~=2.3.0 # Google Drive support
fs.dropboxfs~=0.2.2.post2 # Dropbox support
fs.onedrivefs~=1.1.1 # OneDrive support
fs.youtube~=0.3.1 # Youtube support
fs.smbfs~=1.0.5 # SMB support

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

# Other Dependencies
httpx~=0.23.0 # The next generation HTTP client.
aiohttp>=3.8.3 # The next generation HTTP client.
hjson~=3.1.0 # Hjson, a user interface for JSON.

# Uvicorn related Dependencies
uvicorn~=0.18.3 # 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.2 # Cross-platform lib for process and system monitoring in Python.

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

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