Add Device Detection Support
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con los bindings de WIT en stubs/wit_world/imports/device_detection.py e inspecciona la implementación de device-detection de Viceroy para determinar las respuestas de prueba disponibles. Añade la API de búsqueda basada en funciones y el dataclass DeviceInfo con campos desconocidos compatibles con futuras versiones; después, prueba el análisis, el manejo de errores y las búsquedas sin coincidencias mediante respuestas sintéticas o casos xfail apropiados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Overview
Add support for Fastly's Device Detection API, which provides device capabilities and characteristics based on User-Agent strings.
WIT Interface
interface device-detection {
use types.{error};
/// Returns JSON-encoded device data for a User-Agent string
lookup: func(user-agent: string, max-len: u64) -> result<option<string>, error>;
}
WIT bindings: stubs/wit_world/imports/device_detection.py
API Design
- Simple function-based API:
lookup(user_agent: str) -> Optional[DeviceInfo] - Parse JSON response into
@dataclasswith_extrafield for forward compatibility - Return
Nonefor lookups that don't match any known device - Fields typically include:
is_mobile,is_desktop,is_tablet,is_bot,device_type,brand,model, etc.
Forward Compatibility: Use @dataclass with _extra: dict field to capture unknown fields (same pattern as Geo). Provides type hints for known fields while allowing future fields to be accessible.
Cross-SDK Comparison: All SDKs expose simple lookup(user_agent) returning parsed JSON. Rust returns DeviceInfo struct, Go returns *DeviceDetection, JS returns object. All have similar field structure (device type, name, vendor, etc.).
Viceroy Testing
Device detection support in Viceroy is limited or stubbed. The WIT interface exists but may not have full test data support via test.toml configuration like other features.
Tests should either:
- Use
xfailmarkers for functionality that requires production device detection data - Mock the User-Agent lookup if Viceroy provides stub/default responses
- Focus on API wrapper behavior (parsing, error handling) with synthetic responses
Check Viceroy's device detection implementation to determine exact testing capabilities.
Reference
- Lenguaje dominante
- Python
- Estrellas
- 5
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fastly/compute-sdk-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
fastly/compute-sdk-python#116 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
fastly/compute-sdk-python#98 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fastly/compute-sdk-python#74 ·
-
Add HTTP Downstream Metadata API Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fastly/compute-sdk-python#61 ·
-
fastly/compute-sdk-python#60 · 1 asignado ·
Todos los issues de fastly/compute-sdk-python
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100