spock
spock copied to clipboard
Unable to use newer syntax of typing
Describe the bug
I would like to use generic types such as list[int]
instead of from typing import List; List[int]
.
I do know that the example in the documentation explicitly show that I need to import List
from typing
, but ever since python 3.9, it is preferred to directly use list
as type annotation.
To Reproduce
Create file simple.py
from spock import SpockBuilder, spock
@spock
class BasicConfig:
most_fancy_parameter: list[int]
def main():
config = SpockBuilder(BasicConfig, desc="Quick start example").generate()
print(config)
if __name__ == "__main__":
main()
Run the script,
python simple.py --BasicConfig.most_fancy_parameter "[128, 128]"
I got:
spock.exceptions._SpockInstantiationError: Spock class `BasicConfig` could not be instantiated -- attrs message: isinstance() argument 2 cannot be a parameterized generic
Environment (please complete the following information):
- OS: Mac 10.13
- Python version: 3.10
- Spock version: 3.0.2
Noted. Will see what it takes to support the basic non typing lib types.
I'm assuming the following basic types:
-
int
-
float
-
str
-
list
-
tuple
-
dict