Support user abstract load shape base classes #2393
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves the abstract custom base shape detection by using the same pattern than the base
User
class: abstract base classes should define theabstract
attribute toTrue
.This change is entirely backward compatible and tested.
This PR fixes the following case:
LoadTestShape
in your common modules (let's saylib.BaseShape
)This will result in:
lib.py
locusfile
Currently,
BaseShape
will be chosen asshape_class
andMyShape
will be silently ignored (unless you specify it on the command line, or you rely on the class picker in whichBaseShape
will appear and shouldn't).With this change,
BaseShape
is seen as abstract and is ignored from shape candidates, won't appear in the class picker andMyShape
will be chosen if not explicitly told.