Options for a long term fix of the special case for float/int/complex

Maybe we could a project-specific (or package-specific) configuration, similar to Rust’s editions:

When creating editions, there is one most consequential rule: crates in one edition must seamlessly interoperate with those compiled with other editions.

In other words, each crate can decide when to migrate to a new edition independently. This decision is ‘private’ - it won’t affect other crates in the ecosystem.

In Rust it’s specified in the Cargo.toml, but we could use the py.typed or pyproject.toml for that.

And instead of year-labelled “editions”, a minimal key-value format will suffice for our purposes, so that we can write something like promote_types = false.

5 Likes