Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Add Device Detection Support

Abierto
#51 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
api

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 @dataclass with _extra field for forward compatibility
  • Return None for 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 xfail markers 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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fastly/compute-sdk-python

Todos los issues de fastly/compute-sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.