Search code examples
pythonvisual-studio-codepylance

Is there a way to mark a python function as incomplete / unimplemented in VSCode / pylance?


I'm relatively new to python, using VSCode for python development. As far as I can tell VSCode is using an extension called "pylance" to handle python support features, such as detecting errors in code as you write.

In the last language I spent time with (Scala), there was a great little expression ??? that could be used to mark a method as incomplete / unimplemented, so that it would not generate any errors in the compiler or IDE, and would just throw an exception if encountered at runtime.

Is there any equivalent in python, specifically that would be understood by pylance? The idea would be that there is an unimplemented function, or one with a return type hint that isn't satisfied because it is incomplete, but this wouldn't throw up any errors that would make it harder to find the problems with the part I'm actually working on.

Obviously this isn't critical, just a matter of preferences, but it would be nice to keep the signal-to-noise ratio down! Thank you


Solution

  • You can use use pass inside of a function definition to avoid having to give a function a body, this will not raise exceptions on its own. Alternatively you can use raise(NotImplementedError()) to raise an error when a function is called.

    def foo():
        pass
    def baz():
        raise NotImplementedError
    

    EDIT With Update---

    Similar to pass in Python 3+ an ellipsis can be used to indicate code that has not yet been written e.g.

    def foo(): ...