typing
pyannotate
Our great sponsors
typing | pyannotate | |
---|---|---|
38 | 1 | |
1,529 | 1,409 | |
1.7% | 0.0% | |
8.8 | 0.0 | |
13 days ago | over 1 year ago | |
Python | Python | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
typing
- Writing Python like it’s Rust
-
Type Hinting - Constrain metaclass of typing.Type
but looking at relevant issues on GitHub it seems this has been shot down repeatedly. python/typing#18, python/typing#213
-
What type hint should I use for "some container type" in general but explicitly exclude the str type?
See https://github.com/python/typing/issues/256 for a discussion.
-
I use attrs instead of pydantic
Mypy allows that because initial versions of PEP-484 allowed that. This has changed; here's the current wording on the PEP:
> This is no longer the recommended behavior. Type checkers should move towards requiring the optional type to be made explicit.
-
Can I walk through the entire hierarchy of object types?
Dunno, other, larger projects than the one I'm working on seem to run up against this from time to time. (rasa_core, to pick one example from near the top of a Google search; also Telethon, Blender, TensorFlow, Pandas. Guido also filed a bug on the typing module in an early version of Python 3.5 because of unexpected implications of this particular issue, so the problem isn't exactly purely theoretical.) That's aside from the wish for conceptual purity in the call signatures of classes and their subclasses, which is not always and automatically a bad wish to have; and the notion that a language that prides itself on its introspective faculties might want to make introspection of classes from the top of a class hierarchy possible, at least in theory? Perhaps to facility learning about the language and/or visualizing large class hierarchies easily, for instance?
-
Principles of Programming Languages - Robert Harper
How do you define Python? If you include PEP 484 in your definition, surely it must be 'statically typed', otherwise there would be no need for these terms.
-
Type4Py: Machine Learning-based Type Auto-completion for Python
Since Python 3.5 (PEP-484), developers can add type annotations to their code. Python's optional static typing improves code comprehension, code completion, program analysis, and more. However, retrofitting type annotations can be a laborious and time-consuming task.
-
Why Generics? What is the point of it?
You might be interested in looking at PEP 484 (Type Hints https://www.python.org/dev/peps/pep-0484/) and PEP 483 (The Theory of Type Hints https://www.python.org/dev/peps/pep-0483/).
-
Pyre: A performant type-checker for Python 3
> Similarly where a language with first-class support for types might have `type Foo`, Python makes you write `T = TypeVar("T"); class Foo(Generic[T])` or something like that, and it gets more confusing when you only want one of the methods to be generic and I can never remember whether that `T` takes on a single type across all uses or which scope I need to define it in, etc.
I don't know about you but I find PEP 484 very clear here: https://www.python.org/dev/peps/pep-0484/#scoping-rules-for-...
> The problems for which I'm less optimistic tend to revolve around shoehorning typing into existing Python syntax--e.g., to get a callback that takes kwargs you have to define a protocol with a `__call__` method that takes kwargs because you can't express it with `typing.Callable`
You might be interested in the discussion over here then -> https://github.com/python/typing/issues/769#issuecomment-741...
pyannotate
-
What does it mean to have -> after a function
Indeed there are! pyannotate is probably the most popular one, authored by Guido van Rossum while he was at Dropbox.
What are some alternatives?
mypy - Optional static typing for Python
monkeytype - The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
pytype - A static type analyzer for Python code
pyre-check - Performant type-checking for python.
fp-ts - Functional programming in TypeScript
pydantic - Data validation using Python type hints
mashumaro - Fast and well tested serialization library
Telethon - Pure Python 3 MTProto API Telegram client library, for bots too!
intellij-community - IntelliJ IDEA Community Edition & IntelliJ Platform
flask-parameter-validation - Get and validate all Flask input parameters with ease.
datamodel-code-generator - Pydantic model and dataclasses.dataclass generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.
black - The uncompromising Python code formatter