AOSSIE-Org / AOSSIE-Org/PictoPy
BUG: Missing 'requests' in requirements.txt causes ModuleNotFoundError in API utils
- Lenguaje dominante
- Python
- Estrellas
- 284
- Forks
- 680
- Merge medio
- 7 d 5 h
- PR fusionados (30 d)
- 4
Descripción
In backend/app/utils/API.py, line 1 imports requests:
import requests
from app.config.settings import SYNC_MICROSERVICE_URL
However, requests is neither listed in backend/requirements.txt nor in PyInstaller's PictoPy.spec hiddenimports.
As a result, running tests (such as tests/test_folders.py) or invoking backend functions that trigger sync microservice restarts on a clean virtual environment fails with:
ModuleNotFoundError: No module named 'requests'
Steps to Reproduce
Set up a fresh virtual environment.
Install dependencies using pip install -r backend/requirements.txt.
Run pytest tests/test_folders.py.
Observe test collection failure due to ModuleNotFoundError: No module named 'requests'.
Proposed Solution
Since the project already standardizes on httpx (pinned in requirements.txt:73 and bundled in PictoPy.spec), we can either:
Refactor app/utils/API.py to use httpx.post() to keep dependencies minimal and consistent with the rest of the backend (similar to model_downloader.py).
Or explicitly add requests to requirements.txt and PictoPy.spec.
I've verified this locally and would love to be assigned to submit a clean PR with unit test coverage.
Guía de contribución
Línea de trabajo
Start with backend/app/utils/API.py and reproduce the clean-environment failure using backend/requirements.txt, then inspect PictoPy.spec and the existing httpx entry. Run pytest tests/test_folders.py to confirm the import problem and use the project’s dependency and packaging configuration to decide which supported approach fits. Done means dependency installation and packaging no longer leave the API utility import unresolved.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- backend, build-system, testing
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 72/100