11import sys
22from dataclasses import dataclass , field
3- from typing import Callable , List , Literal , Optional , TypedDict
3+ from typing import Callable , Literal , Optional , TypedDict
44
55import scaleway .function .v1beta1 as sdk
66
7- try :
8- from typing import NotRequired
9- except ImportError :
10- from typing_extensions import NotRequired
11- # pylint: disable=wrong-import-position # Conditional import considered a statement
127from scw_serverless .config .route import GatewayRoute , HTTPMethod
138from scw_serverless .logger import get_logger
149from scw_serverless .triggers import Trigger
@@ -31,7 +26,7 @@ def _get_current_runtime() -> sdk.FunctionRuntime:
3126 return runtime
3227
3328
34- class FunctionKwargs (TypedDict ):
29+ class FunctionKwargs (TypedDict , total = False ):
3530 """Typed arguments supported by Scaleway functions.
3631
3732 .. note::
@@ -54,21 +49,21 @@ class FunctionKwargs(TypedDict):
5449 https://developers.scaleway.com/en/products/functions/api/#create-a-function
5550 """
5651
57- env : NotRequired [ dict [str , str ] ]
58- secret : NotRequired [ dict [str , str ] ]
59- min_scale : NotRequired [ int ]
60- max_scale : NotRequired [ int ]
61- memory_limit : NotRequired [ MemoryLimit ]
62- timeout : NotRequired [ str ]
63- custom_domains : NotRequired [ List [ str ] ]
64- privacy : NotRequired [ Privacy ]
65- description : NotRequired [ str ]
66- http_option : NotRequired [ HTTPOption ]
52+ env : dict [str , str ]
53+ secret : dict [str , str ]
54+ min_scale : int
55+ max_scale : int
56+ memory_limit : MemoryLimit
57+ timeout : str
58+ custom_domains : list [ str ]
59+ privacy : Privacy
60+ description : str
61+ http_option : HTTPOption
6762 # Parameters for the Gateway
68- url : NotRequired [ str ]
69- methods : NotRequired [ list [HTTPMethod ] ]
63+ url : str
64+ methods : list [HTTPMethod ]
7065 # Triggers
71- triggers : NotRequired [ list [Trigger ] ]
66+ triggers : list [Trigger ]
7267
7368
7469# pylint: disable=too-many-instance-attributes
0 commit comments