Skip to content

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

@DannyWeitekamp

Description

@DannyWeitekamp

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions