Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Goal: Allow end-user to extend AL without editing internal code #68

Open
DannyWeitekamp opened this issue Dec 7, 2020 · 0 comments

Comments

@DannyWeitekamp
Copy link
Collaborator

Eventually we would like AL to be installed via pip. This means that everything in this repo cannot be considered editable by the end-user. In other words we need a standard way to extend various core features of AL. I think it would be good to follow the pattern used in the Operator class of the NumbaPlanner, where if something is subclassed then it is automatically registered.

  1. Every learning mechanisms type needs a base class that can be inherited from. This base class needs to define the API for the mechanism type and register any implementation that subclasses the base class. Subclasses should not be required to implement every method in the base class.
  2. Our predefined learning mechanism implementations should each live in their own files in a containing folder. The init.py of that folder should export each one to make importing less tedious.
  3. Each learning mechanisms should have a pytest style test file that checks it's expected behavior.
  4. All of the above should be true for BaseAgent to help the users make custom agents as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant