Skip to content

bugfix: Add ABC to classes using @abstractmethod - #95

Open
MrCrystAll wants to merge 1 commit into
RLGym:mainfrom
MrCrystAll:main
Open

bugfix: Add ABC to classes using @abstractmethod#95
MrCrystAll wants to merge 1 commit into
RLGym:mainfrom
MrCrystAll:main

Conversation

@MrCrystAll

Copy link
Copy Markdown
Contributor

Bug/Problem

The config objects (ObsBuilder, ActionParser, ...) aren't inheriting ABC despite using the @AbstractMethod decorator.
From the python documentation:

Using this decorator requires that the class’s metaclass is [ABCMeta](https://docs.python.org/3.14/library/abc.html#abc.ABCMeta) or is derived from it. A class that has a metaclass derived from ABCMeta cannot be instantiated unless all of its abstract methods and properties are overridden.

ABCMeta can either be used by writing metaclass=ABCMeta or by inheriting ABC (see https://docs.python.org/3.14/library/abc.html#abc.ABC).

The reason why i'm making a fix for it isn't only regarding the documentation, inheriting ABC allows type introspection scripts to mark the object as abstract. I also believe some IDEs base their override menu on the ABC inheritance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant