Resolve inconsistent typing in 37.0.0 delete operations
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- python
- Domaine
- api, backend-api-design
Piste de recherche
The issue names delete methods in kubernetes/client/api/core_v1_api.py; start by comparing their return type hints with the corresponding generated API definitions and create, patch, and replace methods. Check whether delete responses should consistently use the resource model or the status model, then inspect the related generated tests. Done means the delete methods have consistent, accurate type hints and the tests cover the expected response types.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What is the feature and why do you need it:
The Pydantic migration in 37.0.0 added strong typing, mostly, to the forward facing APIs. Which I greatly appreciate.
Where delete calls used to return V1Status they now generally return the appropriate model for their api type which matches the other APIs including golang.
Unfortunately, the typing is inconsistent on delete calls making it difficult to deal with.
Examples from:
https://raw.githubusercontent.com/kubernetes-client/python/refs/heads/master/kubernetes/client/api/core_v1_api.py
def delete_namespaced_config_map(...) -> object:
def delete_namespaced_endpoints(...) -> object:
def delete_namespaced_persistent_volume_claim(...) -> V1PersistentVolumeClaim:
def delete_namespaced_pod(...) -> V1Pod:
def delete_namespaced_pod_template(...) -> V1PodTemplate:
def delete_namespaced_resource_quota(...) -> V1ResourceQuota:
Describe the solution you'd like to see:
Resolve the inconsistent typehinting on delete calls. For whatever reason create, patch, replace don't have this problem.
Sample code:
>>> import kubernetes
>>> kubernetes.config.load_config()
>>> corev1 = kubernetes.client.api.CoreV1Api()
>>> metadata = kubernetes.client.V1ObjectMeta(name="test", namespace="default")
>>> configmap = kubernetes.client.V1ConfigMap(metadata=metadata)
>>> new_map = corev1.create_namespaced_config_map(namespace="default", body=configmap)
>>> type(new_map)
<class 'kubernetes.client.models.v1_config_map.V1ConfigMap'>
>>> delete_map = corev1.delete_namespaced_config_map(name="test", namespace="default")
>>> type(delete_map)
<class 'dict'>
>>> print(delete_map)
{'kind': 'Status', 'apiVersion': 'v1', 'metadata': {}, 'status': 'Success', 'details': {'name': 'test', 'kind': 'configmaps', 'uid': 'b4e19f90-ed1e-4e44-bed1-0bfbc64e1982'}}
>>> deleted_pot = corev1.delete_namespaced_pod(name="example", namespace="default")
>>> deleted_pod = corev1.delete_namespaced_pod(name="example", namespace="default")
>>> type(deleted_pod)
<class 'kubernetes.client.models.v1_pod.V1Pod'>
- Langage dominant
- Python
- Étoiles
- 7.7k
- Forks
- 3.5k
- Merge moyen
- 1 j 13 h
- PR mergées (30 j)
- 21
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de kubernetes-client/python
-
getheaders is deprecated in urllib3 >= 2.0.0Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertekind/bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
kubernetes-client/python#2280 · 18 commentaires · 9 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Bug Report: UnicodeDecodeError when limit_bytes truncates UTF-8 mid-characterPeut-être pris @carterpewpew l’a pris il y a 1 jour. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
kubernetes-client/python#2756 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Make async an extraPeut-être pris @jdork0 l’a pris il y a 5 jours. Ouvertekind/feature
Difficulté 2/5 1-3 heures Accessibilité débutants 55/100
kubernetes-client/python#2739 · 3 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Growing library sizePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertehelp wanted
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
kubernetes-client/python#2677 · 16 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Add option to disable strict x509 verifcation in sync clientPeut-être pris @Vishwa0223 l’a pris il y a 64 jours. Ouvertehelp wanted kind/feature
kubernetes-client/python#2602 · 6 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de kubernetes-client/python
Issues similaires
-
parse names a key after a top-level multi() threshold Bitcoin Core v31.1 refuses as not validOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
btclib-org/btclib-wallet#587 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Judgment-Pack/judgment-pack-spec#275 ·
Les mainteneurs répondent en général sous 1 jour
-
ai-generated
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue priority: low size: XS
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
yeongseon/azure-functions-doctor-python#651 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Changaco/python-libarchive-c#146 ·