# DATA MANAGEMENT & PROCESSING
# ============================

Dask >= 2023.6.0
Distributed >= 2023.6.0
Kedro >= 0.18.10; python_version < '3.11'
MetaFlow >= 2.9.5
NumBa >= 0.57.0
NumPy >= 1.23
  # let higher dependencies figure
Pandas >= 1.5
  # let higher dependencies figure
Pandarallel >= 1.6.5
PyArrow >= 12.0.1
PySpark >= 3.4.0
Ray >= 2.5.1; python_version < '3.11'
SciPy >= 1.10.1

Pillow >= 9.5.0
# Pillow-SIMD >= 9.0.0
  # complex to install
PyCOCOTools >= 2.0.6
SciKit-Image >= 0.21.0

XDF >= 23.6.14


# MACHINE LEARNING / DEEP LEARNING & RELATED
# ==========================================

Imbalanced-Learn >= 0.10.1
StatsModels >= 0.14.0

# SciKit-Learn & related
# Auto-SKLearn >= 0.15.0
  # depends on SciKit-Learn < 0.25
SciKit-Learn >= 1.2.2

# TensorFlow & related
TensorFlow >= 2.12.0; sys_platform != 'darwin'
TensorFlow-MacOS >= 2.12.0; (sys_platform == 'darwin') and (platform_release > '20.6.0')
TensorFlow-Metal >= 1.0.0; (sys_platform == 'darwin') and (platform_release > '20.6.0')
TensorFlow-DataSets >= 4.9.2
TensorFlow-Hub >= 0.13.0

# Torch & related
Torch >= 2.0.1
Torch-Model-Archiver >= 0.8.1
TorchServe >= 0.8.1

TorchAudio >= 2.0.2
TorchText >= 0.15.2
TorchVision >= 0.15.2

# Computer Vision
OpenCV-Python >= 4.7.0

# Hugging Face & related
DataSets >= 2.13.0
HuggingFace-Hub >= 0.15.1
Transformers >= 4.30.2

SentencePiece >= 0.1.99
TIMM >= 0.9.2
# Torch-Scatter >= 2.1.0
  # Table Question Answering - requires Torch first

# Fast AI
FastAI >= 2.7.12

# Topological Data Analysis (TDA) & related
Giotto-TDA >= 0.6.0; python_version < '3.11'  # TODO
GUDHI >= 3.8.0

# Cloud AI/ML Services
# Google-Cloud-Translate >= 3.11.1
  # conflicting/slow-resolving dependencies
GoogleTrans >= 4.0.0rc1

# Hyper-Parameter Tuning & related
Bayesian-Optimization >= 1.4.3
ConfigSpace >= 0.7.1
Hpbandster >= 0.7.4
Tabulate >= 0.9.0

# ML Model Explainability & related
CausalNex >= 0.12.0; python_version < '3.11'
  # depends on outdated SciPy, SciKit-Learn
LIME >= 0.2.0.1
SHAP >= 0.41.0

# ML Model Management
# MLFLow >= 2.3.2
  # depends on outdated PyArrow < 12


# NON-ML MODELING
# ===============

# Fuzzy Logic
SciKit-Fuzzy >= 0.4.2


# LARGE FOUNDATIONAL MODELS & related
# ===================================

AutoGPT >= 0.0.1.dev0
LangChain >= 0.0.208
OpenAI >= 0.27.8
PandasAI >= 0.6.2


# FILE SYSTEMS
# ============
FSSpec >= 2023.6.0


# MODEL REPOSITORY & RELATED
# ==========================
CloudPickle >= 2.2.1
JobLib >= 1.2.0


# DJANGO & RELATED APPLICATION DEVELOPMENT
# ========================================

# Django Core
Django >= 4.2.2

# Django Polymorphic Models
Django-Polymorphic >= 3.1.0

# Django Admin-related
Django-Admin-HStore-Widget >= 1.2.1
Django-Admin-Relation-Links >= 0.2.5
Django-ForestAdmin >= 1.5.0; python_version < '3.11'  # TODO
Django-Grappelli >= 3.0.6
Django-Jazzmin >= 2.6.0

# Django-AutoComplete-Light & related
Django-Autocomplete-Light >= 3.9.7
Django-Generic-M2M >= 0.3.1
Django-GM2M >= 1.1.1
Django-QuerySetSequence >= 0.16
Django-Tagging >= 0.5.0
Django-Taggit >= 4.0.0

# GraphQL
Ariadne >= 0.20.0
Django-GraphQL-Extensions >= 0.1.0
Django-RESTQL >= 0.15.3
GQL >= 3.4.1
Graphene >= 3.2.2
Graphene-Django >= 3.1.2
# Graphene-Django-Extras >= 0.5.2
  # conflicting/slow-resolving dependencies
Graphene-Django-Optimizer >= 0.9.1
# Graphene-Django-Subscriptions >= 0.0.9
  # conflicting/slow-resolving dependencies
# Graphene-Django-Tools >= 0.21.0
  # conflicting/slow-resolving dependencies
# Graphene-Mongo >= 0.2.14
  # conflicting/slow-resolving dependencies
# Graphene-SQLAlchemy >= 2.3.0
  # conflicting/slow-resolving dependencies
GraphQLClient >= 0.2.4
GraphQL-Core >= 3.2.3
GraphQL-Relay >= 3.2.0
Py-GQL >= 0.6.1
SGQLC >= 16.2
Strawberry-GraphQL >= 0.187.3

# Django REST Framework & other API-related
DjangoRESTFramework >= 3.14.0
DRFPasswordless >= 1.5.8
DRF-Writable-Nested >= 0.7.0
CoreAPI >= 2.3.3
  # closely related to Django REST Framework
CoreAPI-CLI >= 1.0.9
Markdown >= 3.4.3
  # Markdown support for the browsable API

# DjangoRESTFramework-JSONAPI >= 6.0.0
  # depends on outdated Django < 4.2
DRF-Nested-Routers >= 0.93.4
Django-PolyModels >= 1.8.0
Django-Typed-Models >= 0.13.0

HAL-Codec >= 1.0.2
JSONHyperSchema-Codec >= 1.0.3
OpenAPI-Codec >= 1.3.2

JSONSchema >= 4.17.3
Pyrsistent >= 0.19.3  # required by JSONSchema
Pydantic >= 1.10.9

HTTPie >= 3.2.2

# Django Filtering
Django-Filter >= 23.2
DjangoRESTFramework-Filters >= 1.0.0.dev2

# Django Object-Level Permissions
Django-Guardian >= 2.4.0
Rules >= 3.3

# Django Debugging & Query Profiling
Django-Debug-Toolbar >= 4.1.0
Django-Query-Profiler >= 0.9
Django-Silk >= 5.0.3
Kolo >= 2.10.0

# Django Extensions & Utilities
Django-Annoying >= 0.10.6
Django-Choices >= 1.7.2
Django-Compressor >= 4.3.1
Django-Configurations >= 2.4.1
Django-Crispy-Forms >= 2.0
Django-Environ >= 0.10.0
Django-Extensions >= 3.2.3
Django-JSON-Widget >= 1.1.1
Django-LocalFlavor >= 4.0
Django-Nested-InLines >= 0.1
Django-Storages >= 1.13.2

Django-Query-Graph >= 23.6.14
Dju >= 23.6.14

# Django CORS Headers
Django-CORS-Headers >= 4.1.0

# Application UIs
Django-HTMX >= 1.15.0

Django-Plotly-Dash >= 2.2.1
Dash-Bootstrap-Components >= 1.4.1
DPD-Static-Support >= 0.0.5
Django-Bootstrap4 >= 23.1
WhiteNoise >= 6.5.0

Gradio >= 3.35.2
Gradio-Tools >= 0.0.9

Streamlit >= 1.23.1
Watchdog >= 3.0.0

# Database Adapters/Backends/Connectors/Drivers
MariaDB-DynCol >= 3.6.1
Django-MySQL >= 4.10.0
MySQLClient >= 2.1.1
MySQL-Connector-Python >= 8.0.33
PsycoPG >= 3.1.9
PsycoPG2-binary >= 2.9.6

# ASGI Web Servers & related
ASGIRef >= 3.7.2
Channels >= 4.0.0
Daphne >= 4.0.0
GUnicorn >= 20.1.0
H11 >= 0.9
  # let higher dependencies figure
Hypercorn >= 0.14.3
Quart >= 0.18.4
Starlette >= 0.27
  # let higher dependencies figure
Uvicorn >= 0.22.0


# COMMAND-LINE INTERFACE (CLI)
# ============================
CLICK >= 8.1.3
Colored >= 2.1.1


# JUPYTER
# =======
Jupyter >= 1.0.0


# CLOUD
# =====

# Amazon Web Services (AWS)
S3FS >= 2023.6.0

# Microsoft Azure
ADLFS >= 2023.4.0

# Google Cloud Platform (GCP)
GCSFS >= 2023.6.0
GDriveFS >= 0.14.13

# Dropbox
DropboxDriveFS >= 1.3.1


# REACT JAVASCRIPT
# ================
ReactPy >= 1.0.1
ReactPy-Django >= 3.1.0
# ReactPy-Jupyter >= 0.9.5
  # very buggy
Packaging >= 23.1  # required by React-Jupyter


# MISC / OTHER
# ============
GitPython >= 3.1.31
Loguru >= 0.7.0
PSUtil >= 5.9.5
Python-DateUtil >= 2.8.2
Python-DotEnv >= 1.0.0
PyTZ >= 2023.3
Requests >= 2.31.0
Ruamel.YAML >= 0.17.32
Tqdm >= 4.65.0


# INDIRECT DEPENDENCIES: explicitly specify to avoid outdated versions
# ====================================================================
FastAPI >= 0.97.0
Pydantic >= 1.10.9
