Expose base classes and hide metaclasses #32
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 is a bit of a drive-by but I figured it was easier to write this PR than explain it in an issue :/
Previously the abstract base classes for post-processing layers and GCN stacks were private. I realised this when I started to write up some hints on how to write your own and found that the base classes weren't documented. The registry metaclasses, however, are public and documented. I think this could lead to some major confusion, as the actual functionality you need to implement isn't in the metaclass, its in the base class. I think the metaclasses are really implementation details for the string encoding stuff, and they're the metaclasses of the base classes so inheritors shouldn't need to use them explicitly anyway.
So I've...
Changes made in this Pull Request:
AtomFeatureMeta
,BondFeatureMeta
,PostprocessLayerMeta
andGCNStackMeta
private by prepending them with underscores and removing them from__all__
as appropriateBaseGCNStack
public by adding it to thegcn
module re-exportsFeature
public by adding it to thefeature
module re-exportsGNNModel
docstring to use the base classes instead of the metaclasses.I think this was just an oversight but if it's intended then no worries!
PR Checklist