parse_quantity raises decimal.Overflow instead of ValueError for some large quantities
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
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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 kubernetes-client/python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
kubernetes-client/python#2734 ·
Los mantenedores suelen responder en 1 día
-
getheaders is deprecated in urllib3 >= 2.0.0Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertokind/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
kubernetes-client/python#2280 · 16 comentarios · 9 reacciones ·
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
kubernetes-client/python#2733 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Growing library sizeAbiertohelp wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kubernetes-client/python#2677 · 15 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Add option to disable strict x509 verifcation in sync clientPosiblemente ocupada @Vishwa0223 la tomó hace 48 días. Abiertohelp wanted kind/feature
kubernetes-client/python#2602 · 6 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de kubernetes-client/python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
vllm-project/vllm#61131 ·
Los mantenedores suelen responder en 1 día
-
desktop help wanted test
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Broken links found in docsAbiertodocs pydanty:is-working
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
pydantic/pydantic-ai#10113 ·
Los mantenedores suelen responder en 1 día
-
Tutorial unit test leaks sample data into tutorial doctestPosiblemente ocupada @Gambit-Checkmate la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
GreedyBear-Project/GreedyBear#1727 ·
Los mantenedores suelen responder en 2 días