Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Provide explicit type hints and pydantic validation for robust usage

Đang mở
#34 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
api, backend

Hướng nghiên cứu

Bắt đầu bằng cách xem xét openpaygo/models.py và các phần triển khai hiện có trong openpaygo/token_encode.py, openpaygo/token_decode.py, metrics_request.py, metrics_response.py và token_shared.py. Kiểm tra các bài kiểm thử tích hợp, hiện đang báo cáo 80 bài kiểm thử đạt. Công việc được xem là hoàn tất khi các hàm được liệt kê có chỉ dẫn kiểu rõ ràng, đầu vào không hợp lệ được xác thực bằng các mô hình Pydantic đã nêu và bộ kiểm thử tiếp tục chạy thành công.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.
Ngôn ngữ chính
Python
Star
15
Fork
15
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của EnAccess/OpenPAYGO-python

Tất cả issue của EnAccess/OpenPAYGO-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.