Code Monkey home page Code Monkey logo

Comments (4)

ethanhs avatar ethanhs commented on September 25, 2024 1

Henry is incorrect there, see for example mypy's test data for stub packages: https://github.com/python/mypy/tree/master/test-data/packages/typedpkg-stubs

The point of the -stubs prefix is that it is meant only for type-checkers, it shouldn't be importable.

from stub-package.

szabolcsdombi avatar szabolcsdombi commented on September 25, 2024 1

Thank you for the clarification!

from stub-package.

ethanhs avatar ethanhs commented on September 25, 2024

Hi, PEP 561 doesn't support single module packages, see https://peps.python.org/pep-0561/#packaging-type-information

I would recommend putting a folder of the same name of the module that includes either an __init__.pyi or making a separate -stubs package if you are worried about the folder conflicting with the module. Hopefully that makes sense?

from stub-package.

szabolcsdombi avatar szabolcsdombi commented on September 25, 2024

This PEP does not support distributing typing information as part of module-only distributions or single-file modules within namespace packages.
The single-file module should be refactored into a package and indicate that the package supports typing as described above.

Indeed I missed this information.


I would recommend putting a folder of the same name of the module that includes either an init.pyi or making a separate -stubs package if you are worried about the folder conflicting with the module. Hopefully that makes sense?

Makes sense. The package folder with -stubs ending sounds safer.

This works so far for an extension only distribution.

One thing that still bothers me is the naming. According to pypa/distutils#108 (comment) the folder name shoud contain an underscore while the packages and package_data entries should contain dash.

Is this correct?

from stub-package.

Related Issues (1)

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.