Aug-19-2020, 10:43 AM
I'm building a little program but I'm trying to make it more easily expandable for the future (without the need of much refactoring). I'm experimenting with thing I have never used before like typings.
I have a small typings file that looks like this (called typings.py)
How can I fix this error?
I have a small typings file that looks like this (called typings.py)
from typing import (
Union,
Any,
Optional
)
from typing import ForwardRef as ref
CustomLevel = ref("levels.level.CustomLevel")
OfficialLevel = ref("levels.level.OfficialLevel")
__all__ = (
"Union",
"Any",
"Optional",
"CustomLevel",
"OfficialLevel",
)I also have a level.py file under ./levels/. In the file I have a base class but also a CustomLevel and OfficialLevel. At the top of level.py I am importing the CustomLevel typing. The issue is I am getting an error saying:Error:class already defined (line 5)because the import of the CustomLevel type is clashing with definition of the CustomLevel class, like so:from ..typings import ( CustomLevel ) class CustomLevel(): #<--- erros here since 'customlevel' is already defined def __init__(self) -> None: pass def somefunc(self) -> CustomLevel: passI am actually using an already existing api as a sort of "guide". What I mean is I am looking at the code of the api, because I think it's pretty good code, and using some of the features I think will be helpful in my program (like typings). In their api they do exactly what I am doing where they import a type from their typing file, and then create a class of the same name. In theirs they don't get an error though.
How can I fix this error?
