# Shell text coloring
# https://github.com/tartley/colorama/blob/master/CHANGELOG.rst
colorama

# The Python web framework on which NetBox is built
# https://docs.djangoproject.com/en/stable/releases/
Django==6.0.*

# Django middleware which permits cross-domain API requests
# https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst
django-cors-headers

# Runtime UI tool for debugging Django
# https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst
django-debug-toolbar

# Library for writing reusable URL query filters
# https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst
django-filter

# Django Debug Toolbar extension for GraphiQL
# https://github.com/flavors/django-graphiql-debug-toolbar/blob/main/CHANGES.rst
django-graphiql-debug-toolbar

# HTMX utilities for Django
# https://django-htmx.readthedocs.io/en/latest/changelog.html
django-htmx

# Modified Preorder Tree Traversal (recursive nesting of objects)
django-mptt

# Context managers for PostgreSQL advisory locks
# https://github.com/Xof/django-pglocks/blob/main/CHANGELOG.md
# django-pglocks has been merged into django-pgware (see #22571)
django-pglocks==1.0.4

# Prometheus metrics library for Django
# https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md
# TODO: 2.4.1 is incompatible with Django>=6.0, but a fixed release is expected
# https://github.com/django-commons/django-prometheus/issues/494
django-prometheus>=2.4.0,<2.5.0,!=2.4.1

# Django caching backend using Redis
# https://github.com/jazzband/django-redis/blob/master/CHANGELOG.rst
django-redis

# Django extensions for Rich (terminal text rendering)
# https://github.com/adamchainz/django-rich/blob/main/CHANGELOG.rst
django-rich

# Django integration for RQ (Reqis queuing)
# https://github.com/rq/django-rq/blob/master/CHANGELOG.md
django-rq

# Provides a variety of storage backends
# https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst
django-storages

# Abstraction models for rendering and paginating HTML tables
# https://github.com/jieter/django-tables2/blob/master/CHANGELOG.md
# See #21902 for upgrading to django-tables2 v2.9+
django-tables2<2.9

# User-defined tags for objects
# https://github.com/jazzband/django-taggit/blob/master/CHANGELOG.rst
django-taggit

# A Django field for representing time zones
# https://github.com/mfogel/django-timezone-field/
django-timezone-field

# A REST API framework for Django projects
# https://www.django-rest-framework.org/community/release-notes/
# TODO: Re-evaluate the monkey-patch of get_unique_validators() before upgrading
djangorestframework==3.17.1

# Sane and flexible OpenAPI 3 schema generation for Django REST framework.
# https://github.com/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst
drf-spectacular

# Serve self-contained distribution builds of Swagger UI and Redoc with Django.
# https://github.com/tfranzel/drf-spectacular-sidecar
drf-spectacular-sidecar

# RSS feed parser
# https://github.com/kurtmckee/feedparser/blob/develop/CHANGELOG.rst
feedparser

# WSGI HTTP server
# https://gunicorn.org/news/
gunicorn

# Platform-agnostic template rendering engine
# https://jinja.palletsprojects.com/changes/
Jinja2

# JSON schema validation
# https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst
jsonschema

# Simple markup language for rendering HTML
# https://python-markdown.github.io/changelog/
Markdown

# Retain MkDocs 1.x for mkdocstrings
# https://github.com/mkdocs/mkdocs
mkdocs<2.0

# MkDocs Material theme (for documentation build)
# https://squidfunk.github.io/mkdocs-material/changelog/
mkdocs-material

# Introspection for embedded code
# https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md
mkdocstrings

# Python handler for mkdocstrings
# https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md
mkdocstrings-python

# Library for manipulating IP prefixes and addresses
# https://github.com/netaddr/netaddr/blob/master/CHANGELOG.rst
netaddr

# Python bindings to the ammonia HTML sanitization library.
# https://github.com/messense/nh3
nh3

# Fork of PIL (Python Imaging Library) for image processing
# https://github.com/python-pillow/Pillow/releases
# https://pillow.readthedocs.io/en/stable/releasenotes/
Pillow

# PostgreSQL database adapter for Python
# https://github.com/psycopg/psycopg/blob/master/docs/news.rst
psycopg[c,pool]

# YAML rendering library
# https://github.com/yaml/pyyaml/blob/master/CHANGES
PyYAML

# redis-py
# https://github.com/redis/redis-py
# Default protocol changes to RESP3 in v8.0; see #22388
redis<8.0

# Requests
# https://github.com/psf/requests/blob/main/HISTORY.md
requests

# rq
# https://github.com/rq/rq/blob/master/CHANGES.md
rq

# Django app for social-auth-core
# https://github.com/python-social-auth/social-app-django/blob/master/CHANGELOG.md
social-auth-app-django

# Social authentication framework
# https://github.com/python-social-auth/social-core/blob/master/CHANGELOG.md
# Need to verify that v4.9.0 does not introduce breaking changes (see #22095)
social-auth-core==4.8.*

# Image thumbnail generation
# https://github.com/jazzband/sorl-thumbnail/blob/master/CHANGES.rst
sorl-thumbnail

# Strawberry GraphQL
# https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md
strawberry-graphql

# Strawberry GraphQL Django extension
# https://github.com/strawberry-graphql/strawberry-django/releases
strawberry-graphql-django

# SVG image rendering (used for rack elevations)
# https://github.com/mozman/svgwrite/blob/master/NEWS.rst
svgwrite

# Tabular dataset library (for table-based exports)
# Current: https://github.com/jazzband/tablib/releases
# Previous: https://github.com/jazzband/tablib/blob/master/HISTORY.md
tablib

# Timezone data (required by django-timezone-field on Python 3.9+)
# https://github.com/python/tzdata/blob/master/NEWS.md
tzdata

# Documentation builder (succeeds mkdocs)
# https://github.com/zensical/zensical
zensical
