Skip to content
Merged
Show file tree
Hide file tree
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
30 changes: 15 additions & 15 deletions .github/workflows/quality-assurance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure Python 3.10
- name: Configure Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Validate Python Syntax
run: |
# Performs bytecode compilation to detect syntax issues
Expand All @@ -34,7 +34,7 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Style Checkers
run: pip install black isort
- name: Validate Black Code Formatting
Expand All @@ -54,7 +54,7 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Code Analyzer
run: pip install flake8
- name: Execute Flake8 Analysis
Expand All @@ -73,7 +73,7 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Type Checker
run: pip install mypy
- name: Execute Type Analysis
Expand All @@ -89,7 +89,7 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Security Scanner
run: pip install bandit[toml]
- name: Execute Security Scan
Expand All @@ -105,7 +105,7 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Audit Tool
run: pip install pip-audit
- name: Execute Dependency Audit
Expand All @@ -114,16 +114,16 @@ jobs:
pip install -r requirements.txt
pip-audit --desc

# Validations 7-9: Test Suite Execution Matrix (Python 3.10-3.12)
# Validations 7-8: Test Suite Execution Matrix (Python 3.11-3.12)
execute-tests:
name: Test Suite - Python ${{ matrix.python-version }}
needs: [validate-syntax]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Removed "3.13" from here
python-version: ["3.10", "3.11", "3.12"]
# Python >=3.11 required due to Pillow >=13.0.0
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Configure Python ${{ matrix.python-version }}
Expand All @@ -148,7 +148,7 @@ jobs:
echo "️ No test directory found, skipping test execution"
fi

# Validation 10: Package Build Verification
# Validation 9: Package Build Verification
verify-package:
name: Package Build Verification
needs: [execute-tests]
Expand All @@ -158,9 +158,9 @@ jobs:
- name: Configure Python Environment
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install Packaging Tools
run: pip install build twine
run: pip install build twine setuptools wheel
- name: Create MANIFEST.in
run: |
cat > MANIFEST.in << 'EOF'
Expand All @@ -180,7 +180,7 @@ jobs:
requirements_file = 'requirements.txt'
if os.path.exists(requirements_file):
with open(requirements_file) as f:
return [line.strip() for line in f if line.strip() and not line.startswith('#')]
return [line.split('#')[0].strip() for line in f if line.split('#')[0].strip()]
return []

# Read README safely
Expand All @@ -196,7 +196,7 @@ jobs:
version="1.0.0",
packages=find_packages(exclude=['tests', 'tests.*']),
install_requires=read_requirements(),
python_requires='>=3.10',
python_requires='>=3.11',
author="Professor Profiler Team",
description="Multi-agent exam analysis system powered by Google Gemini",
long_description=read_readme(),
Expand Down
2 changes: 1 addition & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Welcome to **Professor Profiler**! This guide will walk you through setting up t
## 1. Prerequisites

Before starting, ensure you have the following installed on your system:
- **Python 3.10+**
- **Python 3.11+**
- **Node.js 18+** (Required only for the interactive CLI)
- **Git**

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ flowchart TD

| Component | Technology | Description |
| :--- | :--- | :--- |
| **Core Logic** | Python 3.10+ | Type-hinted, async-native codebase. |
| **Core Logic** | Python 3.11+ | Type-hinted, async-native codebase. |
| **LLM Provider** | NVIDIA NIM | OpenAI-compatible endpoint hosting high-performance open models. |
| **Fallback Engine** | Google Gemini | Rollback path when NIM fails or for comparison testing. |
| **Document Processing** | `pypdf` | Robust text extraction from exam PDFs. |
Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
google-genai==0.3.0
google-genai==0.8.0 # ponytail: upgraded to resolve pillow>=13.0.0 conflict
openai==1.3.0
pypdf==4.0.0
matplotlib==3.8.0
Expand All @@ -9,3 +9,4 @@ redis==5.0.1
pytest==8.0.0
pytest-asyncio==0.23.5
reportlab==4.0.9 # For generating sample exam PDFs
pillow>=13.0.0 # not directly required, pinned by Snyk to avoid a vulnerability
Loading