Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Provide explicit type hints and pydantic validation for robust usage

Aperta
#34 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
api, backend

Direzione di ricerca

Inizia esaminando openpaygo/models.py e le implementazioni esistenti in openpaygo/token_encode.py, openpaygo/token_decode.py, metrics_request.py, metrics_response.py e token_shared.py. Controlla i test di integrazione, che attualmente riportano 80 test superati. Il lavoro è completato quando le funzioni elencate hanno annotazioni di tipo esplicite, gli input non validi vengono convalidati con i modelli Pydantic indicati e la suite di test continua a superare tutti i test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Description:
Hi team! Thanks for building such an awesome library for the OpenPAYGO ecosystem.

Expected Behavior:
When using the OpenPAYGO library in modern Python backend applications (like FastAPI servers or typing-heavy codebases), developers expect:

  • Clear type definitions showing what arguments standard functions (like decode_token or MetricsRequestHandler) accept and return.
  • When processing JSON or dictionaries from devices, malformed data should raise explicit parsing/validation errors before reaching deep token logic.

Current Behavior:
Currently, functions like decode_token and MetricsRequestHandler rely on loose dictionaries and typeless signatures. Passing incorrect types or malformed historical data can trigger cryptic KeyError or ValueError, making debugging difficult.

Proposed Solution:
Add explicit Python typing (typing.Dict, typing.Optional, etc.) to method signatures across:

  • openpaygo/token_encode.py
  • openpaygo/token_decode.py
  • metrics_request.py / metrics_response.py

Additionally, leverage Pydantic models to automatically validate and parse input data, stripping invalid or unexpected fields.

Implementation Notes:

  • Created openpaygo/models.py with Pydantic models:

    • MetricsDataFormat
    • MetricsRequestData
    • MetricsHistoricalDataStep
  • Functions in metrics_request.py and metrics_response.py now cast dictionaries into Pydantic models.

  • Core files (token_shared.py, token_encode.py, token_decode.py) updated with type hints.

  • Integration tests run successfully with all 80 tests passing.

Benefits:

  • Improved type safety and clearer function signatures.
  • Automatic input/output validation reduces runtime errors.
  • Easier debugging and maintenance for developers.
Lingua principale
Python
Stelle
15
Fork
15
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di EnAccess/OpenPAYGO-python

Tutte le issue di EnAccess/OpenPAYGO-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.