Code Monkey home page Code Monkey logo

eds's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eds's Issues

"eds.tags" interface

"tags" plugins will hold tag metadata to apply to config and pipeline objects.

  • provide initial draft of eds.interfaces.tags module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.tags.Tag.schema attribute

"eds.worker" interface

  • provide initial draft of eds.interfaces.worker module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.worker.Worker.schema attribute

"eds.pipeline" interface

  • provide initial draft of eds.interfaces.pipeline module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.pipeline.Pipeline.schema attribute

"eds.pipeline_provider" interface

  • provide initial draft of eds.interfaces.pipeline_provider module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.pipeline_provider.PipelineProvider.schema attribute

logging framework

  • implement a logging framework, possibly loguru
  • support for configurable log levels.
  • log level would be parameter to main.main
  • log levels can be passed via cli parameter, which would be passed through to main.main
  • implement exception logging in except block of main.main

interface validation

convert the informal interfaces in eds.interfaces to use the formal abc technique, which means requiring plugin implementations to register their classes.

"eds" cli

  • add an "eds" cli using click in eds.cli
  • add the console script entrypoint in setup.py
  • cli should create an event using eds.event.Event.init_from_local
  • cli should pass event to eds.main.main

Distinguish plugin discovery vs instantiation

In order to discover plugins that need to be installed, we need to support a process where plugin configurations are discovered (which includes their pip install requirements), without the plugins being instantiated, which assumes installation.

demo with mock plugins

create a folder structure like so in EDS src tree

/demo
    /mock_plugins
    /projects
       /grandparent_project
          eds.yml    
       /parent_project
          eds.yml
      /child_project
          eds.yml
    demo.sh
    README.md  

where:

  • "mock_plugins" is a python project containing mock plugins for:
    • eds.vcs_provider
    • eds.pipeline_provider
    • eds.worker
    • eds.pipeline
  • the project subfolders are setup to exhibit inheritance
  • "demo.sh" installs eds, the mock_plugins, and then runs the "eds" cli from the child_project, which runs the plugins.

"eds.vcs_provider.github" plugin

  • implement the eds.vcs_provider interface using github
  • the implementation should not assume a local disk for cloning repositories, but rather work with in memory data only.

"eds.vcs_provider" interface

  • provide initial draft of eds.interfaces.vcs_provider module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.vcs_provider.VcsProvider.schema attribute

"eds.task" interface

  • provide initial draft of eds.interfaces.task module
  • document module/class/methods using docstrings
  • document the plugin properties via the eds.interfaces.task.Task.schema attribute

"eds.yml" examples

document a hypothetical example of what a real world "eds.yml" might look like.

in 2 forms:

  • single file example
  • an inheritance example (same as single file, but with layers of inheritance)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.