Base PyPi Package Requirements

Base PyPi Package Requirements
# -----------------------------------------------------------------------------
# written by: Lawrence McDaniel
#             https://lawrencemcdaniel.com
#
# usage:      The common platform requirements.
#
#             pip-compile smarter/requirements/in/base.in -o smarter/requirements/base.txt
# -----------------------------------------------------------------------------

-r constraints.in

# General back end
# ------------
whitenoise                              # general asset compression for both asgi and wsgi, and static file serving for wsgi
boto3                                   # AWS CLI SDK
botocore                                # AWS CLI SDK core
cachetools                              # Python object caching library
celery                                  # asynchronous task queue. works with redis.
celery-redbeat                          # scheduled asynchronous tasks
channels                                # web socket support for Django ASGI
channels-redis                          # Redis ASGI support
dnspython                               # DNS toolkit for Python
pymysql                                 # for Django mysql compatibility
paramiko                                # SSH2 protocol library
psutil                                  # a cross-platform library for retrieving information on running processes and system utilization
python-hcl2                             # Terraform hcl parser for reading Terraform tfvars files
python-dotenv                           # for reading environment variables from .env files
requests                                # HTTP requests library
requests-cache                          # HTTP requests caching
retry-requests                          # HTTP requests retry
tldextract                              # Extracts the top-level domain from a URL
validators                              # Data validation library
mailchimp-marketing                     # Mailchimp API, for adding people to the mailing list
pycountry                               # ISO country, subdivision, language, currency and their translations

# Django
# ------------
Django
django-debug-toolbar                    # a configurable set of panels that display various debug information about the current request/response.
                                        # We need this in base so that we can toggle DEBUG_MODE.
django-redis                            # object caching
django-celery-beat                      # scheduled asynchronous tasks
djangorestframework                     # for creating REST APIs on top of Django
django-filter                           # REST API filtering
django-hosts                            # Dynamic and static host resolving for Django. Maps hostnames to URLconfs.
django-taggit                           # Smarter Plugin tagging
django-rest-knox                        # Token authentication for REST APIs
django-cors-headers                     # Cross-origin resource sharing
django-storages                         # Django storage subsystem
django-waffle                           # Feature flagging
social-auth-app-django                  # Social authentication for Django

# Manifest support, and for working with data
# ------------
pandas                                  # Data manipulation for data science stuff
pydantic                                # best data validation library ever!
pydantic-settings                       # settings management
email-validator                         # Pydantic email validator for EmailStr
pint                                    # Define, operate and manipulate physical quantities:

# LLM support
# ------------
langchain~=1.2.0                        # -----------------------------
langchain_community                     # for pinecone vectorstore backend
langchain_openai                        #
langchain_pinecone                      #
langchain-text-splitters                # -----------------------------
openai~=2.31                            # OpenAI API
pinecone                                # Pinecone vector database support
google-genai                            # Google Generative AI API
llamaai                                 # Llama AI API
googlemaps                              # Google Maps API for weather function calling feature
openmeteo-requests                      # OpenMeteo API for weather data for weather function calling feature

# Natural language processing
# ------------
pyyaml                                  # YAML parser
python-Levenshtein                      # Levenshtein distance calculation for LLMs
nltk~=3.0                               # Natural Language Toolkit
textblob                                # Text processing library
inflect                                 # Pluralization and singularization

# CMS and web publishing tools
# ------------
beautifulsoup4                          # HTML parser for Wagtail page compression
docutils                                # required by Django for django.contrib.admindocs
drf-yasg                                # Swagger API documentation
lxml                                    # parser for Wagtail page compression
markdown                                # Markdown reader/parser
pillow                                  # for provider.Provider.logo: