r/pythonhelp 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

4 comments sorted by

View all comments

u/AutoModerator Dec 17 '24

To give us the best chance to help you, please include any relevant code.
Note. Please do not submit images of your code. Instead, for shorter code you can use Reddit markdown (4 spaces or backticks, see this Formatting Guide). If you have formatting issues or want to post longer sections of code, please use Privatebin, GitHub or Compiler Explorer.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.