Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
fastapi==0.6.4
gitpython
uvicorn==0.4.6
uvicorn==0.52.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Declared Python versions:"
fd -HI '^(pyproject\.toml|setup\.py|setup\.cfg|tox\.ini|\.python-version|Dockerfile.*|.*\.yml|.*\.yaml)$' . \
  -x rg -n 'requires-python|python_requires|python-version|FROM python|python:' {}

echo "Uvicorn usage:"
rg -n --glob '!src/requirements.txt' '\buvicorn\b|python[0-9.]*' .

Repository: salimfadhley/dockerized_python_playground

Length of output: 227


🏁 Script executed:

#!/bin/bash
set -u

echo "Top-level files:"
find . -maxdepth 3 -type f \( -name 'pyproject.toml' -o -name 'setup.py' -o -name 'setup.cfg' -o -name 'tox.ini' -o -name '.python-version' -o -iname 'dockerfile*' -o -iname '*.yml' -o -iname '*.yaml' -o -name 'requirements*.txt' -o -name 'README*' \) -print | sort

echo
echo "Python mentions in tracked/config files:"
git ls-files | rg -i '(^|/)(pyproject\.toml|setup\.py|setup\.cfg|tox\.ini|\.python-version|Dockerfile|docker-compose.*|.*\.ya?ml|requirements.*\.txt|README.*|.*\.md)$' | while read -r f; do
  if rg -n 'requires-python|python_requires|python-version|FROM python|python:|python[0-9.]+' "$f" >/tmp/matches.$$ 2>/dev/null; then
    echo "--- $f"
    cat /tmp/matches.$$
  fi
done
rm -f /tmp/matches.$$ || true

echo
echo "src/requirements.txt:"
if [ -f src/requirements.txt ]; then cat -n src/requirements.txt; fi

Repository: salimfadhley/dockerized_python_playground

Length of output: 499


🏁 Script executed:

#!/bin/bash
set -u

echo ".travis.yml:"
cat -n .travis.yml

echo
echo "docker-compose.yaml:"
cat -n docker-compose.yaml

echo
echo "Dockerfile:"
cat -n Dockerfile

echo
echo "src/setup.py:"
cat -n src/setup.py

echo
echo "src/requirements_dev.txt:"
if [ -f src/requirements_dev.txt ]; then cat -n src/requirements_dev.txt; fi

Repository: salimfadhley/dockerized_python_playground

Length of output: 2591


🏁 Script executed:

#!/bin/bash
set -u

echo "Uvicorn 0.52.0 metadata:"
python3 - <<'PY'
import json, urllib.request, sys
url="https://pypi.org/pypi/uvicorn/0.52.0/json"
try:
    with urllib.request.urlopen(url, timeout=20) as r:
        data=json.load(r)
except Exception as e:
    print(f"ERROR: {e}", file=sys.stderr)
    raise SystemExit(1)
info=data.get("info", {})
print("requires_python:", info.get("requires_python"))
print("classifiers:", [c for c in info.get("classifiers", []) if c.startswith("Programming Language :: Python")])
PY

echo
echo "Other requirements mentioning uvicorn/fastapi/hypercorn/daphne:"
rg -n '(?i)\b(uvicorn|fastapi|hypercorn|daphne|python)[0-9.\s=<>~=|^~]*' Dockerfile .travis.yml src/requirements*.txt src/setup.py

Repository: salimfadhley/dockerized_python_playground

Length of output: 936


🌐 Web query:

PyPI uvicorn 0.52.0 requires_python classifiers

💡 Result:

As of July 29, 2026, Uvicorn version 0.52.0 has not been released [1][2]. The latest available version on PyPI is 0.51.0, released on July 8, 2026 [3][4]. For Uvicorn version 0.51.0, the requires-python metadata is set to >=3.10 [3]. While previous versions of Uvicorn historically included a broad set of classifiers to support older Python versions [5], recent releases have updated their constraints to align with modern Python support requirements [3]. It is important to note that for Python packaging, requires-python is the metadata used by installers (like pip) to enforce installation compatibility [6]. Classifiers, while often used to display compatibility on PyPI, are primarily for searching and browsing and do not programmatically restrict installation [6].

Citations:


🏁 Script executed:

#!/bin/bash
set -u

echo "All requirements/config files:"
for f in Dockerfile .travis.yml docker-compose.yaml src/requirements.txt src/requirements_dev.txt src/setup.py; do
  if [ -f "$f" ]; then
    echo "--- $f"
    cat -n "$f"
  fi
done

echo
echo "Python constraints and versions across tracked files:"
git ls-files | xargs -r rg -n 'requires-python|python_requires|Programming Language :: Python :: (3\.|[^0-9])|python-version|language: python|python:[[:space:]]|\bpython[[:space:]]*[:=<>~^|][[:space:]]*[0-9]|FROM python|python:' || true

Repository: salimfadhley/dockerized_python_playground

Length of output: 2860


Align the Python floor with Uvicorn’s requirement.

uvicorn==0.52.0 is incompatible with Python 3.9 and older, while .travis.yml still declares Python 3.6. Add a python_requires/Travis-compatible release constraint and update or remove downstream 3.6/3.9 support before merging.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/requirements.txt` at line 3, Update the Python-version configuration
associated with uvicorn==0.52.0, including the .travis.yml runtime matrix, to
require a compatible Python release and remove or update Python 3.6 and 3.9
entries. Ensure the declared support floor matches Uvicorn’s requirement and
remains consistent across dependency and CI configuration.