Git Product home page Git Product logo

Comments (2)

JukkaL avatar JukkaL commented on May 26, 2024

Sounds reasonable. I added a mypy issue for this: python/mypy#562

I see three different categories of modules that don't import typing: (1) modules that don't import it and don't have any annotations, (2) modules that don't import it and have type annotations, either PEP 484 function annotations or # type: comments, (3) modules that don't import typing but have non-standard annotations. Should these all be different?

Mypy currently complains about code like this if there is no annotation, even for dynamically typed modules, since module top levels are implicitly statically typed by default:

x = []   # Can't infer the type of x

I'd like to change this so that mypy could process at least many existing modules and still support some level of type checking for code that imports those modules (e.g., checking that function argument counts are compatible).

Maybe category (1) modules should default to Any as the type of top-level and class variables, but mypy would try to infer these types for category (2) modules. Thus full type checking would be signalled by the addition of any type annotation or typing import. Most existing modules don't have any annotations, so a type checker could process them without generating errors, but marking a module for type checking wouldn't need to involve importing typing. Category (3) modules would need either a # type: OFF comment or telling the type checker to not to check that module.

from typing.

gvanrossum avatar gvanrossum commented on May 26, 2024

Moved to README.rst.

from typing.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.