Package: curators
CuratorsA package for action selection and optimization.Action types currently supported are context-naive, contextual, and sequential.Context-naive actions, which we'll call simply "naive" assumes the expected
return is simply a function of the action itself.  This is commonly referred
to as a multi-armed bandit.Contextual actions enable use of observable variables to further improve the
accuracy of the expected return of actions.  For now, we enabled
integration of clustering algorithms with a traditional bandit.  Longer
term, this will grow into more broad support for contextual bandits.Sequential algorithms extend the previous optimizations of single actions
into the optimization of multiple ordered actions.To facilitate maintaining the mathematical purity of classic models while
maintaining practical interfaces for real world actions, objects are
categorized into three object types: models, agents, and applications.Model - distinct and mathematically pure units of learning.Agent - integration of identically shaped models into a single interface.Application - tooling around connecting an agent to some real-world medium.InstallationPippip install curatorsPackage Build and InstallWe use Python'ssetuptoolsto handle installation.
You can build the wheel and install it elsewhere manually using:# from within this repo's root:pythonsetup.pybdist_wheel# from within your other project that you're installing this wheel into:pipinstallcurators-0.0.1-py3-none-any.whlOr you can install it directly from Github usisng the library namegit+ssh://git@github.com/BellwethrInc/curators.gitas you would
install any other library through either apip install [x]or including it
directly in yourrequirements.txtfile.Or if you prefer usinghttpsrather than ssh to connect to github,git+https://github.com/BellwethrInc/curators.gitworks as well.After we get proper releases set up, you'll be able to dogit+ssh://git@github.com/BellwethrInc/curators.git@v0.0.0#egg=curatorsto specify a release as well.Coming soon:proper versioningAs a DeveloperWithin this repo's root, create a virtualenv (or your conda equivalent) and
install the dependencies.python3-mvenvvenvsourcevenv/bin/activate
pipinstall-rrequirements.txtTestingWithin a developer's environment, run all tests simply withpython-munittestCoverageTo see testing coverage, runcoveragerun-munittestdiscover# to generate coverage datacoveragereport# to render the coverage data to consolecoverage-badge-odocs/images/coverage.svg# update the coverage badgeDocsTo build docswithin your venvpip install -r requirements.txtcd docsmake htmlOr if you're within pycharm:be sure your current environment also has the docs requirements installedpip install -r docs/requirements.txtCreate and configure a new "Spinx Task" configuration:Be surehtmlis the command selectedselectdocs/sourceas the source directoryselectdocs/builddirectory.Make this directory yourself or let sphinx make it for you.this path is within.gitignoreso don't worry about stepping on toes within your build dir.rerun docs build as neededdocs/build/index.htmlis the file you want to open in your browswerNotebooksWhen running the notebooks, you need to either be working within a virtualenv with
curators installed or have the root of this repo within your environment's PATH
or PYTHONPATH.  For example,PYTHONPATH="${PYTHONPATH}:path/to/this/repos/root" jupyter notebookwill leave the rest of your environments unaffected while giving python access to this repo directly.