Skip to content

Explore the possibility of type hinting #225

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mbohlool opened this issue May 20, 2017 · 25 comments
Open

Explore the possibility of type hinting #225

mbohlool opened this issue May 20, 2017 · 25 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@mbohlool
Copy link
Contributor

Python 3 has a type hinting feature very useful for auto complete. This issue is for tracking efforts on researching its backward compatibility with python 2 (from __future__ import import annotations?) and if possible, change code generator to implement it. Best if we contribute it back to swagger-codegen.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 21, 2019
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 21, 2019
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@sebastian-philipp
Copy link

Ping? This is still annoying to have no auto completion in my IDE. Any chance of getting this in?

@evanmosseri
Copy link

/reopen

@k8s-ci-robot
Copy link
Contributor

@evanmosseri: You can't reopen an issue/PR unless you authored it or you are a collaborator.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@sebastian-philipp
Copy link

sebastian-philipp commented Sep 18, 2019

This issue is one reason I wrote my own generator: https://github.com/sebastian-philipp/rook-ceph-client-python

@micw523
Copy link
Contributor

micw523 commented Sep 18, 2019

/reopen

@k8s-ci-robot k8s-ci-robot reopened this Sep 18, 2019
@k8s-ci-robot
Copy link
Contributor

@micw523: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@micw523
Copy link
Contributor

micw523 commented Oct 18, 2019

/reopen
/lifecycle frozen

@k8s-ci-robot
Copy link
Contributor

@micw523: Reopened this issue.

In response to this:

/reopen
/lifecycle frozen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot reopened this Oct 18, 2019
@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels Oct 18, 2019
@roycaihw
Copy link
Member

Type hinting would be more useful for using the APIs in this client (compared to config-loading, watch, etc), which are mostly generated by openapi-generator. I wonder if openapi-generator support type hinting.

cc @tomplus @scottilee

@sebastian-philipp
Copy link

In the meantime, I've made https://github.com/ceph/rook-client-python to generate client API classes for CRDs . It contains a code generator that is usable independently of this project.

If there is an interest, the code generator could certainly be moved into a dedicated project.

@scottilee
Copy link
Contributor

Tracking here: OpenAPITools/openapi-json-schema-generator#30

@benesch
Copy link

benesch commented Jul 17, 2021

I hacked together an external type stubs package for now: https://pypi.org/project/kubernetes-stubs/. Perhaps it's of use to some other folks!

@gordonbondon
Copy link

For those who want to typecheck existing custom resources without generating additional code - I've created mypy plugin that can do this based on openapi spec from CRD yamls https://pypi.org/project/kubernetes-typed/.

@shinebayar-g
Copy link

This is such a needed feature 🥲

@roycaihw
Copy link
Member

/help

@k8s-ci-robot
Copy link
Contributor

@roycaihw:
This request has been marked as needing help from a contributor.

Guidelines

Please ensure that the issue body includes answers to the following questions:

  • Why are we solving this issue?
  • To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
  • Does this issue have zero to low barrier of entry?
  • How can the assignee reach out to you for help?

For more details on the requirements of such an issue, please see here and ensure that they are met.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

/help

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Aug 16, 2022
@lexdene
Copy link

lexdene commented Jun 4, 2023

I hacked together an external type stubs package for now: https://pypi.org/project/kubernetes-stubs/. Perhaps it's of use to some other folks!

kubernetes-stubs has not provided stubs for kubernetes >= 23.0 yet (2023-06-03).

I forked it to kubernetes-stubs-elephant-fork which provides stubs for all releases after 7.0 of kubernetes,
even includes any release in the future automatically.

I run a crontab by github actions which looks for new releases of kubernetes and build typing stubs for it.

@guyarad
Copy link

guyarad commented May 1, 2024

How is this feature not being provided by the main k8s client library for Python?

@Nugine
Copy link

Nugine commented Mar 31, 2025

8 years later, k8s python client still does not provide type hints.
How difficult it would be?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
Development

No branches or pull requests