typing
unboxed
Our great sponsors
typing | unboxed | |
---|---|---|
38 | 3 | |
1,529 | 36 | |
1.7% | - | |
8.8 | 0.0 | |
12 days ago | over 1 year ago | |
Python | Haskell | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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...
unboxed
-
How can Haskell programmers tolerate Space Leaks?
With Lev as defined here.
-
[ANNOUNCE] GHC 9.2.1-rc1 is now available!
Check out unboxed. I think that could be a good starting point. I recently updated it to the 9.2.1 alpha here: https://github.com/noughtmare/unboxed/commit/b6338e68540a2c62a6aae6ded0dcdc3b83106916. I should check again if the this issue is fixed in this rc.
-
Principles of Programming Languages - Robert Harper
I tried it out and it is really not usable yet unfortunately. There are several problems. I think the main issue is that you need two versions of all functions and data types. And currently classes like Num are not levity-polymorphic (there is a proposal about this), so you can't use + to add two "real" inductive peano naturals. One problem with making type classes levity-polymorphic is that top-level bindings can't be levity-polymorphic, so mempty cannot be levity-polymorphic. A workaround is to use a type class to levitate levity-polymorphic variables, but that has disadvantages too. Levitated values are not shared and must be recomputed at every call site.
What are some alternatives?
mypy - Optional static typing for Python
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.
pyannotate - Auto-generate PEP-484 annotations
type4py - Type4Py: Deep Similarity Learning-Based Type Inference for Python
pytype - A static type analyzer for Python code