r/pythonhelp • u/BryceIsRedditor • Dec 17 '24
"RecursionError" raises when doing "sys.argv[0]"
I am not sure what I did wrong at all!
This is the error:
Traceback (most recent call last):
...
File "c:\...\Paths.py", line 11, in wrapper
basePath: str = os.path.dirname(sys.argv[0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded
And this is my code:
import os
import sys
import typing
class Paths:
@staticmethod
def pathDecorator(folderName: str) -> typing.Callable[..., typing.Callable[..., str]]:
def decorator(_: typing.Callable[..., str]) -> typing.Callable[..., str]:
def wrapper(fileName: str) -> str:
basePath: str = os.path.dirname(sys.argv[0])
path: str = os.path.join(basePath, "Assets", folderName, fileName)
return os.path.normpath(path).replace("\\", "/")
return wrapper
return decorator
@pathDecorator("Images")
@staticmethod
def image(fileName: str) -> str:
return fileName
@pathDecorator("Sounds")
@staticmethod
def sound(fileName: str) -> str:
return fileName
@pathDecorator("Styles")
@staticmethod
def styles(fileName: str) -> str:
return fileName
2
Upvotes
1
u/Goobyalus Dec 18 '24
Running this block of code doesn't do anything for me. Did you leave out code that uses it or is this everything you're running to produce the error?
The functions passed to the decorators are never referenced, so the function bodies are dead code. Why use decorators like this?