Skip to content

Add type annotations #340

@sumezulike

Description

@sumezulike

Adding typehints would greatly improve usability.

Without type annotations, IDE support is very limited and I often have to search through the code to figure out the exact types of a given attribute. Also static typechecking is obviously not possible, which I think is also pretty important for consistent code quality.

If that's an effort that would be appreciated, I would start by type-hinting the modules I currently use the most.

Activity

added
maintenanceissues related to making the project usable or testable
on Jun 1, 2024
added this to the someday/future milestone on Jun 1, 2024
tomato42

tomato42 commented on Jun 1, 2024

@tomato42
Member

Python 2.6 and 2.7 are still very much supported by this project, and will remain so for at least the next year or so.
As such, you'll need to add the type hints as comments, not inline. If that will help with your IDE: sure, go ahead. You can provide patches even on a function to function basis, as you work through them. Don't need to tackle the whole (public) API at once.

sumezulike

sumezulike commented on Jun 1, 2024

@sumezulike
Author

Could type stubs then be a better solution? Those shouldn't interfere with the old pythons afaik.

tomato42

tomato42 commented on Jun 1, 2024

@tomato42
Member

the issue is that you do have to remember to edit them and keep them updated... when type information is in a single file, then it's obvious and easy to do, when it's in separate file then it's easy to forget...

and if I do accept something into the repo, I generally intend to maintain it, can't realistically do it with this solution 🫤

sumezulike

sumezulike commented on Jun 1, 2024

@sumezulike
Author

Yeah, understandable... I'm not a huge fan of type stubs either. I'll figure out how much type comments help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceissues related to making the project usable or testable

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @tomato42@sumezulike

        Issue actions

          Add type annotations · Issue #340 · tlsfuzzer/python-ecdsa