I have a function that takes a single string arg.
I think in my first post of this issue I was not clear enought.
The purpose of this question is to figure how how to get typing (autocomplete) support for such methods without using cast.
doc = CreateScritpService("Calc")
To get the type I use cast.
doc = cast(SFDocuments.SF_Calc, CreateScritpService("Calc"))
bas = cast(SFScriptForge.SF_Basic, CreateScriptService("Basic"))
I am the Author of ScriptForge Typings
An I am looking for a way to automatically have CreateScritpService
return the correct type based upon the string input arg.
Is this possible?
Advertisement
Answer
You can achieve this using overload
along with Literal
, something like this:
from typing import Literal, overload @overload def CreateScriptService(x: Literal["Calc"]) -> SFDocuments.SF_Calc: ... @overload def CreateScriptService(x: Literal["Basic"]) -> SFScriptForge.SF_Basic: ...