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

parse_quantity raises decimal.Overflow instead of ValueError for some large quantities

Abierto Apto para principiantes
#2,735 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Empieza en kubernetes/utils/quantity.py, en la línea 85 indicada, y revisa el manejo de errores existente de parse_quantity. Reproduce el desbordamiento con parse_quantity("2.e388635141Ki") y luego revisa las pruebas de análisis de cantidades para entradas mal formadas. Se considera terminado cuando esta entrada genera ValueError de forma consistente y pasan las pruebas pertinentes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happened (please include outputs or screenshots):

While testing an experimental version of Perch, we found the following and figured it was worth a report.

parse_quantity raises ValueError for malformed quantities, but a quantity whose exponent overflows the decimal context escapes as decimal.Overflow:

from kubernetes.utils.quantity import parse_quantity

parse_quantity("abc")
# ValueError: Invalid number format: abc

parse_quantity("2.e388635141Ki")
# decimal.Overflow: [<class 'decimal.Overflow'>]

What you expected to happen:

A ValueError, like other quantities it can't handle, so callers that catch ValueError around it keep working.

How to reproduce it (as minimally and precisely as possible):

Run the snippet above against master. No cluster is needed.

Anything else we need to know?:

It's raised at kubernetes/utils/quantity.py:85, return number * (base ** exponent). The API server won't produce a quantity this large, so in practice it shows up with hand-written or third-party manifests. Catching decimal.DecimalException there and raising ValueError would keep the error type consistent.

Environment:

  • Kubernetes version (kubectl version): not needed, no cluster involved
  • OS (e.g., MacOS 10.13.6): macOS 26.2 (arm64)
  • Python version (python --version): 3.14.2
  • Python client version (pip list | grep kubernetes): 37.0.0+snapshot (master, bb9199f7)
Lenguaje dominante
Python
Estrellas
7.7k
Forks
3.5k
Merge medio
1 d 16 h
PR fusionados (30 d)
17

Preparar el entorno

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 kubernetes-client/python

Todos los issues de kubernetes-client/python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.